Where Do Open Source Developers Hide Their Resumes?
Anthony Boyd asks: "I am a Web Manager in Silicon Valley, looking to hire full-time developers who know SQL, PHP, and Apache. With bonus points for knowing XHTML and Solaris. I am having a miserable time of it. It seems that supporting the Open Source community means limiting yourself to an incredibly small talent pool, or supporting people who are in such high demand that they are constantly off the market. What I am wondering is what /. readers do when they are looking for a new job. Do you just read the classifieds? Do you post your resume? Where? Are there forums you use? Tell me where to go to find you guys, because I would like to throw money and jobs your way."
"Exciting Web development firm seeks creative, driven programmers with experience in Perl, C/C++, Java, XML and OO technologies. Extreme programming and OO design skills a plus."
I've been around this block more than once, and as a technical job seeker, this is an ad I'd ignore.
Why?
First off, even though the intent may have been to attract people who *aren't* language specific, the laundry-list of high-level languages is distracting at best, and intimidating at worst. For example, I am a good C++ coder, and a not a half-bad OO designer. I know a lot about OO theory, and I've probably read every classic book on OO design and development that you have. Nevertheless, I don't know Java, and I don't know XML as if I were working with it full-time. But when I read your ad, I find these skills listed up there in equal stature with C++ and "OO technologies." So what is it? Do you do C++ and OO design, or do you do Java programming, or do you do XML programming? Or do you do mostly Perl coding? Some combination of the three? What priority? From what I've just read, they're all equally important.
Second off--believe it or not--I'm shopping for you, not the other way around. You say that you want only the best. You say that you know this is a tough hiring market. But your ad doesn't do *anything* to discriminate itself from the thousands of other ads that look just like it. Furthermore, your list of "requirements" looks generic--I want to have some idea of what a company actually *does* on a day-to-day basis, before I go through the hassle-cycle of trying to contact you/submitting resume/calling for response on daily basis. So when I read your ad, I have to wonder: are you a Java house that does some Perl? Are you a hard-core C++ house? Do you develop primarily using an OO methodology, and if so, do you do it in a proper OO language, or do you try to bend other languages to your will? As a job seeker, I could try to deduce it from the subtle wording of your ad, or I could just jump one ad down the list to the company that has listed it's requirements as strong preferences, not just a laundry list of hip technologies.
Finally, even if I did decide to call you up for some reason (maybe a slow ad day in the paper), if you invited me for an interview and grilled me mercilessly (or even worse, started the grilling on the phone), I'd probably walk out (or hang up) on you. As a smart person, I am actually *less* likely to sit through a defense of my intelligence for a complete stranger. Life's too short--and there are far too many good jobs--to sit through an interview like that. I think other Smart People (tm) would agree with me here--the jobs that put you through the Microsoft-Patented-Intelligence-Test are usually a little too self-important to really bother with, unless you have some burning desire to work there to begin with (a.k.a "Rudy" syndrome: "I've always wanted to go to Notre Dame...").
So basically, if you did manage to get me to call you with your generic ad, you'd likely turn me off completely with your interview methodology. My advice to prospective employers is to place an ad like this (let's assume you're a C++-centric shop):
"Exciting software development firm seeks highly creative, independent thinkers to assist in the development of it's C++-based product line. Experience with C++ is preferred, but all candidates with relevant OO language experience will be considered. Experience with any of XML, Java or Perl a plus."
Obviously, fill in your own skills as needed, but I think the concept is clear--cast a wide net, and use the interview to filter down the candidate list to those you would like to work with. And as for trying to filter "intelligent" candidates out--well, you're going to have to rely on gut instinct here. DON'T attempt to grill a candidate on obscure principles, or language details, or even bizarre algorithms, whatever you do. Instead, talk to the candidate for a while, ask them pertinent, interested questions about their previous work...maybe even ask them to take part in a code review (your code or theirs). There are lots of different approaches to this problem that will give you an idea of their skill level, and won't require that you be a draconian interviewer.
Anyhoo...hope this helps someone. I couldn't let the above ad go "unanswered"...;)
Let's try not to let fact interfere with our speculation here, OK?
Look, you don't need someone who is specially trained in open source. Just hire any good programmer, and explain to them what needs to be done, and put them on it. Even if they have only worked on Windows previously, they'll figure it out and pick it up (well, if they are totally unix illiterate, their might be a more extenisve learning curve on that).
If you don't fetter your code with obscene licenses or keep it secrete, then you will be an "open source" developer.
It's not like you need a sixth finger or something. "Open Source" development is behaviour, and anyone can adopt it. Importantly, it is a property of YOU as well as your employee. You have to not keep your code secrete, and let other people make use of it -- that's all.
One other thing -- I don't think Solaris counts as open source.
I'm not sure what the problem is that you're having. Is it that you're looking for resumes with specific technologies and not finding them? If so, perhaps you just need to expand your search (find "Web developers", not "PHP coders"), and then ask some good questions in the interview to see if they can handle picking up something new... or perhaps they already know PHP, but didn't mention it on the resume in favor of brevity?
I know my resume does *not* list everything I know... not by a far cry. I just don't believe in having a 4 page resume (it's already two pages, and that's sticking to the important stuff).
Of course, this *is* a tough market. I'm always looking for good Web or Java people -- they exist, but most of them have jobs they already are quite comfortable with. The dot-com blowout probably displaced some folks, but if they were any good, someone else probably snapped them up.
In any case, stick with it, and be prepared to do a fair amount of legwork... you can't just search a job board for "PHP and Perl and MySQL" and expect candidates to drop in your lap. Actually, the best results I've ever gotten have come from ads placed in local papers that were very specific, like:
"Exciting Web development firm seeks creative, driven programmers with experience in Perl, C/C++, Java, XML and OO technologies. Extreme programming and OO design skills a plus."
So in that ad (not a real ad!) I made sure to mention a few good programming languages, figuring I wouldn't hire someone who didn't know *one* of those. I also mentioned some programming disciplines of interest, to let the really good candidates know I'm not a PHB, but might actually know something about the art of programming.
Then I interview the hell out of them. If they can even answer 20% of what is thrown at them, they are at least trainable to be the sort of person I want. If they answer 100% of the questions, they are either godlike or trying to BS me. Those who BS never get the job... those who say "Damn, I don't know that one" might get the job. If they actually *want* to know the answer, they are almost 100% likely to get the job.
Oh... obviously this hiring strategy requires a lead programmer who is really good. Get a headhunter to find this person if you must, but *get them*. Pay them well. Give them options. Whatever it takes, that is the cornerstone of the technical portion of the company, he will train those raw recruits into talented professionals.
It's a strange world -- let's keep it that way