Imagine that you have a pressing need to hire a top-notch software developer. You contact all your friends and colleagues to put out the word. You call up a couple of recruiters and put an ad on a couple of websites. You canvas some relevant conferences.
Soon you have a pile of resumes. Depending on your company and how much advertising you’ve done, you might have thousands of resumes. So you sit down to run through them, rapidly discarding the vast majority until you find one with those magical three words, “Open Source Experience”. BAM. Search over, move on, right?
Looking around the web, it seems accepted that job seekers should participate in open-source projects because it will help them get a job. The theory is that by participating, you make a portfolio of your work available to any prospective employer, so they can verify your technical aptitude. It also seems to be the prevailing wisdom that only the “best of the best” participate in open-source projects (as it is supposed to be a meritocracy).
While I can’t speak to the general quality of open-source developers versus the average developer, I can speak to the value of an employer being able to look at your portfolio of work. While I am certainly not the first person to suggest this, it bears repeating so that people do not fall into the trap of placing too much value on it.
I will not review your work on an open source project.
Having source code available bears no relevance to the hiring process. Remember that I have thousands of resumes. Most of the time I won’t even read the entire RESUME, much less go look at the source control history of some open-source project on the web to determine what code is yours and evaluate it.
I am interested in your experience. Whether you gave the code away or not generally does not matter as much as whether the code you wrote is relevant to the position I am hiring for, and I should be able to determine that from your resume.
I might check to verify that you actually committed code to the stated project. I might even go so far as to see what parts you worked on. But that is no different than me calling up a former employer to verify that you worked there. By the time I do these things, I’m already interested in hiring you. I’ve probably already interviewed you and determined you are a good fit for the position.
If I want to see what kind of code you write, I’ll ask you to write some code as part of the interview, and if I ask you to write some code, you can bet I’ll ask the other candidates to solve the same problem. This way I can compare and contrast everyone’s strengths and weaknesses from a common starting point.
So, essentially, my advice on whether to contribute to open-source projects is this. If you want to contribute to open-source projects, please do so. The networking and development skills you gain will be invaluable in finding a job. The best way to become good at something is to practice, so learn how to read code, learn to fix bugs, develop new features, respond to complaints. All these things are valuable skills you can gain by working on open-source projects.
Just don’t expect your open-source experience to magically open any doors for you. Proprietary-source developers are all learning the same thing. You still need to demonstrate all the same intangible qualities and experience that companies look for to set a candidate apart. If you can’t even be bothered to show me why you would be a good candidate, why should I be bothered to find out if you are or not?