How to contribute to open source software.31st January 2020
Recently, I was working with a gem I did not know, a CMS to be more exact, and while configuring everything I had to configure, I realized that it worked great, until it didn't.
If you are a software developer and on your technology stack you work with gems in Ruby, eggs in Python, packages in JS and other open source libraries, surely more than once you have had to “patch” some functionality, finish your task and moved on with your life but, if you already found the error and fixed it, why not propose your solution?
Sometimes we believe that contributing to open source projects is very difficult because a high technical level is required which we are not sure of having * cough cough impostor syndrome cough cough *. The reality is that perhaps in certain projects we do need a certain degree of knowledge because they are subjects that we do not master, but sometimes it is not so much like that.
Why do I think it is beneficial to contribute?
To take it as a personal challenge: you always feel some satisfaction when solving a problem.
To give back to the community: often, we don't take the time to think that these libraries are made by people like you and me, most of the time we dedicate our leisure hours to these projects.
To acquire or validate skills by browsing the code of others: when you start reading code that you did not write, you can learn other ways of doing things: other methods, functions or properties of language that you did not know and that can give you another perspective on it.
It looks pretty in your CV: currently, several of the vacancies where an stack of Open Source tools is managed can favor your profile if they notice that you have contributions, and sometimes, it is even a requirement that you have them.
Some tips to join the community
If the code is hosted on GitHub, it is very likely that it has documentation or guidelines to report, document and propose solutions to errors. I invite you to review the lineaments of the project: you will see that it is not as complicated as you think.
If you think you found an error, report it; if you notice that you can improve the documentation, suggest the changes; if you gave yourself the time to replicate the error, document how you did it; if the test suite can be improved, add what is missing. It doesn't matter if it's something small, in the end, everything adds up ... everything!
Sometimes there will be repetitive tasks that you have to do in different projects; so why not write a library that you can use over and over again? Even if you think it is unnecessary or of little use, you would be surprised to find out how many more could get to use it.
TL; DR Get involved, follow the guidelines and propose your solution: you don't lose anything with trying.