Interviewing Developers
Wednesday, January 23 2008 16 Comments
Part of my job is interviewing developers to assess their technical skills. The majority of these interviews are at the Junior and Senior levels and I have accumulated quite a bank of questions I like to ask to get to the root of technical problems and see how the candidate responds.

ASP.NET is a usual topic of discussion because of the vast amount of work that we do and the wide spread adoption of it amongst developers.
So, let’s say you want to see how much the candidate knows about ViewState. I start with an example…
Say you have a page with a dropdown on it. Listed in the dropdown are various types of fruit that come from the database. To prevent multiple queries for the same data, the code that loads the fruit is inside an if(! IsPostBack) { } block. With me?
….yes.
So what happens when we click a button and postback?
It is amazing to me to see how many developers differ in their answers just on this alone. Some people tell me that the values are cleared, some tell me they stay there but they can’t tell me why, and some mention viewstate but they have no idea how it works.
For those who mention ViewState, I inevitably ask, “What happens when we turn it off?” Of course the values are erased. “How can we get around that”
Again, many candidates just don’t know what to do in this scenario. They fail to understand how ASP.NET works on top of HTML, or they have forgotten how the web works, however it may be, those are two very beginner questions, and about 80% of the people that I talk to on the phone struggle there at least some way.
Now granted, some of our candidates are college grads and folks who haven’t done much (or any) .NET. I don’t hold this against them.
Another area I like to explore is to the various forms of ASP.NET state management (such as cookies, session, cache, application, request) and this filters out another large portion. Some suggest storing global data (like US States) in a Session variable. Others can’t tell me how Session works at all.
I find it very difficult to give my recommendation to most of the folks I talk to. I know there are lots of smart folks out there, and infinitely more not-so-smart ones, but if you’re going to be interviewed by me I will treat it as if you were joining my team.
At the end of my interviews I always ask a question along the lines of “What’s your favorite book?” to see if they have gotten excited about a programming book (or any book for that matter). If they say “Teach yourself X in 24 Hours” I will thank them for their time and hang up.
The technical responsibility we have is too great to leave in the hands of those who don’t know what they are doing and refuse to learn.
What about you? Do you interview other developers? How do you weed out the cruft and get to the cream? Is it simply a numbers game?


Joe
1.23.2008
9:35 PM
I think there something to it being a little bit of a numbers game.A PhD in the page life-cycle doesn't necessarily translate toany kind of practical skill. Acing a technical interview is also worthless if the person's people skills suck, if he has a poor work ethic, horrific ego problems, etc -- and these are hard to spot in an interview when a person is much more likely to turn on the charm and tell you what he knows you want to hear.Also, if you want the cream you have to be able to pay for it which may not be an issue at a large consulting company, but often is in a corporate environment,