Tomorrow I'm scheduled to interview someone for a developer job. I'm a programmer working on GPU computing and the candidate would fill a similar role. Being a recent graduate, though, this is my very first time sitting on the other side of the table. In 45 minutes I'm supposed to judge whether the person is a good technical and cultural fit for my company but I'm not sure how to accomplish this.
What advice do you have a for a first-time interviewer?
- Can you suggest any good systems-programming (rather than algorithmic) problem solving questions?
- What is an appropriate balance between talking about prior experience and working on problems?
- Any obvious first-timer pitfalls I should actively avoid?
* Tell me about some routines you tend to take with you from project to project; what's in "libyou.so"? Crap devs won't have any.
* Your code crashes inside the allocator. Walk me through debugging it.
* Tell me about the most interesting problem you debugged without relying on the debugger or print statements.
A question I always ask in dev interviews that isn't as systemsy is, "your typical linked list code, does it embed the list pointer in the struct, or do you have a separate list node struct with a void* in it?"
I like the questions that have no direct right answers.
One question I think you should always ask in every dev interview: "I am going to describe project XXX; it's relatively small. Give me a complete, detailed estimate of how long it will take you to do XXX." I like this question because (1) it flags people who can't estimate properly, (2) it forces them to talk through an actual project and break down the steps, (3) it catches people who don't think about testing.