If I’m interviewing you for a technical position, I’ll ask a bunch of questions. Most of them are warm-ups, or checking off a list of basic information I’m collecting. There are two questions that take up most of the interview time, and contribute the most to my interest (or lack thereof) in your candidacy.
First, I will ask you to describe the technical details of a recent project. I’ll get down to the object design level, and I’ll question decisions like your choice of data store. If you are articulate about the details of the software you’ve written, and you have reasons for the decisions you’ve made, that works in your favor. It also lets me poke at how well you know the SDK we’ll be using, but that’s secondary.
I also have a pet algorithms & data structures question (which I will not share here). I’ve asked it to a few dozen people, and maybe two have taken it to a solution that is optimized in time or memory, and only one pulled out multiple good solutions. There is no single correct solution, and you’re not expected to get there anyway. While I definitely use this question to probe CS fundamentals, that’s not the most important part of your answer – I’ve worked with some sharp people who didn’t know Big O Notation from Maxwell’s Equations. It’s much more important to me how creative you are in solving the problem, how many paths you see to go down, what hidden assumptions creep in, and what tools you reach for.
Comment fodder: Does anyone want to share favorite interview techniques? How about good or bad interview questions you’ve been asked?