Technical Interviewing Guide
Technical Interviewing Defined:
A type of interviewing that measures your technical programming skills. It is usually completed in a particular programming language (ex., Java, Python, C, C++, etc.) and is a series of prompts or problems that the interviewee must work out. It can be done in-person or online and generally includes a subject matter expert.
For example, if you are interviewing for a Software Engineering role, a Senior Software Engineer who uses the same programming language as the technical interview will be the in the room providing the prompts and observing your work.
Internships or jobs that might require a technical interview
You can expect a technical interview for almost any technical role including engineering and developer roles like Software Engineer/Developer, Web, App, and Game Developer roles. Internship programs or full-time jobs with coding/programming requirements or qualifications will have a technical interview.
How many technical interviews are required?
This depends on a couple variables: the interview process of the company and the role you are applying to.
Each company has their own approach to technical interviewing, including the format and number of technical interviews they will hold. You may apply to a company who holds one technical interview and another that leans toward two, three, or even more.
The role you are applying to may tell you more about the number of technical interviews you may need to do–than the company. For internship programs, you can expect fewer technical interviews overall–at least one. This does not include any initial technical assessments you are given as part of the application. For a full-time role, you can expect more technical interviews, at least two or three. If you are applying to a more senior level role (as you grow in your career or degree) you can expect even more technical interviews.
Whatever the number, it is necessary to learn about and practice for your technical interviews so that you can do your best and show off your skills.
Technical Interview vs. Behavioral Interview
As you can likely guess, a technical interview is different from a behavioral interview. Instead of asking questions about a past experience or about how you might respond in a particular situation, a technical interview helps the interviewer assess your coding skill in a particular language and learn a bit more about how you think–such as your approach to problems, finding solutions, navigating challenges, communication, and accepting feedback.
Preparing for a Technical Interview
Practice. Practice. Practice. The best way to prepare for a technical interview is to practice different coding prompts that cover a myriad of concepts within your language(s) of choice. Here are a few resources that will help you practice:
Recommended Reading
Cracking the Coding Interview by Gayle Laakmann McDowell is repeatedly referenced as one of the best resources to use when preparing for technical interviews. This text has prompts with answers as well as a brief job search and interview process overview. (Available through Duke Libraries)
Programming Interviews Exposed: Coding Your Way Through the Interview by John Mongan, Noah Kindler, and Eric Giguère has also received some great feedback. Get it at your public library or favorite bookseller. (See on Amazon)
Online Practice
Other Resources
- Google has YouTube channels with helpful videos on technical interviewing. View all their videos on Google Students and Life at Google channels.
- Anthony Mays is a Senior Software Engineer at Google who offers tips and resources on technical interviewing and landing a job in tech. Search his blog for helpful tips like how to solve a coding interview question in real time
- Hackathons and Data Challenges not only give you a chance to practice your skill but they will also give you projects (and maybe even awards) to add to your resume. It will also give you the chance to meet peers who are interested in similar areas of tech. Continue your connection with your team beyond the hackathon by bringing everyone together for a coding practice meetup.
In the Technical Interview
You can expect a prompt to get you started, a space to work (either on a virtual doc viewable by you and the interviewer or, a dry erase board), and the interviewer who serves as the expert on the language you are interviewing in.
The interview can be in-person, in which case, you may find you are solving your prompts on a dry erase board. Of course, not all technical interviews are in person. Some companies will use platforms like HackerRank to run their technical interviews or, a Google Doc.
You will meet your interviewer and they may have some initial information to share about the process, time frame, etc. You will be given your first prompt and then you get to it.
Here are some do’s and don’ts for your technical interview.
- Do communicate with your interviewer.
- Just as if you are thinking out loud, share your understanding of the prompt, your approach to the prompt, what you are doing and why. It may seem weird to just talk and talk with no response from the other person in the room but remember, they are there to learn how you think. The best way to help them learn how you think and work is to talk.
- When you hit a challenge in the prompt, talk through it out loud. Layout all of your options, pros/cons of each, all of the details, so they can follow why you pick the option you do.
- Do interact with your interviewer. If you get completely stuck, you can talk with your interviewer. They may/may not offer some suggestions but, they may serve as a sounding board. They may have a look at your work and ask questions to help guide your thinking.
- Do respond well to feedback. The interviewer may/may not offer some sort of feedback or, ask you questions about your code. Avoid getting defensive. Listen to what they are sharing and be open to their critiques or ideas.
- Do be yourself. While it may be tough to be calm, cool and confident, do your best to be yourself. As you communicate your thought processes, it’s okay to share your personality and who you are.
- Don’t feel like you have to solve a bunch of problems in your interview. This is not a race or about the quantity of problems solved. While you will want to work to answer the prompt given, remember that the primary reason for a technical interview is to gauge your technical skill and understand how you think/process. You don’t necessarily have to solve a prompt to deliver those to aspects of a technical interview.
In Addition to Technical Interviewing, Use Projects to Show your Skills
Projects are a great way to show off your technical skill in addition to coding interviews. If you are applying to technical roles, be sure to have a “Projects” section on your resume to highlight your use of technical skill outside of the classroom. These could be personal projects based on your own interests or curiosity, group projects that you do with friends or as a hackathon team, or one-off projects that you’ve done for a company, organization or student group. Projects do not need to be fully developed or completed. For example, you could be working on an app but it doesn’t mean that app has to be available for download in the Apple or Android store. Just share the work you have done and be sure to include all of the technical aspects and skills you are utilizing.