Building your career in open source
You may be hesitant to apply for a new job based on your "volunteer" open source skills. Don't be.
Open source was once something that enthusiasts did as a hobby, and if it had a real-world impact on their lives... cool. But open source has gone mainstream. People gain marketable skills as the result of their involvement, even if that experience isn't reflected in their "day job" résumé. You might be a Java developer by day, and contribute to a Python project on your own time — and you really want to get a new position that uses the Python expertise. But you may worry that the open source experience is less impressive than "real job" experience.
[ See also: Convincing the Boss to Accept FOSS ]
If you try to follow the standard résumé format, listing the companies where you worked, your tenure, and your job description (including "reported to...") you may become discouraged about the chances of landing your dream job. Don't be. I initially intended to write a blog post on "What to include in your open source résumé" (and I will, soon after this one, making it a good time to sign up for my RSS feed). I asked a few dozen human resources professionals and hiring managers for their suggestions. Before we got into detail about job hunting with open source experience, several gave me lots of input about the process of hiring people (particularly developers) from the open source community.
In short: Open source is a major benefit for the people who want to hire you, often for reasons that have little to do with the application itself. Many of the hiring managers are are aware of it, too.
Edited: The follow-on post, What to include in your open source résumé, is up.
"Volunteer open source experience doesn't count more or less than corporate experience," explains Zack Grossbart, author of The One Minute Commute, who also is a software engineer consultant for Novell and has contributed to open source projects for the last 10 years. It's just part of your background. "A founder of a large open source project is more impressive than an individual contributor in a corporate one, and a senior architect at a large company gets my attention ahead of a commiter to a small open source project."
One main advantage is that open source experience helps a hiring manager learn what you've actually done, even before they ask you to come in for an interview.
Your open source experience is verifiable, says John Locke, manager at Freelock Computing. "The great thing about open source experience is that I can go out to the projects an applicant has contributed to, see what kinds of code they've contributed, get a glimpse of their personality on e-mail lists/forums/chat logs, and get a sense of whether they're professional, how they handle criticism, and how well they play with others."
For example, Hashrocket considers open source contributions as a primary criteria for hiring, according to Ben McDonald, director of business development. "We ask applicants for their github usernames and check their contributions before giving them a phone screening." (That's only the beginning of the company's evaluation process; developers who pass the initial screen as asked to "pair with us for a week, because we think doing so is much more credible and worthy then some accomplishments listed on a résumé," says McDonald.)
You might be used to a potential employer checking your Facebook page or Googling your name to see what comes up. For open source participants, your experiences are even more transparent. Says Tim Bierbaum, senior software engineer at Source Allies, "An interested person can read archives of the e-mail lists and browse the source tree. If they have contributed code, you can see that code. You can see the questions they have asked and the questions they have answered."
This is useful for more than pre-interview snooping. It give you and the hiring manager something useful to talk about during the interview. Points out Locke, "You can show your actual code, describe how you solved a technical challenge, point to participation in a public community. It's not often you can do that in a corporate job, and you can almost never provide the actual code or conversations to substantiate it!
Because the hiring manager can look at the source code you committed, points out Guy Nirpaz, executive VP for Research & Development at GigaSpaces Technologies, "We can see the level of the work being done." Most won't stop at looking at the algorthms you chose, though. Adds Nirpaz, "Open-source projects usually have forums, and one can evaluate both the participation and the tolerance of the person answering inquiries and challenges on an open source project; this tolerance level lets us evaluate in advance how the person might interact with our customers. In addition, we can see within her development stack where her strengths are, for example, infrastructure skills show very easily in an open source project."
Another advantage to highlighting your open source involvement is that it demonstrates dedication to technology and to learning new skills. One reason Bierbaum pays attention to applicants with open source experience is that his company sees it as "a strong indicator that the applicant is passionate and motivated about their career," he says. "If they are contributing to a Python framework while working as a Java developer by day, it speaks well of the breadth of their knowledge."
Says Adam Ely, formerly a hiring manager at companies like Disney and now a consultant in information security, "In many cases I tend to find those that use open source software to be closer to the technology and more willing to dive in and create custom solutions rather than to ask for budget for all problems."
The best companies (at least the ones you want to work for) want people who are passionate about what they do. Says Journyx CEO Curt Finch, "What I look for in a developer is someone who can't stop themselves from writing code. They’re into the latest stuff, new languages, like Ruby on Rails or Python, or new technologies, like Amazon Mechanical Turk or Google App Engine. So I don't so much go looking for résumés online as I look for open source or open access projects and who is doing the work on them. If they don't have a job, they'll write code for fun. Even if they do, they'll have side projects.
Finch offered a great example. "Many years ago, I needed a Python developer here in Austin. So I Googled 'Python Austin TX Resume' and I found a guy that still works for me today. Here's what happened. I found in his resume a reference to a project he was working on that was open source. I downloaded his code, analyzed it with some code complexity analysis stuff I wrote, found the buggiest parts, called him up, said, 'Come over, I’ve Google mapped you and you live four minutes from here. Don't dress up. I want to give you a job.'"
"When he arrived I asked him why his code was buggy at lines x, y, and z and his reaction was the right one, which was 'You're right. That code sucks. Here's why. And here's how I’d fix it if I get time.' No hostility, a scientific attitude.
"The guy is a genius and is still doing great work for our customers today," says Finch.
Ajit Zadgaonkar, manager of Quality Assurance for Edmunds.com, recently hired three new software development engineers, and was influenced by their experience working with open source software, languages, scripts and libraries and their knowledge of tools like Apache Jmeter, Selenium, Junit and TestNG, YUI, WebDriver, and HtmlUnit. According to Zadgaonkar, people with open source experience have a broader range of knowledge, and uniquely valuable values and mindset. People whose expertise is in using a proprietary tool have useful knowledge, but "It doesn't always scale when dealing with testing software that has multiple integration points, testing software that is built using combination of technologies, or testing the API at a low level when you want to 'go native,'" says Zadgaonkar.
To Zadgaonkar, open source experience implies technical competencies and indicates greater understanding of the subject matter and technology. And, since most open source projects require cross-geographic coordination with team members, it takes more effort and patience to explain or understand problems; open source participants have demonstrated an ability to work in that kind of environment. Adds Zadgaonkar, "Most importantly it also indicates your willingness to hear others and also to be heard. You may or may not be the inventor of the open source project, but once it takes off many people join and contribute to make it a successful tool/utility or script, as the case may be, and having others review your code, make changes and also provide constructive criticism is something that requires sporting attitude and courage. Each of these make up a collection of soft skills that help a professional be a true professional and a true team member."
In any case, don't be shy about listing your open source experience on your résumé. Locke says, "I regularly hire developers and system administrators, and if you give me a resume with verifiable open source experience, you'll almost always
get an interview."
What should be on that résumé? We'll get to that next time.
You probably should follow me on Twitter. Because, y'know, you just should.