So we’re in recruiting mode at Observer Media Group, and boy does it suck. We’re trying to fill just one position; a junior to mid-level developer. We’re looking for candidates who know PHP, HTML, and Javascript cold, and ideally know a bit of Drupal and have at least one other language under their belt with some preference towards Python and Ruby since we frequently build projects in those too. But of course there’s a gap between what’s in our budget and what qualified candidates want to earn. And of course there’s no lack of candidates who would be happy earning much less than what we can pay. But those candidates are either inexperienced, uncommited, or simply clueless, not to mention needy and whiny.
I won’t address the first kind of candidate–qualified but unaffordable–at great length because they’re often people I’d actually like to hire, and I’ve actually met some pretty cool people in interviews who I now count as friends even though we didn’t ever actually work together. Sadly, these candidates are normally looking to do more or less what I do, and make about as much as I make, but at my company at present, there’s room for only one of me. What I typically have to say to them is, “The job you want here is my job, which is presently filled by me. Check back next week.” This is too bad; we all like working with our peers. Perhaps at a bigger company I would fare better trying to hire in this category, but I’m just playing the hand I’m dealt. Sad.
The second type of candidate–clueless and blind to his cluelessness–also makes me pretty sad. These are people who I can’t really imagine doing solid software development. Whenever I try to convince myself to hire one of them, I think back to the people who gave me my first chance as a professional programmer hoping to see myself as my old bosses and my candidate as a younger, thinner me. Doesn’t work, though. I freelanced for quite awhile, then held a contract job at a big media nonprofit, then freelanced some more. I really bootstrapped my career. These candidates’ exposure to web development often begins and ends with the web class they took in college. They send me code samples which are passable, but then can’t remember a single language construct in PHP, how to represent a linked list in ANY language, or the command to list the contents of a directory on a Unix-like system (”Well, I could use Google, right?”). Of course you can use Google, but that isn’t the point. I’m not going to pay you to Google simple commands, and I don’t have time to teach you PHP.
These candidates are also often the neediest, calling and emailing incessantly. One candidate returned to the office after hours and convinced the cleaning lady to let her in. She left a note on my desk asking if I had any new information for her with a request to call her. Another argued with me about PHP syntax, swearing that he had used array.count() before, then emailed me back several times after he checked it out and discovered his mistake, hoping that it wouldn’t hurt his chances. Bad news kid, if you can’t count the elements in an array, you’re probably not ready for the big time yet.
For many of this candidate type, I just want to tell them to change fields; if they’re not willing to breathe and sleep software for at least a little while as they learn, they’re not ever going to be able to compete for jobs, even in a market where programmers are very scarce. I’d rather have a vacancy than a time drain. What’s more, they’re fairly likely to be able to find a job of some sort; there are places (big development shops where I’d never work) that will hire just about anyone on a bet that they’ll be able to pay for their salary, space and a little more in client work. There are also plenty of small business that hire very junior programmers in the hope that they can save on vendor bills. For what it’s worth, I’ve never told anyone to give up programming.
One outcome of my experience with all this screening and interviewing is that I’ve stopped giving written tests to programmers. I have a scenario I follow (a pet store that needs a management application) which I walk the candidate through verbally; this allows me to ask easier or harder questions without subjecting good candidates to the terrible bore of drawing database tables and writing out SQL queries, and catch inexperienced programmers before they waste too much of my time. And because it’s a flexible scenario, I can invent tricky issues for the senior guys to solve and ask simple questions about sorting to the junior guys.
Another outcome of this is that I’m starting to really made me think hard about one of the standard defenses of PHP in a corporate setting–that it’s easier to find programming talent that knows PHP than just about any other language. I’m not sure that’s true, because almost every PHP developer I’ve actually brought myself to hire is interested in other languages and capable of learning them. This brings to mind something a lead ColdFusion developer once admitted doing–hiring Java developers and training them to use ColdFusion. I probably wouldn’t have to go that route, but it’s become fairly clear to me that being a good programmer is independant of one’s knowledge of a particular programming language. The only question in this case is how much time we can invest in the candidate’s training.
So for now, we’re leaving the vacancy open and hoping for a miracle. If anyone has any miracles to spare, send one my way.

0 comments ↓
There are no comments yet...Kick things off by filling out the form below.
You must log in to post a comment.