Amat victoria curam – victory loves preparation. When I started looking for a job, I started to prepare myself for in-person job interviews. First, I made a small research about the literature of in-person interviews. and the following articles seemed pretty useful: The Guerrilla Guide to Interviewing (version 3.0), a good book by the same author (Smart & gets things done), How to Hire a Programmer, The one thing every software engineer should know, How I Hire Programmers.
These articles give an outline of a programmer in-person interview that I call “ideal in-person interview“. Of course I’m not a hiring manager, I know nothing about how to hire people or how do these techniques work in real life, I know one thing, these articles describe a beautiful and perfect world. In a perfect world, hired programmers are always rockstar coders (Note: When I write “rockstar coder”, I can hardly write for laughing, becaue Jeff Atwood’s quote comes in my mind: “Rock stars get sex, drugs, parties, limousines, fame, glory, dates with supermodels, and Rolling Stone covers. Good programmers get . . . uh . . . fewer compiler errors.”) and nobody can cheat hiring managers. However, the “ideal in-person interview” is just a theory and we knows, theory and practice are not always the same.
But I still like to think that the “ideal in-person interview” is something like a geek magnet. These programming tests and small problems and conversation about programming related topics must seem fascinating to a geek who wants to show his abilities, they give enough place to creativity and they attracts the attention. I’m sure they are more interesting that the classic interview questions like “why should we hire you?” or “if you could be any animal, what would you be?“. Short and sweet, if I’m looking for a job, I want to take an ideal in-person interview.
Sad, but the world is not ideal, a lots of companies use other techniques to select the best candidates. Programmer interviews sometimes follow different patterns, here is a good summary about the existing real-life patterns. Most of these patterns are annoying for people who want to live in an ideal world.
I started to create a small test entirely for my own amusement, which shows, how near is an in-person interview to the ideal. It is similar to The Joel Test, it contains ten yes/no questions and ten yes answers mean that the job interview is 100% “geek friendly”. The first five questions are based on Joel’s articles and book, the other five questions are based on the Thirteen Patterns Of Programmer Interviews. (Actually, the seventh question is based on Joel’s texts too, at least partially.) I’m a modest guy, so I call this test The Ritchie Test. (Relax, it is just a joke.)
- Do new candidates write code during their interview/do they get an audition project? (In other words: does the company hire such guys and girls who don’t prove that they are decent programmers?)
- Does the company put candidates at ease? Does the company follow the priciple “each interview should consist of one interviewer and one interviewee, in a room with a door that closes and a whiteboard, it takes at least 45 minutes”? (Note: Video interviews can be perfect for that.)
- Open ended questions about problem solving in more than half of the time. The interview doesn’t seem like a Quiz Show or a DMV Driving Test or a School Day (== only the teacher speaks). The interviewer asks open ended questions about concrete problems and programming related topics. The interviewer is interested in how the candidates go about solving problems, what they know about issues and how they are thinking, not the actual answers. The interviewer doesn’t tend to talk much, even the candidate is embarrassed.
- Is the interviewer a senior programmer and does the company repeat the interview with an other senior programmer? (In-preson interviews with non-programmers don’t matter. When the company uses one interview round and two senior programmers to test you, then the answer is “no”, because the interview isn’t repeated. Telephone interviews also don’t matter, but video interviews matter. Note: Some famous companies use six different interviewers to test candidates in six different rounds, but I’m just a small fish, two interviewers are enough to me.)
- Does the interviewer check the “get things done” attitude? It means something like a decent background check and polite cross questions. (Examine 7. and 8.)
- Are the candidates respected in the interview process? The interviewer isn’t late, he is prepared, he read the resume, the candidates don’t need to answer the same stock questions again and again. (The idea of this question comes from here.)
- No uncomfortable questions. More precisely: no illegal questions, no questions about family status, veteran status, what other jobs the candidate has applied. etc. By the way, I never answer such questions.
- No interrogation. The candidate doesn’t have to defend himself, the interviewer doesn’t try to humiliate new candidates, no sadistic questions. (I really appreciate it even if you are not going to hire me. Please, if it is really necessary, just ask nice questions and read between the lines.)
- The interviewer is curious about the new candidate. For example, the interviewer doesn’t promote his company aggressively, he doesn’t answer his own questions. You don’t have the impression that nobodies work for the company and you are just next in the line. Interviewers behave himself like real people.
- The process of recruitment isn’t rushed. The company can find new men in the foreseeable future, its reputation is good, the managers haven’t unreal expectations with new employees. (In other words, the company is not a Live-Catch Trap and it doesn’t perform a Gruesome Search For More Bodies.)
Some footnotes. I don’t have any problems with brain-teaser puzzles (I will read the How would You Move Mount Fuji? some sunny day), but I understand that most people don’t like them. Furthermore, I don’t have any problems with questions about salary expectations, I see that it belongs to the negotiation. I accept that when I want to get the job (and not the company want to hire me), then I’m in worse position, and frankly, the nature of work is more important to me than the money that I take home. And my belief real programmers can write code on a piece of paper, so the lack of the techniqual equipments cannot be a problem.
Remember, it is a blog article and I’m a junior programmer, my opinion is just an opinion. As times change, people must change with them, likely my opinion will change when I will have more experience. I will write the changes and I will write the next version of this article when the time comes.
Update: If you want to use my test to rate your last in-person interview, here is the_survey to that.