Many people aspire to become contributors to open source projects. With a little effort, anyone can. This article shares how I got started with open source contributions and how doing so helped me land a job in an open source organization.
I was in college when I learned about the Linux operating system. That was also when I first heard about open source. Hoping to understand more about Linux and how it came to be, I got involved with a Linux user group called DGPLUG, where I learned the extent of open source projects. This was more than just an operating system. There was a whole world of collaborative coding out there.
It didn't take much. I quickly acquired a deep interest in writing code, meeting amazing people, and joining communities that motivated me to contribute to open source projects.
I started to learn new programming languages and technologies. I also began implementing what I was learning in my Computer Science Bachelor course hands-on. I got involved with the Fedora community through IRC and contributed to the Fedora Infrastructure project codebase, Fedora Tests. I also got the opportunity to contribute to many other projects simultaneously as I came across more bugs and features, and I connected with developers worldwide.
Landing my first job
After contributing for a while, I realized that Red Hat was hiring interns for some teams. I'd heard of Red Hat, mainly as the primary sponsor of the Fedora Project, so this was an appealing prospect. But the cherry on top was that one of the teams looking for interns was the Fedora team! I applied for the internship without a moment's delay and later got hired. The fact that I already had some hands-on experience on real-world projects with a broad set of users helped me build a strong foundation and profile for the internship and helped me get the job.
Important tips when working with open source
I've discovered some strategies that can help you be more successful when working with open source projects. Here are some things I learned:
Build connections: Making connections is one of the most essential parts of all. The more you talk to people, the broader your network becomes. It is very crucial to hear different perspectives and learn from them.
Give and receive feedback: Fear of criticism is common for anyone. However, learning to overcome your inhibitions enables you to welcome constructive feedback as an opportunity for growth. This has helped me immensely as I learned new things every day. It's not only useful for receiving feedback, but it also allows me to share feedback while working on projects, which helps the open source project and boosts my confidence.
Be respectful: Project maintainers don't owe you anything. When you start using the project, it becomes your responsibility to help maintain it. If you don't like how the project is maintained, be respectful when you provide suggestions and offer help to improve the situation.
Collaborate: The open source community is diverse and highly motivated. You'll be able to find someone who can help you (or that you can help) no matter what your interests are. It is essential to be polite, respectful, and kind. The value of open source to our industry is immeasurable. Project maintainers often work on it in their spare time. Also, keep in mind when communicating and working together that users of projects are sometimes new to the ever-growing software world. The open source community can be a better place by working together.
Transparency: Transparency may be the most important open source value. Transparency is inherent in every release of open source code. All the collaboration happens online through open channels. Be mindful about having project-related conversations and making decisions on public channels instead of privately.
Accept failure: Open source is all about experiment and iteration. The trick is to remember that failure is the norm in open source. That's the source of its greatest beauty. In open source, the principle that "given enough eyeballs, all bugs are shallow" is celebrated, as well as the spirit of iteration. Your bug report may not be considered a bug. Sometimes, your pull request may not be accepted for various reasons, but you should see it all as a learning opportunity.
Stay consistent: Staying consistent with the open source contributions is again one of the reasons to be successful in the open source world. Whatever the contribution might be, from documentation effort, testing, coding to driving community effort, you need to be consistent with it.
Deal with negativity: Staying positive in the face of toxicity is not always easy. Unfortunately, this is pretty common in any community which is open to the public eye, such as open source communities. The community is still growing in diversity, so there can be some unfortunate experiences based on gender, race, origin, etc. Sometimes the toxic people drive away newcomers. I sometimes got into unhealthy debates where other developers would continue arguing to have everyone else agree with their way of thinking. You may not always get what you want. Sometimes you may have to be firm and assertive, and sometimes you have to walk away. This is not to discourage you from getting involved in open source communities but to inform you that you may get into similar situations. Always treat everyone in the community with respect, kindness, and dignity. By continuing to do so, more progress will be made.
Open source contribution has become more accessible for everyone. It's now time to give back to the beloved community using the skills you acquire while working in open source. You can simply do the following:
- Create a GitHub or GitLab account
- Find a project to contribute to or start your own
- Get your first Pull Request merged!