While the technical interview is your opportunity to show off your programming skills, it’s also an important exercise for the hiring manager to uncover how you solve problems. “The basic thing I'm looking for when I'm interviewing is not a bag of buzzwords [...] or the experience that's on their resume or their self-described ‘biggest weakness’”, writes lauded longtime engineering manager Moishe Lettvin (now at Slack, formerly of Google, Etsy, and Microsoft) in his great technical interview rundown on Quora. “What I want to know is: does the candidate know how computers work, and can they use that knowledge to write code or design systems to solve problems well.”
Candidates have one job during the technical interview. And, after conducting more than 180 of them during his tenure at Google alone, Moishe is able to distill it to down to one sentence: “You should be prepared to write lots of code that demonstrates that you can apply algorithmic knowledge to solve problems that may or may not be well-defined.”
Here are the five main things your interviewer is trying to learn about you during a technical interview:
Your basic knowledge of computers, software and systems. Interviewers want to answer the question of whether you have a good general grasp of how software interacts with hardware. They want to know that you’re well rounded and can understand the pros and cons of software architecture decisions you make. You will also get basic questions about algorithms and other things you learned in your computer science classes to test your basic knowledge.
How you work with others. This is crucial, especially if you recently graduated from college or are just starting out in your technical career. You need to be able to go into a codebase, understand what’s going on, and be able to add value to without breaking everything. How do you give feedback and respond to difs? This will be something the interviewer is judging you on.
How your past work has prepared you for this particular role. You should be able to talk about the unique contributions that you made and the impact you had on different teams and projects, and how that relates to what this company wants you to do.
How you prioritize. Especially if you’re more senior, you be able to speak to the unique challenges and opportunities involved in scaling applications, and the interviewer will likely ask you some high-level design questions to poke at your methodology. “These [questions] don't necessarily presume experience in exactly these areas,” Mo writes, “but what they're trying to get at is: can you break things down and choose problems to attack systematically.”