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