Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Has anyone got a job by contributing to open source projects?
78 points by anindha on July 14, 2019 | hide | past | favorite | 55 comments
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.



I have met engineers who have been hired by FAANG companies and have told me that their regular community contributions towards high-profile open-source projects (They particularly mentioned QEMU, LLVM, Rust, Swift and V8) was the reason they got an offer. The barrier in regularly merging quality patches for review in these projects is very high and it is advantageous for the likes of these companies to shortlist you if you have significant contributions towards these projects.

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 highly recommend GSoC. It is a fantastic opportunity to learn and contribute to an open-source project by having a mentor from that project that you can talk to, and get paid to do it.

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.


The OP is probably not a student, judging by his profile page, and GSoC is a program exclusively for students.


I kinda wish there were similar programs for non students ... even older folks who have transitioned to a career coding.


Yes, not a student. It was useful to look at GSoC projects as a source of inspiration.


one point to keep in mind, even if you are not eligible to participate in GSoC, you can still volunteer for the projects. the advantage is that GSoC projects are already set up for mentoring, so they have the people you need, and they have projects for you to work on, so they will most likely be able to take you on.


I started working on open source firmware: first openbios, then coreboot.

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.


and coreboot is growing. i saw a job post just a few weeks ago from a company that is using coreboot, and coreboot developers were hiring too, or will soon. perfect time to get involved.

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.


As someone who would love to get into firmware development, I'd like to ask if you have insights into how possible it is to break into the field. I'm considering going back to school for a CE degree, but I've heard anecdotally that due to the small size of the subfield, it's almost impossible to get a job without being very well connected and / or from a top school


I did.

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.


It's not dumb luck, you put yourself in the picture by contributing to the project. If you were picked up on the streets by the Spotify CEO because he accidentally overheard you talking about developing software, now that would have been dumb luck.


I believe some luck was involved. At the height of the Puppet community and size of PuppetConf our paths could've easily never crossed.

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.


Sounds like you made your own luck


I got my last job thanks to MarkSheet [1], a free open source tutorial I published on GitHub.

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/


Thanks for your work on Bulma! Are you available for freelance work? I’m starting to use Bulma on a new project and could use some customizations here and there.


Drop me an email: https://jgthms.com/


> has allowed me to find clients more easily.

and demonstrated so beautifully right here in this comment.


I have an open source project that absolutely got me hired to Intuit years ago.

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.


I did!

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!


Spree looks cool. Some big companies are using it.


Yes, three separate jobs to date over a span of 16 years. However, none of those three jobs directly utilised my open source contributions over the last 20 years. They made use of the skills I had, and which those open source contributions demonstrated publicly.

I didn't start working on open source projects because I wanted to get a job, and have some fodder for padding my CV. I worked on them because I was interested, and got deeply involved in several over many years. I think getting involved solely for getting a job, is doing it for the wrong reasons. You need some intrinsic interest as well.


Sort of - I became active in the Redis community when it was just starting to pick up. Mostly helping out users and giving local talks, but occasionally contributing some code as well.

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.


Dan Abramov was hired by Facebook because of his opensource contribution. I think.

https://twitter.com/dan_abramov/status/650968538564444160


