How to Interview for an Open Source Job
Looking for a job in a Company that produces leading-edge open source software? Then you’ve come to the right place. In this two-part blog I describe what we look for in successful candidates (by “we” I mean everybody involved in the hiring process ranging from the interviewing technologists to Katie, Kitware’s HR Generalist). But there’s a twist, I’m also directing my comments at those organizations that want to know how to interview candidates for an open source software position (Part II of this blog).
But first, while I’d like to skip this particular paragraph due to its seemingly obvious nature, start by learning the basics of interviewing! We see way too many candidates (and interviewers) ignoring obvious interviewing practices. There are tons of books, articles and web resources that describe the basic interview process and you should study them. Some of the important steps described in these general materials include:show respect for the interview process (respond promptly, show up on time, dress appropriately); prepare (perform company research, research potential positions ahead of time); and practice (review common questions and prepare answers, review the timing and delivery of any presentations you may be asked to give). And of course on the day of the interview remain calm through any challenges, stick to the presentation schedule, demonstrate what you know, and explain what you want and how you are going to get there. Basically if you have some smarts, demonstrate a modicum of interpersonal skills, and prepare you will do just fine.
Okay now on to more interesting matters. How is an open source job different than any other software position? I would characterize the difference with the following buzz phrase: community IQ. Community IQ is simply the ability to effectively operate in and contribute to large, disparate technical communities. The potential job candidate should address the following questions: What have you done to impact one or more software communities either through technical brilliance, elegant design, or masterful engineering? Have you been a team player? Do you work well with others and maintain a civil, constructive tone through difficult arguments, even using evil mediums like email? Do you show a sense of humor? Have you taken on necessary grunt work for the sake of the project? Do you show effective leadership? Are responsible, software quality practices part of your forte? An affirmative answer to any one of these questions is a plus, since these are important characteristics seen in most effective OS contributors. Thus during the interview your job is to demonstrate as high a level of community IQ as you can.
Of course successful software developers of all stripes demonstrate these qualities, whether they are contributing to closed projects or are engaged in large, open ones. However the ideal open source candidate differs in that they can prove their impact (and hence community IQ) simply by pointing to a body of work (commit logs, documentation, wikis, emails, etc.) For a good OS developer, the hiring process becomes very easy: the body of evidence says it all. Those without this evidence have a harder path to travel and a greater burden of proof. If you are interviewing for any software job, you will want to assemble a portfolio of code and supportive evidence demonstrating your abilities. (Note to interviewees: even if you are not participating in an OS community, please consider assembling a portfolio of software from projects and coursework, with anecdotal evidence conveying your community IQ skills.)
In the next blog, I’ll discuss how the hiring process is different when a company seeks to fill an OS position. Click here for Part II.