How to ace a technical interview: Advice for software developers looking for a new job

Wisdom from developer team leaders and recruiters will help you polish your technical skills and know what mistakes to avoid in an interview.

How to become a software engineer: A cheat sheet
22:13:20

For software engineers looking for a new job, winning an interview with a new company is just the first hurdle to cross. The next phase of the process is the technical interview: A test of your coding skills. The technical interview for a software developer position is designed to measure your ability to do the most important parts of the job: Writing clean, usable code, and fixing redundant, buggy code.

SEE: 5 developer interview horror stories (free PDF) (TechRepublic)
Gustavo Niemeyer, the CTO of Canonical, the publisher of Ubuntu, said that a good  interview is an opportunity for an individual and a company to figure out whether a long-term relationship is worth it for both sides.

"The interviewer will be attempting to figure whether you'll be able to solve the problem at hand, both in terms of skills and initiative, and also whether you're a good fit for their culture," he said. 

When you have an interview on the calendar, it's time to start preparing. Here are five steps to take from understanding the interview format to practicing your presentation.

Ask questions of the recruiter

Vivek Ravisankar, co-founder and CEO of the technical interview platform HackerRank, suggests starting with the scope of the hiring process. 

"Knowing who you'll meet with and for how long, what kinds of questions you'll be asked, and what skills you'll be tested on, will allow you to present the best version of yourself," he said.

Jessica Mofford, a senior technical recruiter at vacation rental company Vacasa, recommends asking the recruiter or hiring manager to describe the context and expectations for the technical interview.  

SEE: The best programming languages to learn in 2020 (TechRepublic)

"Will you be coding on a whiteboard or a laptop or verbally walking through past projects?" she said. 
Dave Walters, the CTO of the hiring marketplace Vettery, suggests getting as many details on the interview format as possible, which could include some or all of these options: 

  • A remote coding session
  • A conversational phone call
  • A take-home technical assessment
  • An on-site or virtual technical interview which could be whiteboarding or pair programming

It's also a good idea to write your own set of questions for the interview. Adam Hill was a dev team hiring manager for 14 years at The Motley Fool and is now the lead dev manager at The Blueprint, a consultancy that provides IT advice to small and mid-sized businesses. He suggests creating a list of questions about the company, its business model, and products or services, and any competitors. 

"Having highly specific, relevant, and intelligent questions demonstrates interest in the position," he said.

Prepare your presentation

The next step in the process is to think about how to describe your work experience. David Meyer is a senior architect at Tanvas, a haptics innovation company that uses technical interviews as a core part of the hiring process. To prepare, Meyer recommends being ready to describe your contributions to previous projects.

"Choose non-confidential projects if possible, but if all you have is confidential work, try to abstract it to tell a story about the types of problems you've solved and articulate your approach to solving them," he said. "If you have a portfolio of personal projects, highlight your favorites and walk the interviewer through the project objective and results."

Ravisankar of HackerRank suggests that job candidates practice explaining the "why" behind coding and architecting decisions. 

"Explaining your thought process forces you to get a grip on complexity and allows the interviewer to see what assumptions you're testing and how you are creatively problem-solving," he said.

Walters of Vettery said candidates should brush up on the fundamentals, including data structures, algorithms, and concepts, as well as studying and practicing multiple problems.

Alexander M. Kehoe, co-founder and operations director at the web development firm Caveni, advises brushing up on the fundamentals of both the processes and the languages that will be covered in the interview. 
 
"The most important part of a technical interview is to display that you have the capability to apply existing skills to new or unconventional problems, so as long as you stay adaptable and have a good fundamental base you should come out strong," Kehoe said.

Steve Cooper, CEO of IT training company NextUp Solutions, said it's safe to assume that the interview process will include a coding or database exercise of some sort. 

"In our own company, we've used logic problems like, 'What code would you write to reverse a string of characters?'' he said. "Hiring professionals know you'll be nervous, so they aren't throwing their most vexing puzzles at you; they want to see how you think more than anything else." 

Practice before the interview

Nidhi Joshi, a business consultant at software development company iFour TechnoLab, suggests conducting mock interviews with a friend or colleague as the final step in preparing for a technical interview. 

"For the technical part, practice using the same time limits and the same medium as your upcoming interview," she said.  

Vettery also recommended doing a dry run ahead of time, even to an empty room, to be sure you can communicate clearly how you approached the problem and arrived at the final solution.

Pete Sosnowski, vice president of people and co-founder at Zety, a resume-building platform, said that many tech recruiters use Codility or CodinGame, to perform a technical interview and assess candidates' tech skills, so it's good to be familiar with these and other available platforms. 

Jim Johnson, the senior vice president of IT staffing firm Robert Half Technology, also suggests checking out Glassdoor or Reddit to see what others have shared about questions they have aced, or been stuck on, in recent interviews. 

"The goal of this is not 'to get the answers to the test,' but to understand what the test might focus on," he said.

Ravisankar of HackerRack also recommends reading blogs for company-specific advice, including Quora and Blind.

"No generic listicle will be comprehensive enough to cover every case, but there are thousands of engineers out there who want others to learn from experiences specific to their companies," he said.

What to do if you get stuck 

Several hiring managers advise job candidates to prepare for the worst: Drawing a blank during a technical test. If you hit a roadblock during the skills section of the interview, Eli Bohemond, director of career coaching at Flatiron School, suggests asking questions about the coding problem to show the interviewer how you think. 

"Even if you don't know exactly how to proceed, asking questions can show the interviewer your thought process and how you approach problems," he said.

Johnson also suggests telling the interviewer what resources you would use to find the information you need. 
Walters of Vettery recommended keeping a positive attitude even if you can't solve a technical problem because interviewers are also looking to see if you can work well with others, communicate effectively, and handle feedback well.

Four interview mistakes to avoid

Now that you've practiced your presentation and refreshed your technical skills, consider these last four pieces of advice for going in for your interview.

  1. Don't stretch the truth about your skills. "If your Python skills are beginner level but an expert is needed, be honest," Johnson said.
  2. Don't Google the answers to a technical challenge because interviewers will be able to tell. "You need baseline technical expertise to be successful but the idea of this exercise is to ultimately test your problem-solving skills," Walters said.
  3. Don't bad-mouth previous companies you've worked for. "Being gracious about previous employers, even if you did leave on poor terms, will reflect well on you," said Hill of The Blueprint.
  4. Finally, don't get too discouraged if the process goes poorly. "At the end of the day you want to work with great people, and if their interview process is unreasonable, that's likely not the only idiosyncrasy in their structure," Canonical's Niemeyer said. "Keep looking, as there are other great organizations out there that are worth working with."

Also see

Developing programmer Development Website design and coding technologies working in software company office

Image: SARINYAPINNGAM, Getty Images/iStockphoto