Ask HN: Has anyone got a job by contributing to open source projects?
I am trying to find a mentor that might help me ramp up in C++ on an open source project like Google Chrome. I am happy to pay for the mentorship.
I would also be open to collaborating with peers that are in my position and want to contribute to an open source project.
I have 3 years of experience in C++ but haven't touched C++ for 5 years.
56 comments
[ 1.9 ms ] story [ 107 ms ] threadDifferent people will consume your resume in different ways. Automated resume-digesting systems and recruiters might get excited and tag your profile with keywords associated with those open source projects. Or they might not know what to do with the information and throw it away. Similarly for HR. Flesh and blood engineers screening your resume may get excited if they read that far. But once you've made it past the resume screening stage, it'll likely be completely irrelevant, except in the unlikely case that you're being hired for a gig specifically based on your experience with one or more of your contributions.
It is something tech-knowledgeable companies would be interested in, and tech-naive recruiters will notice even if they can't judge it (I used to work for a recruitment company so heard lots of conversations).
If the entire stack is open source based (most of devops that isn't Windows, for example), it certainly gives you lots more opportunities if you can show that you know what you're talking about, and if your name rings a bell with people in that space.
For developing line of business java/.net applications (which is a _huge_ field) open source contributions don't matter on the resume and might even be a net negative.
This is a good thing for both sides - people who really do have the passion to code all the time have an advantage at getting better jobs, more pay. And those who don't have better work/life balance. Neither choice is wrong, they just have different consequences.
But because both choices exist, open source participation will not be a standard thing.
this hits especially women who are still most often made responsible for housework and childcare, but it also hits others who maybe have to care for someone or value family life over their career.
You should include some minimal contact information, because as of now I can't find any way to contact you. Been a Chromium contributor for a little while, so I might've been able to help a bit.
I used to contribute quite a lot to the Puppet ecosystem. I met a ton of people through my interactions with the community and by being the maintainer of a few things like Puppetboard, pypuppetdb and the apt module. Through my contributions around PuppetDB I ended up working closer with two engineers who eventually asked if I were interested in coming to work with them.
The company was Spotify, and I accepted the offer in fall 2014 and stayed for a good four years.
This has been a massive boost to my career and it's mostly just been dumb luck.
But you're also right, I put in a lot of work there and it paid for itself. Ironically none of this was done with the purpose of getting a job, I had one already that I was quite happy with.
Most of the ones I know have been hired by Google, straight out of a program called Google Summer of Code (GSoC) which prepares students for this and they instantly get referrals if they complete their project.
Now if I were starting out right now I would look at tackling the first contribution issues in smaller projects, then work your way up to the larger projects. I’d say contribute to a project that you even use yourself, improve it and branch out from there to fix issues in its dependencies / libraries.
Also the GSoC website has lots of participating organisations [0] to contribute to.
My personal favourite orgs are
LLVM, Linux Foundation, Xi Editor, Haiku and Blender.
[0] - https://summerofcode.withgoogle.com
I was already contributing to an open-source project (fireflier) when I applied for GSoC for the ClamAV project, and continued to contribute to the project after GSoC was over. Shortly afterwards got invited to be part of the team, and when the project got acquired by a company the next year I got a job there to continue working on it (initially part-time because I wanted to finish my studies at the university, and after that full time).
Try to apply to 3 or 4 projects that you like, but don't get too disappointed if you don't get accepted the first time. It probably helps if you already are a contributor to an open-source project so that people can check your coding style/knowledge by looking at GitHub/Sourceforge etc.
As far as I understand from the description, you're interpreting open source contribution in a very specific (albeit typical) way:
I generally discourage approach 1, for a couple of reasons.The first is that a lot of people in the industry try this way (I did it, too), and this makes "newcomers management" onerous for projects.
The second is that commitment to newcomers is unrelated to the project size/fame. You'd think that large and established projects necessarily care about newcomers; there is no such connection. A notoriously committed community/project is for example GitLab; I won't mention another "very famous project" who couldn't care less, instead (to the point of labelling issues as "good first issue" and then ignoring them).
There are obviously project-external devs who gets their code approved, but based on what I've seen, they're people with experience in the field, and who work in a more targeted fashion (ie. approach 2).
I don't have experience with approach 2, however, if fits exactly the GSoC initiative, so you may either try to get in, or, in order to find a real-world answer to your question, research how many of the GSoC students are generally hired.
My opinion related to improving one's career by contributing to open source is to contribute to welcoming projects that you find interesting, and get known in the field. In other words, networking. I think start working on a famous/big project with career in mind has a very high chance of leading to frustration.
My direct answer to your question is "yes, I do know people who got a job with their involvement in open source", and it was about networking, not about working on a famous project.
https://twitter.com/dan_abramov/status/650968538564444160
Now that I'm freelancing, my work on an open source CSS framework called Bulma [2] has allowed me to find clients more easily.
[1]: https://marksheet.io/ [2]: https://bulma.io/
and demonstrated so beautifully right here in this comment.
Essentially I think he recognised there was work to be done, and wanted someone on a fixed-term basis to get it done, but maybe it could've led to a permanent position.
I was due to start a new job the next week or something when we spoke, so unfortunately it didn't really suit me at the time, but I was very glad of the opportunity, the company remains #2 on my 'consider when looking to move' job list, and it came 100% because I was working on something open-source to solve a problem _I_ had, and that some others happened to be interested in.
I would never say OSS development is a requirement of a software engineer, nor want it to be, but I do recommend it to people starting out (I've mentored a couple of pre-u niversity students) - and I think it could be a great way for you to get back into C++ too, not only writing it again, but getting peer review and tips like 'since C++17, we're now able to do this like this instead which blah'.
I'm not sure about finding a mentor to help contribute to a project. Rust has a program exactly like that to connect people with maintainers so they get mentorship and experience and the maintainer gets some work done and feels good for supporting the community. But obviously that's for rust projects.
You could whet your teeth on something simpler perhaps, before moving on to Chromium or similar?
The one thing that made this a job opportunity (my career is coreboot-based for about 12 years now) was that I built some rapport within the communities. These days I'm paid to work on Chrome OS firmware, which uses coreboot.
Becoming the go-to person for some aspect of the project is easier for smaller projects rather than huge operations like Chromium for several reasons, among them:
1. No matter what you do, you won't out-run an army of full time developers that have multiple levels of management to coordinate their efforts (which is a force-multiplier to some degree).
2. Projects the size of Chromium tend to have lots of discussion internally within participating teams. There's no ill will about this, it's just how people work when they happen to share both project and office space.
So yes, open source work can lead to fine careers, but you'll need some differentiator that makes people go "maybe I should ask anindha about this".
If or when that happens in a "marketable" project (as far as careers go there was certainly luck involved in my story: openbios has little commercial use, and coreboot's commercial prospects looked grim for a while as well), at some point some team will want to have you work on their tasks full time: Much better than hoping that you aren't busy doing whatever else you need to pay the bills.
There are probably other ways to get a career based on open source work, but that was mine.
when it comes to hiring, a differentiator is that you are already working on the project. not everyone contributing now is actually waiting for a job.
in one niche community i was able to get interesting jobs because i was the only one willing to move to take the job.
Over the years this led to several job offers, and while I didn't directly take any of them, I stayed in frequent touch with the founders of Redis Labs, who found me through this activity. And a few years later when I was looking for a new job, they were my natural choice. And one of the best jobs I've ever had.
This was one of the key factors that helped me land my dream job so definitely, open-source work will help you get hired but this might depend on the industry. Blockchain is open source by default.
https://en.wikipedia.org/wiki/Steve.museum
Did it GET me a job? Maybe not. Did it come up in every interview since? Yes.
Contributing to one of a company’s OSS projects or to a related project is great way to get that company’s attention and prove your ability even before any interviews.
The biggest win of doing open source work is that it’s more challenging than corporate work. You build product management skills and really learn to focus on objective quality factors and continuous improvement.
At this point in my career I have passed the tipping point and my open source work is making me less compatible to many of my corporate JavaScript peers. I am not interested in easy, dicking around with unnecessary configuration madness, and prefer to write original code. I am less interested in learning how to write code and more interested in data structures and algorithm design. Contrarily JavaScript is a low barrier of entry field where many newer developers have little or regard for automation practices compared to various other concerns.
If you contribute to FSF projects, the FSF will ask your current and future employers to exclude any claims over your contributions - even your hobby contributions.
I can't tell you how exciting it was to be hired to help a company enhance the https://github.com/spree/spree extension I authored.
It was the most rewarding phase of a 20+ year career.
Bottom line: if you make yourself known/valuable in a community, opportunities will pop up. Go for it!
As a manager at Microsoft I look at the github profile of every applicant who passes recruiter screening. Open source familiarity is a must, and regular contribution is a strong positive flag in my mind.
I think some companies/teams hire from contributors to their projects... But I haven't seen that happen personally so I can't speak to it.