My favorite technical interview was when one of their engineers got me on Skype, and told me to explain (line by line) the code for one of my open-source projects (which he picked out).
I didn't prepare for this, but it allowed me to convey my engineering thought process and brag a little :) I really enjoyed it.
> My favorite technical interview was when one of their engineers got me on Skype, and told me to explain (line by line) the code for one of my open-source projects (which he picked out).
I've done a fair number of interviews, and this has been one of the best tools in my kit.
In fact, I will never do an interview without first doing research on the candidate. Having the candidate talk me through some of his projects and/or bits of (usually tricky) code segments has enormous benefits.
1: It allows the candidates to tell me what they really know, why they have chosen a given approach to a real problem, and sometimes even explain how they would reimplement the solution. (Or drop something altogether!)
2: It relieves stress. The candidates are suddenly on familiar ground. Instead of being grilled by the interviewer (me), they're suddenly explaining coding practices and their interests to a fellow hacker.
3: I, as an interviewer, learn more. I learn quite a bit of the candidate as a person, and on the very best occasions, I learn plenty of new things myself.
And there's nothing like those golden moments when the candidate forgets they are being interviewed. Their entire behaviour changes. Sometimes their manner of speech changes too. From those moments I can learn what truly makes the candidate tick.
For the record: I have never, ever based any decisions on my pre-interview research. That's just for my preparation. I'm supposed to do a hiring recommendation in mere hours - I want to spend that time as efficiently as possible.
I didn't prepare for this, but it allowed me to convey my engineering thought process and brag a little :) I really enjoyed it.