I had a maintainer of two related (as were my changes) open source projects - one an SDK under the (big but perhaps not quite FAANG company's) organisation, the other FOSS not provided by the company that used the SDK - reach out after collaborating for a bit.

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?


I am a potential employer (CEO TimescaleDB).

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.


TimescaleDB looks cool. I'll check it out and have a play with the source code.


I think the question is somewhat ill-expressed.

As far as I understand from the description, you're interpreting open source contribution in a very specific (albeit typical) way:

    1. generically contributing to a well-known project to get recognition by the industry;
    2. get hired in a certain project team through specific feature(s)
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.


I did. I got my last job in the VFX industry because I'd learned python in my spare time writing external render engine plugins for Blender.


I did a lot of open source work in blockchain (ethereum) ecosystem. I wrote a couple popular tools (typechain), as well as I, contributed to other projects.

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.


Several people have gotten well-paying jobs due to contributing to the D programming language effort.


Yup, all of them in fact, it's a very tangible proof you can work on the subject. Sadly, I do mostly Python and JS so I can't mentor you but as mentionned in other comments, lot of projects are looking for contributors, Firefox is good project for example.


Google Chrome is not open source. Chromium which contains the guts is.

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.


Thanks I've reached out via email. Thanks for the tip - I also updated my bio to include my email.


I worked on KDE apps and some of the core bits for a while and hung around on IRC, where I found some Qt work. I did some short term gigs and some permanent (making Zaurus apps, among other things), all entirely remote. This was in the early 2000s.


I was one of the original leads on

https://en.wikipedia.org/wiki/Steve.museum

Did it GET me a job? Maybe not. Did it come up in every interview since? Yes.


i offer paid and free mentoring (free if you work on my own projects, most of which are FOSS).

i don't know if i have enough experience C++ to be a good guide for you. it depends on what you expect from a mentor.

i recently worked with a student learning rust, without any rust experience on my side. i helped the student to structure the program, while they had to explain to me how certain rust constructs worked. that had the effect of the student having to explain what they learned about rust, which is a powerful way to increase their learning. (if you want to learn something, try teaching it to someone else)


I would be Interested in getting some mentorship...I have also started to learn rust and kubernetes plus doing leetcode on the side, I also want to contribute to OS projects and have some more activity on github... I am getting a bit overwhelmed and my motivation is dwindling so I think a mentor might help. How can I contact you?


being overwhelmed and loosing motivation are good reasons to work with a mentor.

i have added my email address to my profile.

i am looking forward to talk to you.


It's hip to have open source in some fields, and not in others. I've heard negative comments on multiple interviews - especially when there's an overlap between the open source project and your future work. Will you devote your full working hours to the company or to your hobby contributions? Will you open source the IP of the company?

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.


Yes. I believe I have stood out and have been hired in some job applications relating to PHP/Yii because of a popular extension I contributed to the framework.


Hard "yes".

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.


Origin Protocol hired several engineers that started as open-source contributors to their open source code base, one of which had no experience as a professional software developer (he was in real estate).


We consistently hire open source contributors who contribute to the WordPress open source project. They're primarily engineers, but some have transitioned to product management (PM).


Thats great! Do you mind sharing where you work?


I didn't actually follow those, but it looks like if you start contributing to openstack, you'll get people emailing you with offers. Not as many now as 5 years ago, but still.


Only contributing unlikely. Happens, but rarely. Leading a project very often.


it will be an irrelevant question, but do you think that contributing to an open source is becoming a standard thing now?


Not in the slightest. Most developers are not participating in the startup ecosystem. They are working in enterprise organizations, or smaller "lifestyle" companies. They do their work, then go home, and do the rest of their life. Coding isn't their hobby, it is their job.

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.


Depends on the field you're trying to enter:

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.


In the past decade I've seen a few hundred resumes for developer candidates and I haven't seen one mention open source contributions yet. A few have had forks of open source projects in their Github accounts but with no indication that they've ever PR'd anything upstream. There could be many differeny reasons for that (geography, programming language, industry, etc) but it certainly seems to indicate its not all that common.


Suppose that I want to mention my open-source contributions in my resume. How/where should I mention that?


No need to overthink it. You could add a very short section at the end with a brief list of bullet points of the project name, a few words explaining what you did, and a link to the PR.

Different 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.


If it's a significant contribution then the answer is, right at the top and loudly.

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).


I've seen the advice of "contribute to an open source project then throw it on your resume" many times over the years. Usually it's geared towards people with minimal credentials who need something to make their resume look better. Granted this could not be the situation OP is in at all.


i certainly hope not. because it's inherently unfair. not everyone can afford to work on FOSS in their free time.

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: