My contributions graph

50 Open Source Contributions in 2020!

It may not seem like a lot. In fact, the contributions themselves were pretty minor. But to me, it is 50 times or more I stayed away from Netflix, Youtube, and the likes to work on an Open Source project. Don’t get me wrong, I have binge-watched a couple of TV shows these past few months. But I can say with certainty that working on an Open Source project is just as fun as binge-watching a full season of .

Working on an Open Source project was a personal goal of mine. My motivations were to explore a different style of learning that allows me to apply new technologies to real projects and pursue a hobby that is both fun and challenging. If you are someone who, like me, aspires to contribute to Open Source projects, I have highlighted some of my personal experiences below. Hopefully, these will help you understand how some of my initial inhibitions became positive experiences.


One of the first few things that I experienced right away is how welcoming the community is. Reviewers and project leads advised me when I was stuck, provided valuable feedback on my code commits, and thanked me for my contributions.

Another early realization was that contribution counts. Every contribution is valued to the project and is a learning opportunity for you. It is easily the best scenario you could ask for! I started with a few small steps to get involved in the project. Now, my contributions are a mixed bag of code commits, code reviews, creating issues, adding GitHub actions, and commenting on pull requests. With each of them, I got more comfortable with the Open Source contribution mechanism.

Paying it forward — I benefitted from the mentoring and training I received to start my Open Source journey. I am grateful that I can share these experiences with others and lower the barriers to entry so they too can embark on their Open Source journey.

You “Git” game

I was familiar with Git before I even started to work on this Open Source project. Despite that, it was overwhelming when I had to rebase and create my first commit. I was nervous and stared at my system for a good 15 minutes before I acted on it. After a couple of contributions, a few encounters with “HEAD detached origin/master” and several google searches later, I feel confident about using Git. Now my focus has shifted towards the actual code changes than these mundane parts of my contribution.

Learning to use different aspects of Git (log, squash, insights, branch repository management, etc.) will reduce the turnaround time to create your pull request. It takes practice and frequent usage of Git so you spend less time worrying and more time programming.

Why contribute to Open Source?

I gained so much from contributing to an Open Source project. Here are a few examples:

  • Being part of a technology community through OSS and learning from others through their contributions. It is admirable to see developers from different parts of the world communicate and collaborate efficiently on an Open Source project!
  • Learning and applying new technologies or features. To name a few, I learned about Mutation testing, GitHub actions workflow, Records (preview) feature in JDK 14, and was able to use them in Open Source projects. It proved to be a more effective form of learning!
  • Overcoming my inhibition to contribute to OSS.
  • The satisfaction of being able to work on your personal goals. That combined with your community cheering you on is a great motivator!

If any of these appeal to you and are are looking for ways to get started, check out this article by Donald Raab.

Or check out frameworks that you work with frequently and contribute to those to gain a deeper understanding of those frameworks.

“It is never too late to start something new” — many wise folks.

Next up, 100 contributions! Here’s hoping that I have persuaded some of you to begin your OSS journey.

Java Developer, Open Source contributor, Committer for the Eclipse Collections OSS project( Opinions are my own.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store