Twenty years ago when I began writing software professionally I was building e-commerce web apps in Perl and no one was getting paid to work on open source. Back then open source contributors were primarily hobbyists, academics, and idealists. Things have sure changed a ton. Not only are there numerous companies with various open source business models, almost everything uses open source somewhere, and many engineers now get paid to work on open source.
Luckily, I was able to begin contributing to open source many years ago and now do it as part of my job and on my free time. As the Director of Open Source at Salesforce I’m able to help our engineers contribute to open source on work time, either by open sourcing something they created at work, contributing to an external project we use, or through our volunteer time off program. This has been a great way to help engineers feel more connected to their peers, become more passionate about their work, and grow in their technical skills.
Yet it is not easy to get started contributing to open source! It is daunting to send a pull request, even for small changes. To help with this I presented a webinar recently where I walk through how to begin contributing to open source and the reasons it can help grow an engineering career. You can watch the recording or skip ahead to some of the advice I give to engineers looking to start contributing.
One of the easiest ways to get into open source is to help others learn as you yourself learn something new. This tweet perfectly captures the need:
That is something you can help with! Write a code sample and a blog that explains it. Put both on GitHub so that others can help improve them.
While learning a new technology you might find gaps and problems with documentation. Contribute fixes for these problems while you still have the “beginners mind” and are seeing things from a fresh perspective.
Mature projects will often have a guide for how to contribute, before sending a contribution make sure you read that guide. It can also be helpful to look at other contributions. What things were the project maintainers looking for? What questions do they ask? That history can give you important context that will help the contribution process be more smooth. And remember to always be kind and patient. Project maintainers have endless work to do and reviewing your contribution is really piling on more work for them. Of course they want contributions but they also prefer to work with appreciative, thoughtful people who make their lives easier, not harder.
For more in-depth guides on contributing to open source see the TODO Group Guides and the GitHub Guides.
We have tons of jobs at Salesforce for engineers that want to use and contribute to open source. For more information check out our open roles here. I hope to see you out there contributing to open source!