Surviving and Thriving in Technical Interviews
January 13, 2010
Engineering Career Services is excited to present guest writer, Gabe Brown, who is a System Center Configuration Manager at Microsoft...
Technical interviews are the cornerstone for most employers to evaluate candidates in just about any field of engineering. These interviews test your technical knowledge in a short period of time to ascertain your current potential and ensure that your resume matches your abilities. However, walking in and demonstrating your knowledge isn’t as straightforward as most engineers think.
"Tell me why doubly linked lists are useful?" "What are the advantages of LIFO versus FIFO?" "How would you build an application to store the contents of a major library in digital format?" If a candidate is not prepared, it can be easy for them to stumble over these questions or go down a rabbit hole of details that the interview doesn’t care about. By using a structured method for answering questions, candidates can eliminate a part of the interview answers that are easy to mess up and save valuable time to solve the problem rather than backtracking on missed assumptions or issues.
Structured Method for Answering Technical Interview Questions
1. Restate the problem
2. State assumptions and ask clarifying questions
3. Quickly overview the approach you are going to take and confirm
4. Prove the solution correct
Restate the Problem
Ask the interviewer, “Let me make sure I understand what you are asking. You want me to implement…” Candidates that ask this show that they were listening and they are being careful enough to make sure that they heard everything right. Candidates generally only get an hour to prove their skills and making sure they have all the details right the first time makes sure they can capitalize on all of it. Failure to ask this question could result in wasting the entire session on something the interviewer may not be interested in.
State Assumptions and Ask Clarifying Questions
Even if you are sure that you have the problem correct, state your assumptions and ask the interviewer if those assumptions are okay. This will help cut the size of the problem in half and make it easier to focus on the area that matters to the interviewer. The goal is to ensure that assumptions match those of the interviewer.
Quickly Overview the Approach
Now that the problem has been stated and the assumptions have been brought to the surface, quickly stating the proposed approach will allow candidates to explain their understanding of the problem and also allow an opportunity for the interviewer to steer the question. In either case, it creates an opportunity to correct course before candidates get too far into the details of the solution. This boils down to saving the precious minutes to solve the problem instead of backtracking on a less optimal approach.
Prove the Solution Works
Now that the solution has been presented and appears to work, run a small sample input through the problem and see if it really does work without being asked. If the interviewer doesn’t want this they will ask the candidate to stop, but more often than not it really helps find bugs before they are even evident. If a bug is found, fix it and explain why it was broken. Repeat until it works!
For more writings from Gabe, check out his blog here.
"Never try to solve all the problems at once — make them line up for you one-by-one."
Authored by an ECS guest.