Interviewing candidates

One thing I really like about my job is that every now and again I'm given the opportunity to interview a potential new hire. Yup, me - your average localizer - is asked to give my opinion on a decision that can huge impact on the future of both my group and Microsoft as a whole.

Interviewing people is hard though. I've taken the mandatory HR training so I know roughly the rules of the game; topics to avoid and how to ask questions smartly, but that's the easy part...

One thing that makes interviewing hard is that my team covers such a mix of disciplines that it isn't always clear what we really require or want from a candidate. Once we had three amazingly strong candidates that all had completely different backgrounds. Map them on a skill chart and you'd get a perfect triangle.

Another challenge is to keep on coming up with new questions to ask and making sure that the questions are suited for the candidate. I'm often given the task to verify the candidate's technical skills, and of course I have to adapt the questions to whatever the candidate claims to know. I don't want to do the classic "how do you reverse a linked list" or anything else you might expect, and I don't want to ask about things I have no reason to believe that the candidate actually knows.

Sometimes you get really surprised. Once, somebody's CV said that they had strong SQL Server knowledge, so I prepared a good few questions around database design and SQL Server management. Early in the interview, I asked "What are the ACID properties" as a warm-up question. The candidate looked puzzled for a while and then said, "oh, I didn't know that there would be technical questions"...

When I interviewed somebody on Monday, I tried something new. Instead of asking the candidate to write code on the white board (quite common for interviews here), I wrote down two code snippets from www.thedailywtf.com:

Dictionary<object, object> myDictionary = new Dictionary<object, object>();
and
public enum Bool {
True,
False,
FileNotFound
}

I then asked the candidate to tell me what's wrong with the code snippets. It went pretty well, so I might do this again. Depending on the code snippet, it can lead to some interesting discussions and it can be a chance to share a laugh too.

The third challenge is that I only have an hour to talk to the candidate, and usually a ten-fifteen minutes are lost because the previous interview ran late or due to some other practicality. In the short amount of time that's left, I'm supposed to make the person feel comfortable enough that they can bring out their best sides, get the information I need to say "Hire" or "No Hire" - often covering several complex topics - and also sell Microsoft and answer any questions the interviewee might have. It ain't easy.

Overall, I think that the hiring process is OKish here. One thing specifically I think is missing is a feedback channel after the interviews. I never really know if I did a good job as an interviewer or how I can improve. If I happened to interview you in the past, please feel free to send me any comments you might have. Good or bad, anonymous or not, I'm interested in anything you may have to say.


This posting is provided "AS IS" with no warranties, and confers no rights.


Förresten, just nu hjälper jag en annan grupp med att intervjua kandidater. Om du är svensk, bosatt i Seattle-området och är intresserad av en fjortonveckors projektanställning som testare av nästa version av de svenska språkverktygen (t.ex. stavnings- och grammatikkontroll), skicka ett mail till Dan.Contreras@excell.com och/eller v-ronpro@microsoft.com (på engelska) och be om mer information. Kanske vill du nämna att det rör sig om "testing Swedish proofing tools for the Speech and Natural Language Group". Kanske leder det till att jag slår en signal till dig...