Technical knowledge questions have been a standard in engineering and science industries like manufacturing, oil and gas, and healthcare for decades. Today, top candidates for jobs in software and hardware companies use the technical interview process to demonstrate their computer science knowledge and their ability to solve problems with programming. Employers use a variety of technical and behavioral discussions to see how applicants think and act under pressure.
What is a Technical Interview?
Hiring managers create technical interview questions that prompt a candidate to talk about their technical background and use algorithms in coding exercises. Applicants for more senior positions may also be asked to talk about software systems and design. How an applicant describes their approach to the solution is a critical aspect of the evaluation. Rice University Computer Science alumna Kaarthika Thakker said, “Communication is core to everything you do in the tech industry. Understanding and communicating problems comes first; coding is secondary.
“What felt remarkable to me in my industry interviews was getting job offers after I’d obviously arrived at the wrong answer in a tech interview. That is when I realized that it wasn’t about getting the ‘right answer.’ It was more about why we were answering a particular question and being able to explain how we were approaching the solution as we were working through the process.”
How are Technical Interviews Structured?
The overall technical interview process for a software engineer (SWE) is designed to reveal how the candidate responds to a variety of people and situations. Team interviews, one-on-one meetings, and coding challenges to solve and explain to a group may last a few hours or a full day; a candidate’s ability to continue communicating in an effective and congenial manner is an important aspect of the evaluation.
Tech companies have a wide range of interview structures or processes. The process has multiple parts and can last several hours or several days. In general, a recruiter phone screen is followed by a more technical conversation, then on-site coding challenges and culture-fit meetings. For interns and new graduates, Google begins their software engineer (SWE) technical interview process with an online assessment.
Rice MCS alumnus Anthony Toreson is an engineering leader with 20 years of experience. He has hired over 200 engineers and defined the most common interview stages as:
- Application assessment
- Recruiter call
- Hiring manager call (may be preceded by or replaced by an automated coding challenge)
- Take-Home Assignment (if used by employer)
- Technical and soft skills interviews; often called the “On-site”
When a series of meetings are scheduled on a single day, this stage of the technical interview process is called the on-site interview – even if it is conducted remotely. Interviews for the role of engineering manager or director are likely to include a longer process and more difficult questions than interviews for entry level roles.
An organization’s technical interview process aligns with their role in the industry and each technical interview is adapted to match the job description, but components like solving a problem on a white board and answering culture-fit questions are included in all technical interviews. Although many of the conversations can feel ‘technical,’ it is the overall structure or process that is considered the technical interview.
The Application: Pre-Interview Assessment
Resumes and other application materials are filtered through machine reading software that scans for keywords. Most candidates are never considered by a recruiter; applications lacking appropriate keywords are automatically eliminated in an applicant tracking system (ATS).
“Your resume needs to be readable by a machine and you also need to include keywords from the specific job posting to make it past this crucial filter,” said Toreson. “Submit your application as a PDF or Word document, the formats that work best with ATS and other data scanning technologies.
“Keep it simple. No pictures, no crazy fonts. Use the ‘X Y Z Formula’ for bullet points. Read the job description and customize your resume accordingly. Be sure to include your previous project experience, even in non-technical jobs where you used technical skills like Tableau.”
The Recruiter: Introduction Call
Recruiters browse filtered applications, identify top candidates, and invite those with the most relevant knowledge and skills to a phone interview. This first conversation, often in the form of a video or phone call with the recruiter, is essentially an introduction – a general conversation that gives both the applicant and the employer an opportunity to make a good first impression. Before the conversation ends, remember to ask questions about the overall interview process and the next step.
Hiring Manager Call
After passing the recruiter screen, entry-level candidates usually proceed directly to a conversation with the hiring manager. Expect more technical questions in this call. The manager’s time is short; be friendly but make a solid impression by getting straight to the point. Answer a prompt like “tell me about yourself” with an example of a project that reflects your personality and interests. Prepare one or two questions of your own, such as why they chose this employer or team and what excites them about their work.
Toreson said the process in some of the largest technology companies may include an automated coding challenge instead of the hiring manager call, if the application is for an unspecified technical role. These “general” applicants then apply to their preferred teams after the hiring phase.
Take Home Assessment
The use of take-home assessments is inconsistent across the industry; do not be surprised if you encounter one. These assignments can typically be completed within a few hours –long enough to reflect ability, short enough to keep the applicant from losing interest. Prepare for a take home assessment as if it were an on-site coding challenge.
On-Site Interview
The final stage, the on-site interview, usually consists of multiple meetings and will include a programming problem to solve before a group. Working on a white board allows the panel of interviewers to see your thought process as you approach and solve the problem; be sure to explain your actions as you work through the solution.
Toreson said, “Modern software is created by teams, and team members must be able to effectively communicate technical ideas. While problem-solving, do not stand or sit there quietly. Ask clarifying questions, restate your understanding of the problem, talk and explain your process as you work, and create clear easy-to-understand code with comments. Don’t hesitate to comment on engineering tradeoffs in your solution. This part of the interview is not about solving the problem, it is about communicating a solution.”
Preparing for the Interview
To prepare for a technical interview, schedule blocks of time to practice answering sample questions and problems. Successful applicants must simultaneously explain their work while solving the challenge. The only way to gain confidence in both is through hours of practice.
To grow more comfortable talking through solutions, invite friends to work on coding challenges found in online platforms like LeetCode, which provides over 1000 practice questions. The author known as Blind 75 revised his original list of the most applicable LeetCode questions; his new list of 50 questions is accompanied by a 5-week study plan.
Another online platform with practice technical interview questions is interviewing.io, a site where anyone can engage in anonymous mock interviews with engineers from top companies like Amazon, Google, and Facebook among others.
Additional interview preparation tips include:
- Read the job description aloud to catch previously overlooked responsibilities or associated roles like “reports to the Product Manager."
- Compare your resume to the job description and note where it overlaps.
- Practice describing your work experience, technical skills, and projects by talking to a mirror. Rephrase anything that causes your tongue to stumble.
- If a language or skill is listed on your resume, expect to be asked about it.
- Research the company, their vision, and their industry reputation. Be prepared to answer why you are excited about working with them.
- Browse employee reviews about the organization on sites like Glassdoor or Indeed.
- Practice, practice, practice! Ask peers to quiz you on complex problems; present an idea or solution to a group.
- Rehash technical interview questions that your peers have been asked in previous interviews.
Technical Interview Questions
Technical interview questions will vary but common themes include programming languages, algorithms, coding platforms, and data structures. Try to answer technical questions correctly, but don’t guess. For interviews that include coding challenges, remember to explain your approach and use comments to document the process.
Microsoft Senior Software Engineer Yang Wu is a Rice MCS alumna with experience on both sides of the interview. She said a common applicant mistake is not taking time to fully grasp the challenge before beginning to solve it.
“It is crucial during an interview to ask clarifying questions in order to fully and clearly understand the requirements of a problem,” said Wu. “Make sure to express your idea and acknowledge it with the interviewer before beginning your work. I have noticed many promising candidates make incorrect assumptions or dive right into the coding part without asking for additional details, then fail the technical interview.”
“For the behavioral interviews, both Microsoft and Schlumberger conducted group interviews with questions like, ‘If your manager gives you a tough task and you cannot meet their expectations, how do you deal with that?’ Scenarios like this reveal how you fit the company culture, and behavioral questions have become increasingly important these days,” Wu said.
Non-technical sessions may include culture or behavioral questions like:
- Why are you interested in pursuing a career with us?
- Tell me about a time you encountered a problem and how you handled it.
- Why should we hire you for this position?
- Talk about a time when you felt your project had an unreasonable deadline. How did you handle that situation?
- Describe a time when you stepped into a leadership role.
- In your previous collaborations, how did you handle conflict with or between other team members?
Technical Interview Tips
Many Rice undergraduate and graduate students utilize CS Club activities like HackRice as well as Center for Career Development resources to improve their technical interview abilities and confidence. Basic technical interview suggestions include:
- Always choose professional attire, even in video calls; if uncertain, ask the recruiter.
- Prepare questions to ask the interviewers, e.g.: how their team supports the organization or what they appreciate about the company’s engineering culture.
- You can also inquire about expectations for this role and career growth potential; asking questions reflects your interest in the job and the organization.
- Talk through your thought process while coding. If this part of your interview is being conducted remotely, ask the interviewer how they wish to follow along.
- If there are multiple ways to solve a problem, demonstrate your expertise by mentioning the trade-offs or pros and cons of the different options.
- Be honest on your resume and in each stage of the interview process.
- Tell the interviewer if they present a coding challenge you have seen before.
- If you do not know an answer or are unfamiliar with a concept, ask for more information or explain you haven’t encountered the situation or topic before.
Enrolling in an MCS Program Can Help Prepare you for Technical Interviews
Rice MCS students work on real world projects to build practical technical experience. Wu said her earliest courses – algorithms and data structures -- helped with the technical part of her interviews and she successfully navigated the recruiting season in her first semester, accepting an internship that led to a return offer.
For MCS alumnus Harsh Upadhyay, building an app in a single semester gave him a deep sense of confidence. He said, “Designing systems is hard, and harder still when working with a group of people who think differently and act in unpredictable ways. Learning to work with divergent personalities towards a common goal — and being successful in that goal — is perhaps one of the most important things I took away from Rice.” After two years in a New York fintech company, he joined Microsoft in Seattle.
If you are a career changer or undergraduate considering technology industry employment, explore one of the best Professional Master in Computer Science programs in the United States today. Working professionals have the option of earning their degrees 100% online through Rice’s Online Master of Computer Science degree program, while continuing to work full-time.