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?
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.
- 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.