When the time has come to bring a new body to the team, how do you execute that process?
First, let's consider the job description ... do you write this up in an "ad" format? If so:
- Does the hiring manager write the skills requirements?
- Do you focus on tactical skills or fundamental skills (i.e. Joomla vs. core OOAD)
- Can you give an example of how you separate your must-have and your nice-to-have skills?
- Do you prefer a strictly business format or hyper / jumped-up / sell-sell-sell ad? Do you find it makes a difference?
- Do you have any examples of great job ads you've seen, written or responded to?
With your fresh list of requirements, how do you get new resumes?
- We just put an add in the 'Careers' section of our website and they appear
- We put ad in traditional print media
- We pay for ads on generic job websites
- We pay for ads on IT-specific job websites
- We pay for ads on Language or Technology-specific websites (django/php/etc.)
- We attend job fairs
- We promote through social media
- We recruit from the open source community
- We recruit from our open source community
- We only use contractors
Which gives the highest response rate? Which gives the best candidates?
Now that you've got a stack of shiny new resumes and you've filtered out all the noise, what's next? Some people like to do a phone interview. For the purpose of this post, I'm not interested in communications skills, availability, salary expectations, previous employment red-flags ... I'm interested in how you test their technical ability over the phone. The phone can be a great way to get some high-level data on the candidate, including:
- Some generic technical questions to weed out the weak ones.
- Team dynamic questions about difficult interpersonal situations
- Thinking process for debugging
- Logic/lateral thinking tests
- General understanding of algorithms or major systems
Sometimes companies will ask the candidate to do a take-away programming quiz. This is a relatively simple programming challenge that most developers should be able to solve in a few hours. The intention is not to focus on ability to execute under pressure but, assuming you have have access to all your normal reference material and resources, does the candidate exhibit good code craftsmanship? Can they following a coding style guide? Do they have bad coding habits?
Then do you bring them in for a face-to-face interrogation? If so, what is the agenda? Is this a single person interview or do you take them through a gauntlet of technical and business interviews? Do you issue more "think on your feet" programming or logic problems?
Do you think a take-away programming challenge gives better or worse results than a "think on your feet" test?
What do you think of the Google/Facebook approach where the key to entry is to compete in their programming challenges before getting an interview?
Ultimately ... how do you hire developers? Is it working? Are you getting the best developers possible or getting stuck with duds? What would you change?
4 comments:
What I hear is that word of mouth and employee referrals are king.
@adam ... so how do you validate the word of mouth?
I'm not involved in our hiring process, I've only gone through it, and it is not standard across our company.
Once a referral comes in it goes through the normal process, but referrals are much more likely to be hired and to be retained. In my case they got me through an ad in the telegram, but my manager has mentioned the value of referrals on a number of occasions.
The technical part of our interview process is a short quiz using Java and C++ examples. Examples are: what is the bug in this snippet, how could this snippet be more efficient, what is the dining philosophers problem. I don't remember the full quiz. I remember the quiz made me wonder if I was coming to work for a bunch of competitive nerds.
One thing I used to like to do is ask the candidate a question that I know they will not know the answer to. A bad sign is if they make up something on the spot and try to convince me that the BS answer is correct. A good sign is something like "Hmmm, that's a good one. While I don't know much about X, I'd approach it by doing Y." They'd explain the problem solving method for getting closer to the answer rather than BS and hope to get the answer right. They key point is that a smart person knows what they don't know but will have the confidence in themselves to learn/do anything.
Post a Comment