teleren/devto huggingface dataset:
Dev Job Oppurtunities @ VC-Backed Startups
Tags: webdev, javascript, programming, career
Published: 2023-08-16 12:46:55

Hello, Devs! Excited for another round of top-notch developer job opportunities? 

Over the past week, we’ve curated 50 developer jobs that meet our quality criteria. These roles encompass backend, frontend, and full-stack positions, catering to developers with different experience levels in India & USA. 

All job listings match the quality criteria detailed in our previous posts. 

They come from companies with 4+ Glassdoor ratings, top-quartile team size growth, and backing from at least a top ~50 VC. Plus, we only surface jobs posted in the last week. You can find more about how and where we source these roles in our first issue here.
This week, we've got some exciting roles lined up:

#### 1. Lyra Health is looking for a Senior Software Engineer for a remote role. 
They're backed by Salesforce Ventures, Castlight Health, Emerson Collective, Sands Capital Ventures, Venrock. [Click Here](https://careers.lyrahealth.com/job/united-states/sr-software-engineer-engineering-tools-remote-u-s-only/43250/50996129888).

#### 2.Asana is hiring a Senior Software Engineer for a remote position. 
[ Click Here](https://asana.com/jobs/apply/5145596?gh_jid=5145596).

#### 3. Terra is on the hunt for a Backend Engineer for a remote role.
They're backed by Galaxy Digital, Hashed, Dunamu, Polychain, OKX Ventures. 
[Click Here](https://jobs.lever.co/terra/d0008141-18df-4754-bd3a-6ae04f894791).

#### 4. Brie is seeking a Senior Full Stack Engineer for a remote role in India. 
[Click Here](https://briq.com/company/hiring?gh_jid=4304948005).

#### 5. Level AI is looking for a Senior Software Engineer for a remote role in India. 
They're backed by Village Global, Eniac Ventures, Battery Ventures. 
[Click Here ](https://www.linkedin.com/jobs/view/senior-backend-engineer-remote-india-at-level-ai-3691006388/)

For this issue, we have :

- 26 roles in the US and 24 roles in India.
- 17 Backend, 16 Frontend, and 17 Fullstack role.
- We have 10 Frontend, 7 Backend, and 7 Fullstack roles in India. 
- We have 6 Frontend, 10 Backend, and 10 Fullstack roles in the USA.
- 25 of these jobs offer remote work opportunities, and 4 are Hybrid roles.
- Experience level: 18 jobs mention less than 2 years (or no specified level), 22 jobs between 3-6 years of experience, and 10 jobs with 6+ years of minimum experience required.


**To view all 50 of these these opportunities, check out [{Startups} && {Devs}](https://startupsanddevs.kombai.com/p/startup-dev-jobs-of-the-week-16th).**

That’s all from us for this week, folks. Thanks a lot for dropping by. You are awesome! 🤗
A new update of the Corteza open-source low-code development platform has been released: Corteza 2023.3.4
Tags: release, update, lowcode, opensource
Published: 2023-08-16 12:45:19


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3zv0yvzoqfix6sjb9wl1.png)
Planet Crust, the driving force behind Corteza, has released a new update of Corteza that includes new features, changes and fixes: https://www.planetcrust.com/planet-crust-releases-corteza-2023-3-4

Corteza is a 100% open-source low-code, rapid application development, business process and integration platform.
useRef in React (easy language)
Tags: webdev, javascript, react, programming
Published: 2023-08-16 12:25:57

Certainly! `useRef` is a hook in React that allows you to access and interact with a DOM element or keep a mutable reference to a value that doesn't trigger re-renders when it changes.

**Easy Explanation:**
Imagine you have a physical notebook where you jot down notes. This notebook doesn't shout at you every time you make a change in it, but you can always refer back to it whenever you need to see what you've written. Similarly, `useRef` is like this notebook. You can keep track of certain things without the entire room (your component) reacting every time you make a note.

Common use cases:

1. Focus on an input field.
2. Measure the dimensions of an element.
3. Keep track of the previous state/value of a variable without causing re-renders.

**Advanced Explanation:**

1. **Mutable Reference Object**: 
   - `useRef` returns a mutable reference object (`{ current: ... }`).
   - The `current` property is initialized to the passed argument (`initialValue`) which can be anything. It remains persistent for the full lifetime of the component.
   - Unlike state variables using `useState`, changing `ref.current` doesn't trigger re-renders.

2. **DOM Access**:
   - When used in conjunction with the `ref` attribute on an element, it provides direct access to the DOM element. This is especially useful when integrating with third-party libraries or for tasks like setting focus or measuring elements.

3. **Previous Values**:
   - It can be used to store the previous value/state of a variable. Because it doesn't cause a re-render on change, it can be handy to check previous vs current values without costly re-renders.

4. **Timers and Intervals**:
   - Using `useRef` is a common pattern to hold references to intervals or timeouts. This way, you can clear them later (like in a `useEffect` cleanup).

5. **Imperative Handle**: 
   - Used in conjunction with `forwardRef` and `useImperativeHandle`, it allows parent components to access the functions and values of child components. It's a more advanced pattern for rare use cases where parents need to call child functions directly.

Example of accessing a DOM element:
```jsx
function MyComponent() {
  const inputRef = useRef(null);

  const handleFocus = () => {
    inputRef.current.focus();
  };

  return (
    <>
      <input ref={inputRef} type="text" />
      <button onClick={handleFocus}>Focus the input</button>
    </>
  );
}
```

In this example, the `inputRef` is attached to the input field, and when the button is clicked, the input field gets focused.

Remember, while `useRef` can be powerful, direct manipulation of the DOM is against the declarative nature of React. It's wise to use it judiciously and only when necessary.

Thank you for reading. I encourage you to follow me on Twitter where I regularly share content about JavaScript and React, as well as contribute to open-source projects. I am currently seeking a remote job or internship.

Twitter: https://twitter.com/Diwakar_766

GitHub: https://github.com/DIWAKARKASHYAP

Portfolio: https://diwakar-portfolio.vercel.app/
Demystifying "No 'Access-Control-Allow-Origin' Header" in JavaScript and Postman: A Comprehensive Exploration
Tags: javascript, webdev, web3, beginners
Published: 2023-08-16 11:57:53

Encountering the infamous "`No 'Access-Control-Allow-Origin`' header" error in `JavaScript `while Postman works seamlessly can be perplexing. In this comprehensive guide, we'll delve into the reasons behind this discrepancy, offering insights and practical solutions through code examples.

## Understanding the Error:

This error typically occurs due to the `Same-Origin Policy`, a security feature that prevents web pages from making requests to a different domain. When your `JavaScript `code tries to make a cross-origin request (to a different domain), the server must include the appropriate '`Access-Control-Allow-Origin`' header to grant permission.

## Why Postman Works:

Unlike web browsers, Postman doesn't enforce the Same-Origin Policy. It's a standalone tool, allowing you to test APIs and bypass cross-origin restrictions.

Solutions:

`1. Enable CORS on the Server:`

On the server-side, add the '`Access-Control-Allow-Origin`' header to the response. This allows specific domains to access your resources.

Node.js (Express):

![javascript](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bbf92ybnh3cbu6ug7snx.png)

`2. Proxy Server:`

Set up a `proxy server` to forward requests. This way, your `JavaScript `code requests data from your own domain, avoiding cross-origin issues.

`3. JSONP (if supported):`

JSONP can circumvent the Same-Origin Policy by injecting a `<script>` tag.

`4. Use a CORS Extension (for Development):`

During development, you can use browser extensions that relax `CORS `restrictions, but remember not to use them in production.

`5. Utilize Server-Side APIs:`

Perform the request through your server, acting as a middleman between the client and the remote server.

`6. Reverse Proxy:`

Set up a reverse proxy server that forwards requests and appends the necessary headers.

## Conclusion:

Understanding the "`No 'Access-Control-Allow-Origin'` header" error and why it doesn't affect tools like Postman is vital for successful cross-origin requests in your web applications. By employing `CORS headers`, `proxy servers`, `JSONP`, or `server-side`` APIs`, you can mitigate this error and enable seamless communication between different domains.

`LinkedIn Account` : [LinkedIn](https://www.linkedin.com/in/matthew-odumosu/)
`Twitter Account `: [Twitter](https://twitter.com/iamcymentho)
**Credit**: Graphics sourced from [Acunetix](https://www.acunetix.com/blog/web-security-zone/cross-origin-resource-sharing-cors-access-control-allow-origin-header/)
Parsing SemVer in Javascript with the official RegEx
Tags: javascript, regex, node
Published: 2023-08-16 11:56:31

Recently I had to parse a SemVer string. The first Regex I found was not able to deal with labels, so I went to the [SemVer docs](https://semver.org/) to learn more about the exact specs for the label.

And I found that the official Semantic Versioning 2.0.0 documentation (the english version at least) includes a [official regex](https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string) with numbered capture groups that is compatible with ECMA Script (JavaScript), PCRE (Perl Compatible Regular Expressions, i.e. Perl, PHP and R), Python and Go. 

And it even has [tests](https://regex101.com/r/vkijKf/1/), very handy!

You can use it to verify/validate and parse your SemVer string at the same time:

```javascript
const versionString = "1.2.3-rc.1";
const [semVer, major, minor, patch, prerelease, buildmetadata] = versionString.match(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/) ?? []; 
```

> 💡 The variable names should be self explanatory. If `semverString` is not a valid SemVer, `.match()` will return `null` and all values will be `undefined`.

Do you have another method for testing/parsing SemVer? If yes, how and why?

Hope it helps someone, have a great day!
Building Container Images Using Dockerfiles
Tags: docker, containers
Published: 2023-08-16 11:43:21

1- Create Dockerfile
```bash
~ vi Dockerfile
```
```Dockerfile
FROM httpd:2.4
RUN apt update -y && apt autoremove
```
* Dockerfile always start from *FROM* keyword and after it we tell the image name like we are telling here httpd of which we want to create our container.
* **RUN** whatever we are going to write after RUN it will be run in our container. 

```bash
~ docker build -t wigetfactory .
```
* Here you can see that we are creating our image from our Dockerfile and giving it a name which is wigetfactory

2- Let's update our Dockerfile and put our website content in it.
```Dockerfile
FROM httpd:2.4
RUN apt update -y && apt autoremove
rm -f /usr/local/apache2/htdocs/
WORKDIR /usr/local/apache2/htdocs/
COPY ./web .
```
* Here you can see that I am changing my container work directory using **WORKDIR ** command and then copy my website content from my host directory to the container location which is htdocs.

* Let's run our Dockerfile again.
```bash
~ docker build -t widgetfactory:0.3 .
```
Here will be the output of it

![Dockerfile output](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8m3o3jr777tkbiwz24mj.png)

* Now run container using the image.
```bash
docker  run --name weebproject -d -p 80:80 widgetfactory:0.3
```

Follow me for more content
Introducing Formango: The fruitful way to simplify form validation in Vue!
Tags: vue, typescript, webdev, javascript
Published: 2023-08-16 11:31:28

Heyhey!

Me and a colleague made an internal form tool for our company based on the popular react-hook-form library. We recently decided to rebrand it and make it open-source! We came up with the name pretty quick, and asked our designers to make a little mascot guy for us.

Introducing Formango, a brand new form library!

[Usage example](https://imgur.com/a/1nqrPs4)

**So why go bananas for Formango?**

Formango takes the hassle out of form validation in your Vue applications, providing solid benefits that enhance your development process:

* **Type-Safe confidence**: Formango is built with TypeScript at its core, ensuring that your form validations are robust and free from type-related surprises. Catch errors at compile-time and enjoy a more confident development experience.
* **Built-in Zod integration**: Formango is built to integrate with Zod, a powerful schema validation library. This means you can define your data structures with Zod and effortlessly apply these schemas to your Vue forms using Formango.
* **Clean and maintainable**: Say goodbye to tangled validation logic. Formango promotes a clean and declarative approach to form validation, making your codebase easier to understand and maintain.
* **Flexibility in your hands**: As a headless validation library, Formango adapts to your needs, whether it's handling complex and custom forms or a simple login form. Customize the validation to fit your specific use cases without compromising on quality.
* **Vue ecosystem friendly**: Built-in devtools makes it easy to debug your complex forms.
* **Fruity**: It follows the trend of fruit-based Vue libraries.

We have been using it internally for a little while now, so it should be stable. Using it internally also means we keep it up-to-date and maintain it pretty regularly. For example we are looking into expanding its usage to also support Valibot, a new schema library, once that is stable.

We're excited to hear your feedback and feature requests. While we aim to keep Formango minimal, we're open to suggestions that enhance its usability and value.

Check out the [Documentation](https://wouterlms.github.io/forms/) and [GitHub Repository](https://github.com/wouterlms/forms) for more details.
What’s my job in my new role as Director of DevRel at WeAreDevelopers?
Tags: job, wearedevelopers, resources
Published: 2023-08-16 11:10:33

---
title: What’s my job in my new role as Director of DevRel at WeAreDevelopers?
published: true
description: 
tags: job, wearedevelopers, resources
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/25neosg3hsfurl9xic7v.png
# Use a ratio of 100:42 for best results.
# published_at: 2023-08-02 09:49 +0000
---

With the World Congress out of the way, it is time to focus on my new role as Director of Developer Relations at WeAreDevelopers. 
It feels great that what I do anyways because of personal interest is part of my role. This was the case when I worked for Yahoo and Mozilla and the first few years in Microsoft, but pivoting to Technical Product Management, I was missing this part. I had to take vacation days to present at events and there was no budget for any DevRel activitives.

Now, what am I going to do for WeAreDevelopers? I will be leading and coaching a team of DevRel people and whilst this is small for now, there is growth in the near future.

For now, I will be: 

* Content editor of the [DevDigest newsletter](https://www.wearedevelopers.com/about/newsletter/) and blog and see what else we can do with that.
* Recording interviews and fireside chats with interesting people in the [Coffee with Developers](https://www.wearedevelopers.com/coffee-with-developer) series.
* On the advirsory board for the WeAreDevelopers World Congress and plan the content of this 12,000 people event.
* Keep evolving the [Code100 competition](https://www.wearedevelopers.com/events/code100) and how we can make this easier to run, so that other events can also take part.
* Working on some event strategy that goes beyond the big congress, with [Bits and Bites](https://www.wearedevelopers.com/event/bits-bites) meetups and a the [WeAreDevelopers Live](https://www.wearedevelopers.com/live) series.
* Presenting at events, doing training courses and coach and mentor people inside and outside on public speaking, video creation, writing and presenting.

As WeAreDevelopers is also a job board, I also want to work closely with our recruiters and content editors to ensure that developers and those trying to hire developers speak the same language. 

For all of this, I'd love input from you. You can:

* Propose content items to write about and include in the newsletter
* Propose people to interview
* Tell me what a unique product like WeAreDevelopers can do to become your go-to resource for all things developer

Ping me on any of the channels I am on, or send content ideas to [content@wearedevelopers.com](mailto:content@wearedevelopers.com)

I'm looking forward to what comes next!
🚀 Boosting Your HTML and CSS Workflow with Emmet 🚀
Tags: frontend, webdev, html, css
Published: 2023-08-16 11:02:55

👋 Are you tired of spending hours writing repetitive HTML and CSS code? Wish there was a way to speed up your front-end development process? Look no further – let's talk about the game-changer: Emmet!

Emmet is a powerful toolkit that can turbocharge your coding efficiency by allowing you to write HTML and CSS code faster than ever before. Whether you're a seasoned developer or just starting out, incorporating Emmet into your workflow can revolutionize the way you build websites and web applications.

Here's how you can supercharge your coding experience using Emmet:

1. Faster HTML Tag Creation: With Emmet, creating HTML tags becomes a breeze. Instead of typing out lengthy opening and closing tags, you can simply write the tag name and hit the Tab key to generate the entire structure. For instance, typing `div>ul>li*3>a` and hitting Tab will create a list with three list items and links inside – all within seconds!

2. Effortless CSS Abbreviations: Emmet doesn't stop at HTML. It's equally remarkable for CSS too! You can use shortcuts to write CSS properties and values quickly. For example, typing `bgc:red` and hitting Tab will generate `background-color: red;`. This approach saves you time and reduces the chances of making syntax errors.

3. Nested Structures Made Simple: Creating complex nested structures in HTML and CSS can be a headache, but Emmet simplifies the process. You can easily nest elements and properties by using intuitive syntax. This is incredibly helpful when working on responsive designs with multiple breakpoints.

4. Customizable Abbreviations: Emmet allows you to create your own custom abbreviations or modify existing ones. This means you can tailor the tool to fit your coding preferences and project requirements, further enhancing your development speed.

5. Time-Saving for Repetitive Tasks: Whether you're duplicating elements, generating placeholder text, or quickly building forms, Emmet has got your back. It's a fantastic ally for those times when you need to perform repetitive tasks efficiently.

Embrace the power of Emmet and take your HTML and CSS coding skills to the next level! Whether you're designing a personal blog, a portfolio website, or a full-fledged web application, this tool will become an indispensable part of your toolkit.

If you're intrigued and ready to accelerate your coding prowess, give Emmet a try. Your future self will thank you for the hours saved and the frustration avoided. Let's make coding elegant, efficient, and enjoyable! 💡✨


[![image-alt-text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7fm9hpb9ww6ms4o2vfne.png)](https://emmet.io/)
AWS DevDay: Enhancing Innovation
Tags: aws, cloud, devops
Published: 2023-08-16 11:01:07

I am deeply moved by the immense passion and response of over 800+ attendees who joined us for the #AWSDevDay Bengaluru on June 16th  Friday. Witnessing such enthusiasm for learning, which exceeded the venue's capacity, fills my heart with joy. We extend our heartfelt gratitude to each and every one of you who took the time to attend the event in person.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zinopmf9kdg67i10axmy.png)


At Intuitive.Cloud, we are always committed to our community contribution and thanks to Ridhima Kapoor Shafraz Rahim for having us part of this wonderful event.

As an advanced partner with Amazon Web Services (AWS), we are always excited to bring Cloud Transformation a seamless experience.

Jay Ashok Modh Indraneel Shah Mir Navazish Ali Troy Wyatt Bhavesh Shah Aakriti Gupta Divya Krishna T

**Gallery**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vr6lasz04fxia0qys26e.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x94cffkqkbvtkyoja8ki.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p503uspxumubv49yuuu1.png)


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z2y51fh6gsx7vd0sgezo.png)


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1mhlvcohjope1l4gs1wj.png)


**LinkedIn Links**

- https://www.linkedin.com/posts/bhuvanas_aws-devday-2023-activity-7077882329385349120-iQR5
- https://www.linkedin.com/posts/intuitive-cloud_aws-devday-2023-activity-7077671823995211776-5KR9
- https://www.linkedin.com/posts/bhuvanas_keynote-awscommunity-aws-activity-7075659595246948353-yiSJ

#awscommunity #awscloud #cloudmigration #IntuitiveCloud #IntuitiveLife
Effective Teams
Tags: team, effectiveness, storybytes
Published: 2023-08-16 10:59:51



![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/roph198kelzqj61tjfxl.png)

A highly effective team with the best people, creating the best outcome, is an ideal place to be. All gel well, the processes are super clear, and all are aligned - is that possible? Yes, why not? We must set the foundations right so the organisation and its members grow together as a Tree. A tree has many branches, but some must be strong and remain up to the deepest roots. These branches will foster the tree and streamline the effectiveness of the roots. Openness and Trust amongst everyone in the organisation will lead to clarity. Keep everyone motivated - a key that keeps us going. Don’t run away from conflicts - embrace them with all the soft skills. Ownership isn’t only given - it’s taken and belongs to all in the team. See feedback as a contribution that makes you better and gives value to you. With such strong branches, the organisation’s Tree will grow, and its success can’t be stopped. And success has to be celebrated. As an entire organisation, celebrate successes together: A team that celebrates its successes together can inspire motivation in its members. Recognising members for individual and collective successes can help keep teams engaged. And all the engagements will lead back to an effective Team.