Search for

How to prepare for (and ace) the technical interview

Technical interviews are stressful and they can make or break your chances for landing a new job. Here’s how to prepare yourself for success, even if you’re a self-taught programmer.

This cool button delivers CIO stories to you on Facebook:

Time-consuming and stressful, technical interviews can make or break your chances for landing a job. The stress level is even higher for self-taught developers and those interviewing for the first time. But with the right preparation and practice, your next technical interview will be a breeze, no matter your background.

“Non-traditional candidates are really intimidated by technical screenings, coding interviews, because they’ve been made to feel they’re not qualified without that CS degree. But I don’t think that’s true,” says Gayle Laakmann McDowell, founder of technical career consulting firm CareerCup and author of Cracking the Coding Interview.

More important than having a degree, McDowell says, is being able to crack the technical interview to prove you have the chops to excel in the role, a completely manageable undertaking if you know what you’re up against.

A technical interview is a chance for hiring managers to evaluate how you approach and solve real-world problems, and to benchmark the depth and breadth of your skillset and general knowledge using coding challenges, word problems, peer discussions, puzzles and brain teasers.

"If we have three finalists for a role, this is where we do a technical interview to see who is the most proficient," says John Reed, senior executive director at Robert Half Technology. Measuring that proficiency has little to do with your educational background, as long as you can get the job done. There’s nothing a company dreads more than making a bad hire.

“Bringing in someone who might not be good at it is just a costly, inefficient waste of everyone’s time, so providing an objective platform to measure skills can help calibrate talent,” says Tigran Sloyan, CEO and co-founder of coding challenge platform CodeFights.

Technical interviews can be a serious investment of time and money for companies, but they can help weed out underqualified candidates and highlight a candidate’s skills and knowledge. "Although it's expensive, it's still a lot cheaper than having [a candidate] wash out" because they didn’t have the right technical chops, says Rick Endres, president of The Washington Network.

Some employers give homework in the form of programming or logic problems to complete before an in-person interview. This narrows the field of candidates, says Endres. "Most people just want to show up and hope they can make it through the interview. Requiring this ahead of time really cuts down on the amount of spam," he adds.

If you're serious about getting the job, however, a little homework isn't going to slow you down — but there are some tips and tricks to be aware of that can help you nail those technical interviews.

Be articulate and communicate clearly

In any job interview, communication skills — or lack thereof — can be an immediate deal-breaker; it’s just as important in a technical interview. You must be able to articulate why a company should hire you, says Ed Nathanson, director of talent acquisition with Rapid7.

"Companies want to see the candidate think in ‘real time,’ and while you may be brilliant at what you do, in an interview you have to be able to communicate this brilliance," he says.

It’s good practice to take the time to go over what you would like to cover and how you want to present yourself. Social media sites like LinkedIn and Facebook, as well as review sites like Glassdoor, are valuable resources for finding information about your potential company — some of these sites even detail the technical interview process.

"You are selling you, so know your product and your audience, and have a plan going in,” Nathanson says. “Study the job description, do some research on the people you will be meeting and definitely do some homework on the company beyond just their products."

Be ready to whiteboard

Whiteboarding has become standard practice in technical interviews, so you should practice ahead of time so you don’t freeze, Nathanson says.

“Practicing on the whiteboard and being prepared ahead of the interview can often make a big difference, especially to those for whom this kind of interaction does not come naturally," says Nathanson.

You also should take advantage of online practice resources, such as CodeFights or HackerRank; both of which offer free, anonymous coding challenges to help developers build and practice their skills.

In fact, research data from HackerRank, which measured performance of around 2,000 developers on its platform, reveals that programmers who completed 20 practice challenges on the site — equating to roughly ten to 20 hours of practice — performed twice as well on skills assessments as programmers who didn’t take the challenges.

“For this study, we looked at practice submissions of over 2,000 developers to find patterns of folks who went directly from assessment to earning an onsite interview,” says Ritika Trikha, PR and content manager at HackerRank, in a blog post about the research. “By learning the correlation between the number of practice coding challenges solved and the pass rate on a coding assessment, we can quantify the amount of practice you need to pass a coding interview,” she writes.

According to HackerRank’s data, developers with at least two years of experience who completed 20 challenges increased their chances of getting an onsite interview by 50 percent. Junior developers who solved 20 challenges, increased their chances by at least 15 percent, says Trikha.

Dive deeply into the job listing

Human resources puts a lot of time, thought and energy into crafting job listings, which give you insights into the technologies in use at the prospective employer and how best to apply your knowledge and skills to the problems they face.

"If it's in the job description, it's important to be able to talk to it and how you may solve the problems they are looking to fix. Make sure you really understand the technical requirements outlined in the job description. They were put there to provide guidance on what the company is looking for to ensure candidates are the right fit," says Nathanson.

Shore up the fundamentals

The fundamentals of algorithms and data structures tend to be the focus of many technical screenings, says Vivek Ravisankar, CEO and co-founder of HackerRank. These concepts are taught in introductory computer science courses in traditional degree programs, but they can be learned from easily accessible resources and a bit of time investment.

