This Dot Media is kicking off a brand new series of videos in 2022 to help developers learn how they can contribute code to some of the world’s most popular JavaScript frameworks and technologies. Subscribe to This Dot Media’s Youtube Channel.
To kick off our series, highlighting best practices for developers interested in contributing to their favorite technologies, I spoke with Michael Dawson, the Node.js lead for Red Hat and IBM, as well as a collaborator and technical steering committee member for Node.js. If you would like to check out that interview, you can see it here.
What is Node.JS?
Node.js is an open source, back-end Javascript server environment released in May 2009. Presently, it runs on the V8 engine, and executes JavaScript outside of the browser. Node.js is free to use, and compatible with a variety of platforms, including Windows, Linux, Unix, Mac OS X, and more.
Michael Dawson
Michael Dawson began working on Node.js six years ago, while building the Java runtime as a part of the IBM Java team. Around this time, Node.js was quickly gaining popularity, and IBM wanted to be able to support its growth as an up and coming runtime. Michael helped contribute to the upstream to V8 as part of the team at IBM, and since then, he has worked closely with Node.js as part of the Technical Steering Committee.
What to Know Before You Get Started
Folks interested in contributing to Node.js should start by checking out the official Node.js repository. There, interested developers can find a number of helpful resources, including the public Node calendar, and conversations where developers can learn more about what teams are aggregating, and what active contributors are working on.
Quick Tips!
- The Node team is committed to fostering an open and welcoming environment where everyone feels able to participate. While engaging with others, be professional and civil.
- If you choose to start contributing, be proactive and help make contributions instead of just opening issues and making suggestions.
The Best Way to Get Started
According to Michael Dawson, each repository has issues related to specific repositories, so developers can find the kinds of repos that they’re interested in contributing to, and pinpoint corresponding issues that they can help address.
If you are looking for a great way to start, you can check out the ‘good first issue’ or ‘flaky-test’ tags! These are issues that fail occasionally, and cause the project a lot of grief. However, they are also some of the more accessible issues that new contributors can approach, so it’s a win-win for everyone involved.
What does the Node.js team need help with the most?
- Getting up to speed on subsystems. There are not enough people involved in consistently reviewing different sections like http.
- Build and release has remained a huge undertaking, but it is a long path to ramp up. This is great for people with interest in infrastructure.
- The Next-10 project is a great place to contribute in order to shape the future of Node.js. The contributions of folks who are external to Node, or who have expertise that could bring a new fresh set of eyes, are encouraged to help.
Are there non-code contributions that can help the Node.js ecosystem?
- People interested in contributing, but not interested in contributing code, can help edit and maintain documentation, and can contribute to discussions on Node.js community forums.
- Those who are proficient in multiple languages and comfortable with translation are highly sought after, and their contributions are greatly appreciated!
- Those with design skills, interested in website redesign will also find a home in the Node.js community.
What About Attending Core Team Meetings?
Presently, Core Team meetings are only open to Core Team members. However, unlike many frameworks, the team behind Node.js records all meetings and makes them publicly available for viewing on Youtube. In addition, meeting notes and links to the meetings are generated as issues in the corresponding repo.
If developers are interested in attending meetings around Node.js, they can attend open meetings that correspond to specific groups in the Node.js community. Nearly every group has a public meeting.
Ready to Begin?
You can find the Node.js Github repository here.