Contributing is more valuable than you may think
At the time of writing, I am less than thirty years old, and I have a tech lead position in one of Europe's fastest-growing startups, according to the Financial Times's FT1000 ranking. This company found me and hired me immediately when I graduated. Yes, it is my first full-time job after being an apprentice. How did I get this far this quickly?
I'll give you that, there is an amount of luck involved, but luck is not enough. I worked hard and made the good decisions without even realizing it. With the benefit of hindsight, I want to share with you today what I think was the key to my success.
That key is my involvement in open source. At first I simply liked the ideology and the ecosystem, so I wanted to participate. I didn't know how important this would become for my future success. With time and contributions adding up, I acquired an extremely valuable experience that got me noticed.
Let's talk about the real value of open source contributions, and how you could benefit from it too.
The value
Having experience with open source development greatly changes how recruiters, tech literate or not, perceive your profile and skills. But it's not just for show! You actually acquire very valuable knowledge and skills by contributing to open source. Let's take a look at how it can help you stand out.
The “big = good” effect
Having contributed to large libraries, or code belonging to big companies will get you a lot of attention. Whether it's true or not, it makes people think of you as more skillful. The effect is justified for several reasons.
Contributing to wide-spread codebases and getting your code merged indicates that you can provide serious and quality work. Usually, these repositories have certain standards of quality. To help maintainers handle a large amount of contributions, these repositories also have quite strict processes and requirements. And they can vary a lot from one community to another. A merged contribution shows that you have the ability to adapt to a workflow. It is a great soft skill to have.
If you contribute to open-source repositories owned by large companies such as Google or Microsoft, the effect is amplified. It feels prestigious, just like telling anyone "you work(ed) at Google" is enough for you to instantly gain their respect. Moreover, it is often thought that these codebases are of exceptional quality because of the prestige associated with the company.
Having a good amount of contributions showcased on your resume has an effect just as important as the rest of your experience.
Experience
To elaborate a little bit more on the previous point, contributing to open source projects gives you a kind of experience that you don't get anywhere else. You acquire knowledge that can be valuable inside a company.
Communication
First, you are able to work with complete strangers you've never spoken to. Open source is always operated asynchronously via text. It is even more important to be able to clearly express yourself and be understood. You can't just take a meeting room for a few minutes with your colleague and clear things up here.
You also are able to justify your changes and decisions. Most maintainers won't blindly merge your changes. You will have to clearly explain use cases, performance implications, and generally why and how you made your changes.
Dependability
If you are a maintainer, it's even better. You are expected to know how to carefully review pull requests. You are considerate and think about all the possible impacts of the proposed changes. You care about your package and you wouldn't want bad or broken code to be added to it. If you can do that for your projects, you can also do it for the company's projects.
Technical skills
Soft skills are great, but let's talk about the hard ones too. Contributions come from many possible situations. Maybe you are using a library and you found a bug or missing feature. Or maybe you noticed an interesting project and wanted to participate. Either way, it means that you have the ability to dig out and understand someone else's code. You have a strong understanding of the underlying mechanisms of everything you are using. It's very likely that you will be very good at troubleshooting.
Workflow
Bouncing back on what's been said in the previous section, the experience with open source processes can also be valued greatly. They are often associated with good practices such as aggressive linters, mandatory tests and coverage, and more. Some elements of open sources processes could be well integrated into internal ones. Having real experience in this field is quite rare and could bring significant technical value to a team.
Personal satisfaction
This one is indirectly valuable to recruiters. The satisfaction is all yours. However, fixing a bug in a library that is used by millions of people around the world is gratifying. This pride can be felt by recruiters during an interview.
I know recruiters can be a bit out of touch with the reality of the job sometimes. But they know that a happy and proud developer is more productive and generally more involved. They are inclined to go further than the bare minimum.
Getting started
Submitting your first contributions can be intimidating. You shouldn't be worried though. There are good ways to get started and begin your open source journey.
Finding a task
The first thing to do is identify which project you want to contribute to. You are using a lot of libraries, tools and software every day. It is very likely a good amount of them are open source.
Next, find something to do. If you found a bug in one of the software you are using, check the issues section and see if it has been reported already. If not, try to fix it! It so happens that most of the developers I know that contribute to open source started with a simple bug fix. It's a great way to break the ice.
You may also have an idea for a new feature for those tools, something that could be very handy. Has it been suggested already? You can probably add it.
Whatever you choose, all those projects will no doubt have open issues. Browse through them and see if you can find one that you could tackle. A lot of projects tag issues with "Good first issue". Those issues usually are quite easy to solve and perfect for new contributors.
Fulfill a need
If you are feeling inspired, create your own tool or library and share it! You're going to need to be creative though, as solutions may already exist. Please don't create another pointless Javascript "calculator" library. For the project to have credibility, you don't want it to look like a toy project.
Try to find a hole in an ecosystem. It happened to me when I started working on my biggest project: Goyave. At the time, I couldn't find anything that suited my exact needs and how I wanted things to be. So I decided to create my own solution, and add this missing piece to the ecosystem. This is the project that allowed me to reach my very comfortable position today. I wish it could benefit other people too, so I created a bunch of good first issues that I invite you to check, and solve if you feel like it.
Conclusion
Contributing to open source is a real asset in your career. The sheer amount of soft and hard skills it brings you are noticeable and actually valued by companies. They will help you find a job and rise to a better position quickly. Talk about all the things open source brought to you on your resume and in your interviews, and I can guarantee you that it will give you an edge.
What's so great about this, is that you also take part in something bigger than all of us in the process. Open source is a fantastic way of benefiting from the skills and experience of each individual, and sharing yours as a return.
Top comments (1)
I can't tell people enough about this.
I know a lot of devs see open source as working for free for an org. They see it negatively.
And, I wouldn't say whether that's a good or a bad take.
But I would say that for many orgs, hiring someone with any open source experience is a far easier decision than one without.