“There are certain core basics that tend to be the focus in tech screening interviews, and that fundamental knowledge is essential,” Ravisankar says. “But what was great to see from our data was even though junior developers do better on these basics — probably because they learned them in school more recently — more experienced developers do just as well, and sometimes even better, on showing proficiency with these basics just by practicing.”

That means you should brush up on technical aspects of your skill set on which you might be a bit rusty, and dive a little deeper into topics about which you have only general knowledge. Expect questions that cover everything from the fundamentals to higher-level concepts as well as logic problems and brain teasers, he says.

Remember, there’s no standard process for demonstrating your programming skills; sometimes terminology can differ between companies or even between two programmers skilled in the same language. If, for example, you’re interviewing for a job that requires PHP, you should brush up on those skills by reading and even taking online practice tests or tutorials, says Reed.

“Read through and familiarize yourself with formal technical jargon and acronyms around PHP,” he says. “This is a good idea, even if you are a PHP master, because the way you refer to something may not match up with the formal terminology, or what’s used within the company.”

Bring in a portfolio of your work

It's always a good idea to bring in a portfolio of your work to show interviewers. That can mean a physical notebook, a link to your GitHub repository, samples of projects you’ve worked on —anything that can serve as a real-world example of your skills and experience, Endres says.

"Bring in your code; bring in your network design diagrams. You could include proposals you've written, or the parts you've contributed to larger projects. We're looking for writing ability and the ability to communicate technical thoughts and recommendations, but also, what tools you use and what your mastery of those tools are. What tools do you use to manage your technology and people?" says Endres.

Self-taught developers often come up short when it comes to solution design and writing clean code, Sloyan says. Again, it’s helpful to study the fundamentals of computer science to get a sense of how to design solutions. A friend, colleague or professional mentor who can help review your code can be a real asset.

“In a professional situation, there’s normally one or two senior engineers, or QA engineers, who review your code to make sure it merges seamlessly with production,” Sloyan says. “Find a friend or someone you work with who can sit down and help you do a code review, both to improve the cleanliness of your code and so you get comfortable receiving feedback from peers and superiors.”

Prepare yourself mentally

We all have bad days, but when getting ready for the technical interview, you need to put yourself in the right mindset.

"Mentally preparing yourself is really important. A lot of it is in the mindset you carry into the interview from a preparation standpoint,” Reed says. “If you have a morning interview, are you up early enough? Are you creating a quiet, reflective environment where you can really prepare your mind for what's coming ahead? Go over your notes and terminology; prepare some mental notes. Think about things you want to say in the interview that demonstrate your expertise and ask yourself how you’ll articulate that. Think about what questions the interviewer will ask you. Then, think about how you’d answer."

Don't be afraid to ask questions

"If they ask you a technical question, make sure you understand it before diving in and answering. If you don't know the answer, that doesn't mean you're dead in the water," says Tracy Cashman, a technology search consultant at WinterWyman.

Companies aren’t necessarily looking for one “right” answer or one specific outcome to their technical screenings, says McDowell. Many look for soft skills and evidence of how you go about solving problems and resolving issues.

“Interviewers might think they’re evaluating candidates strictly on their technical merits, but they’re also really evaluating how candidates talk about what they’ve done in the past as well as how they’re thinking about and solving problems,” McDowell says.

Bottom line: If you find yourself stumped, don’t panic. It’s possible you know the answer, but your nerves have gotten the best of you — your best bet is to be honest about that.

“Be honest about it. Just apologize and say something like, 'I just used that command last week, even though it’s not coming to mind right now. If I was on the job, here is what I would do to find the answer.' That way, you're walking them through the problem and showing them you're resourceful," says Cashman.

Second, says Cashman, if it's something you really don't know, you can say something along these lines: "Unfortunately, I haven't had the opportunity to work with C#; however, I have so much experience in VB.NET that I feel like I can transition easily."

Whatever you do, don’t lie, and don’t try to muddle through in hopes you’ll stumble on the right solution. "Don't ever fudge it. If you're sure you don't know, don't pretend you do. Try and draw a parallel or make a connection between something relative that you have worked with or on," says Cashman.

Once you understand the question and outline your solution, finish up with a confirming question; something like, “Did that answer your question? Did I provide you with the answer you are looking for? Is there any part you'd like me to go into more detail on?”

"Don't assume, because many times there can be a disconnect. Ask them to confirm or clarify anything you don’t understand on the front end, answer the question, and then confirm again on the backend," says Reed.

Have a strong closing

Many interviews end awkwardly, but it doesn’t have to be that way. Use the last few minutes to ask questions about the company, the culture, projects and initiatives the company’s involved with, and especially to let the interviewer know why you’re the right person for the job. If there are specific aspects about your work history, skills or experience that weren’t covered — or that you want to reiterate — this is the time to emphasize those. After the meeting, jot down any notes, thoughts or feedback you have while the memories are still fresh. You should also write down the interviewers' names, roles and any other relevant information.

Follow up and send a thank-you note

As with any interview, you want the interviewer to remember you for the right reasons. Make sure to send a thank-you note using the interviewers’ names, recalling some of the high points of the interview and expressing why you’re the right fit.

Now, sit back, relax, and wait for that job offer!

Related IT careers articles: