Technical interviews are time-consuming and stressful, and they can make or break your chances for landing a job. The stress level of the technical interview 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 can 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 ace the technical interview to prove you can excel in the role, a completely manageable undertaking if you know what you’re up against.
What is a technical interview?
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, executive vice president of managed solutions 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 CodeSignal.
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. Coach: Acing the interview
Technical interview formats
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, and cuts down on the amount of unqualified or underqualified candidates. During a take-home coding assignment, you should take time to plan out your code before writing it out. Make sure you fully understand the instructions and requirements. Even if you think you’ve got it, reread them several times before starting, and once more after you’re finished with the challenge, to make sure you’ve hit every requirement.
In addition, some companies will include a remote technical screen which candidates must pass before landing an in-person interview. Often this includes a screen share and pair-programming scenario, where you will work together with an interviewer through a problem or problems. Some companies use video interviews and a web-based code editor such as CoderPad, Collabedit, or even a Google Doc, so make sure you’re familiar with these technologies beforehand.
While preparation for these types of screenings are similar, candidates should make sure to add a few extra steps to their prep process. Testing the functionality of the remote technology beforehand is a must, as well as making sure you’re in a quiet, distraction-free space. If you’ll be screen-sharing, close down or minimize any personal tabs open in your browser and make sure to eliminate clutter on your computer’s desktop. The interviewer doesn’t need to see screenshots of your latest Pinterest project or view a jumble of family photos. Close down or set an “away” message on any messaging or collaboration apps.
During a real-time coding challenge, err on the side of over-communication; think out loud and share your thoughts and decision-making rationale with the interviewer as you’re working through the problem. Take your time — these challenges aren’t often timed, so make sure you’re thinking everything through and give the interviewer the chance to give you hints. You should also use “we” instead of “I” when talking through the challenges; this helps the interviewer know you’re a team player. Finally, remote coding challenges will sometimes come with optional “bonus” requirements. Complete those requirements as well, which will help you to stand out to the interviewer.
Be articulate and communicate clearly
In any job interview, communication skills — or lack thereof — can be an immediate deal-breaker. You must be able to articulate why a company should hire you, says Ed Nathanson, founder and CEO at Red Pill Talent.
“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 go over what you would like to cover and how you want to present yourself. Social media sites such as 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 CodeSignal 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. Moreover, developers with at least two years of experience who completed 20 challenges increased their chances of getting an onsite interview by 50 percent, while junior developers who solved 20 challenges, increased their chances by at least 15 percent, according to HackerRank.
Dive deeply into the job listing
Human resources departments put a lot of thought 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.
Be sure to 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, Ravisankar 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. You could include code samples, network diagrams, proposals you’ve written, or the parts you’ve contributed to larger projects. Interviewers are looking for technical ability as well as the ability to communicate technical thoughts and recommendations, but they’re also looking at which tools you use and which tools you’ve mastered.
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
When getting ready for the technical interview, you need to put yourself in the right mindset.
“Mentally preparing yourself is really important,” 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.
Be honest when you’re stumped
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. “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.
Confirm your response
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!