Hiring quality developers is the key to any great application development organization. In our department we have experienced the joys of a great team that has jelled to produce high quality projects, and experienced the pains of bad coding practices, bad spaghetti code, and bad attitudes. Our team has very high standards, and our interviewing process is rigorous (and will be the subject of another blog post later). These resources are some of the tools we use to ensure that we get a candidate who can do the job and do it right, whether they be Junior, Mid, Senior, or Architect level developer.
1 and 2 – From Scott Hanselman
Scott Hanselman has two fantastic articles on .Net interview questions. One is called ASP.Net Interview Questions, and the other is called What Great .Net Developer Ought To Know, and the subsequently posted list of answers. This is basically version 1 and version 2 of the same idea. His second post breaks out his question ideas into increasing degrees of complexity and different job function specializations. The comments on these posts are almost as valuable (and some more so) than the articles themselves.
3 – From Marc Andreessen
If you are opposed to the idea of a list of technical (trivia) questions, here is a great article by Marc Andreessen called How to hire the best people you’ve ever worked with. If the name sounds familiar, it should… in 1992 while at NCSA he co-authored Mosaic (the first widely used web browser), and in 1994 he co-founded Netscape Communications. Marc focuses on the less technical traits that make a good candidate great. He discusses the importance of drive, curiosity, and ethics. He then discusses the importance of a process for hiring, and outlines six steps to find great candidates. This is an article you should read, re-read, and re-read again.
4 – Worse Than Failure
Worse Than Failure is a web site that collects, “Curious Perversions in Information Technology.” It houses a collection of really bad code snippets, bizarre error messages, and best of all – accounts of really bad interviews. Reading these continues to remind me why we have such a complex interviewing process. So far, my most favorite is this account of a telephone tech screening. The shame of it all is that this has happened to us in our department. A lot.
5 and 6 – From Amazon.com
Here are two great books that cover the gamut of good, hard, uncomfortable interview questions, and the kind of answers you might expect to see. The first is 101 Great Answers to the Toughest Interview Questions. The second is Best Answers to the 201 Most Frequently Asked Interview Questions. I have chosen some great questions from these books when I was the interviewer, and have reviewed these books myself to prepare for an interview when I was the interviewee too.
7 – Brain Benders
Sometimes, depending on the type of candidate we are looking for, we like to ask the candidate to solve a number of puzzles or riddles. This is (or was) a common practice at Microsoft and Google. If done right, it can shed some light on the thought process of your candidate, even if they do not get the puzzle solved correctly. One source of these types of questions is a really great book called How Would You Move Mount Fuji? Microsoft’s Cult of the Puzzle – How the World’s Smartest Company Selects the Most Creative Thinkers. There are lots of other sources for this kind of material, both online and in print.
Which ones did I miss?
These are not the only good resources for interviewing by any means. These just happen to be the ones that our team and I can’t live without. What resources do you rely on to find a matching candidate for your needs?