While attending college, working on a research project, I came across an Open Source library called Libcloud that would allow me to programmatically access the API for a private cloud management platform called OpenNebula.
After incorporating Libcloud into one of my projects I encountered a few short-comings in their original implementation of the OpenNebula driver (OpenNebula had changed quite a bit since the original driver was written). So… I just filed an issue and included a very minor patch. I don’t even think the patch was used.
However, it really didn’t matter. My conversation with the Libcloud maintainer, Tomaz, was an incredible learning experience. It gave me an opportunity to learn why things were done a certain way, and it offered direction on what could be done next. I followed up with a few more patches to make the suggested changes. After a few weeks we managed to get a new release of Libcloud published.
It’s that last bit that was so rewarding. Users, primarily across Europe, of OpenNebula may be using my code! How awesome was it to benefit governments and non-profits (the primary backers of OpenNebula at the time).
That sparked almost a decade of contributing to Open Source. None of that would have happened if it hadn’t been for the Libcloud and OpenNebula (I contributed a few patches to that project as well) teams providing the guidance and encouragement to exceed as a collaborator on their projects.
As for a suggestion to others, I believe it helped me to contribute to a project I was actively working with. I had the opportunity to experience the benefits of my work first hand. That helped to solidify in my mind how people benefit from code that is contributed to the public via Open Source.