Fixing the cold start in open source contribution.

Contributing to open source is a rewarding activity, but it can be overwhelming to begin with. So I decided to compile a list of gotcha’s that would’ve been useful for me when I got started in this journey, and hope it benefits others as well —

  • Always ask before sending in the PR! Ask if the changes being submitting are the right ones to make. The maintainer could have very different expectations from the proposed solution, and its better to discuss the solution upfront rather than to spend days implementing it. Comment on the issue thread to save time and effort!

  • Iterate quickly on feedback. The faster the iteration, the better the chances for PR acceptance. (I have on average 3–4 feedback loops). Faster doesn’t mean to make changes hastily, but the idea is to invest time while the reviewers/maintainers have recently discussed the issue.

  • Subscribe to the project (ex: “watch” it on GitHub) and read all issues and PRs. This helps in understanding the general context of the features being implemented, and related bugs. Multiple related bugs are often grouped and fixed through one feature implementation.

  • Read and participate in code reviews of other PRs. The community is always welcoming of fresh eyes to help review code.

  • Make atomic and specific changes in one PR. Always write tests, as they help to understand the functionality better.

  • No change is small. Technical documentation is a huge thing, and often helps better with on-boarding than coding.

  • Consider taking language tutorials if contributing in a new programming language. I have often shot myself in the foot with inadequate language knowledge, and recommend even a basic language tutorial during the contributions.

  • Be patient, all good things take time and effort. Make notes and study the code.

  • Finally, finding the perfect project is a myth — just start contributing! Having said that, there are some factors to consider while picking a project that make the overall contributor experience enjoyable. Evaluate the project roadmap, the skills you expect to pick up as you contribute to the project, and ensure a friendly, open community.

All the best on your journey in open source! If you’re looking for a good project to start, do check out Jaeger (https://github.com/jaegertracing/jaeger)!

This was originally posted on Medium in Jun 2019

Written on June 29, 2019