Harshit Prasad bio photo

Harshit Prasad

Software Engineer - @blinkit, all about search systems - data and infrastructure stuff. Loves to talk about distributed systems and open source.

Email Twitter LinkedIn Github Stackoverflow

Good to go guide on how to contribute in open source communities!

banner

Recently, I was going through the internet and found out that the GitLab organises their hackathon quarterly to invite developers around the globe to participate and contribute in GitLab. This made me realise that it was a long time since I’ve been actively contributing to an open source project by writing code. I decided to participate this time to get back to my habit!

In year 2016, 2017, 2018 and 2019 - I was actively involved in open source communities which comes under Google Summer of Code (GSoC) like FOSSASIA and CERN. In year 2021 and 2023 - I was mostly involved in participating in conferences as a tech speaker. This kind of opportunity was a signal for me to get back in open source!

The GitLab hackathon was 1 month long. I ended up writing and shipping my code in their core backend services written in Ruby on Rails and for their Kubernetes agent using Golang. The overall development cycle during this process feels really exciting! Code, review, merge and shipped to production! At the end, I came up at 1st place hackathon winner with most of the contributions. The contributions does not include just code but, it also involves effective communication with project maintainers and understanding the requirements.

Now, at this point you must be wondering if you should also take out some extra time to get involved in open source to build awesome stuff. Here I can help you to get started with contributing in the open source!

Finding organization and projects

The first step to contribute is to actually find a suitable organization where you would like to contribute. Go through their open source projects to understand their product. Most of these products repositories have their engineering roadmaps which can be accessed easily. If not, then you can start off by joining their communication channel (slack, gitter, discord, etc) and drop a simple ‘hello’ to the team and let them know that you’re interested to contribute. From there, they will help you getting onboarded.

Setting up project and requirements

During on onboarding and exploration process - the second step would be to setup the project and make sure that’s running fine locally. Project setup usually takes time and it’s completely okay. Take help from the team members on the communication channel if stuck but, keep in mind to follow good practices. You don’t have to end up messaging the maintainers outside their working hours.

Once project has been successfully setup, skim through the issues list as per roadmap and understand what you can pick. As a first time, I usually start off with the easy ones. The easy ones help me understand the complete project working, layout, APIs, etc.

Code and Review

After shortlisting few set of tasks, start up with coding and raise merge/pull requests! Keep in mind that MR/PR(s) should be descriptive, clean code and reviewable. Once raised, wait and discuss your changes with the project maintainers. They will approve the code changes if it follows the established standards and closes the issue.

Conclusion

At the end, I would like to conclude that sometimes contributing in open source can be seen as overwhelming and difficult. But, it requires consistency and effective communication to set yourself in a community. All these communities are always looking for active contributors. They will be more happy to help and get you started!

Happy coding! Happy contributing!