How to contribute to Open Source (for coders and non-coders)

How to contribute to Open Source (for coders and non-coders)

First of all , let me start by saying that earlier in my career , I had this image in my head of open source contributors as 10x programmers who could type code with their legs in the middle of the night 👹. Interestingly, I haven't found any such programmers in real life (so far), but as I matured into the software engineering field, I realized that contributing to open source is actually not as tough as it sounds. And with this post , lets dive into some of the ways in which you can actually get going on contributing to open source.

As Simon Sinek says, lets attack the Why before the How? Generally people contribute to Open source for one or more of the below :

  1. Support the community (users/developers/friends/haters)
  2. Learn and grow on the technical front
  3. Add a shiny badge of honor to resume
  4. Calm the itch of coding/technical work
  5. Meet like minded people
  6. Get goodies/swag

Now whichever of the above floats your boat (no judgements) , pick one and imprint it in your heart , as the goal will keep you on the track. With the WHY defined, lets jump onto the HOW.

And before diving into some GitHub repository, lets zoom out and look at the bigger picture. So , think of every big open source software (React.JS , Pyscript , Jenkins , DefinitelyTyped or Selenium ) as a small organization run democratically by a group of maintainers for the end users. And in this organizational design, just like any other organization, there are Developers, Organizational managers (Program committee/Technical Committee) , Operators (Marketing/Ops etc) , Testers (sometimes users) and other members. And just like a commercial organization, this team requires contributions not only on the technical front but on the non-technical front as well .

I have bifurcated contributions into two parts (Technical contributions and Non-Technical contributions) just for representation and the idea is to pave the way for you so that you can contribute to open source based on your personal preferences.

Technical Contributions:

You can contribute technically in numerous ways to open source codebases. As a starting point you can pick a technology stack/codebase based on your interest here :

And some companies also run dedicated campaigns like Hacktoberfest (pretty cool swag). Not only are these GitHub repos very well documented (one of things I learned from contributing over the years) ,they also have tags like "good-first-issue" , which can help you go slow and steady. In addition to contributing to the codebase, you can also try starting with the Readme page or setting up a PR for documentation. Don't be intimidated, as most of the open source contributors Ive met are pretty cool and friendly , and would actually guide you on setting up good commits. So , pick your target codebase, get some coffee and lo-fi music going and fire away those commits.

Non - Coding/Technical Contributions:

As I highlighted earlier, most of the open source projects run like a small organization and need contributions not only in the technical areas, but non-technical areas too. Some of the suggestions for non-technical contributions are:

  • Acting as an evangelist for the project (every repo deserves more stars)
  • Helping the Operations like supporting the conferences around that technology
  • Setting up tutorials or testing out alpha/beta releases
  • Filing good bugs (I am looking at you my tester friends)
  • Creating digital assets (logos/stickers/banners/Mail templates etc.)
  • Supporting the users on an issue in the support group (slack etc. )

Closing Section:

Open source is made by people like you and me: one issue, pull request, comment, or high-five at a time , so hoping that I've inspired you to do your bit (or byte) and commit to this beautiful community.

You might fumble, you might fall, but if you stay "commit"ed , you will rise above all 🦅.

Notes:

  1. Recently I've noticed a few GitHub repos which claim to be open source, but are sadly not. So its always a good idea to review the license file before starting your contributions.
  2. You should also review the recency of PRs merged and overall activity on the repo to ensure that its not stale.
  3. I believe in preaching what I actually practice :) , and I try to support the open source initiatives behind Selenium and Salesforce Testing/Automation space (TestZeus)
  4. What is my motivation for contributing to open source? I see a future where open source will power every software that we use , being run by Decentralized Autonomous Organization , and contributors will be paid via Ethereum and daily standups will happen in Metaverse 😎 . On a serious note, I want to do my bit for the community and contribute to a utopian future by paying it forward. 🙏.

To view or add a comment, sign in

Insights from the community

Others also viewed

Explore topics