Almost 10pc of those working in Ireland’s capital are developers. That’s a lot of competition for development roles. Here, Barbara McCarthy, director of engineering at HubSpot, offers some tips for nailing your technical interview and standing out from the crowd.
Getting a job in engineering today often comes down to the technical interview. CVs and work history can only tell a recruiter so much; employers don’t just want to know that you can code, they want to know that you can solve problems. That’s why companies – from small start-ups to tech giants – use technical interviews to evaluate how a developer thinks through a given coding challenge.
Here’s the catch: just because someone is a great developer, doesn’t mean they’ll be great in a technical interview. Whiteboard or live coding-style interviews aren’t natural or second-nature for most people – it takes a lot of preparation to change context and demonstrate your coding skills in a different environment.
What to expect
Technical interviews typically last between 30 and 60 minutes, and you can expect them for any software engineering or development role.
The interviewer is usually a senior engineer, team lead or technical architect. Their goal isn’t to see if you can find the ‘right’ solution to a specific problem, it’s to evaluate your ability to take an abstract problem and break it down into tasks. Interviewers want to see how you think.
Having said that, there might be some specialist knowledge required. For example, a front-end-focused question would expect you to know CSS or JavaScript, while a database-focused question would expect some knowledge of relational databases.
Every company will be a little different, so make sure you ask in advance whether you need to bring your own laptop or if one will be provided. That will not only ensure that you are better prepared, but will also indicate whether it is a whiteboard test or not. If you do need to bring your laptop, double-check that it’s set up with everything you need to code in your preferred language (your preferred integrated development environment, etc).
That gives some insight into what you can expect going into a technical interview, but how can you master the coding challenge and problem solving? On HubSpot’s engineering team, we interview great candidates every day and learn a lot about what makes a developer stand out in the technical portion of their interview process.
Here are four tips to help you prepare for your next technical interview, and that we’ve seen in action helping candidates to make an impact.
1. Do your homework
There are two things working in developers’ favour when prepping for a technical interview.
The first is that you (probably) aren’t the first candidate to get to the face-to-face interview stage with this company, especially at bigger tech companies such as Google or LinkedIn. That means there is feedback and insight out there.
As a result, the second advantage is that companies are more transparent than they used to be. Hiring top technical talent is incredibly competitive today, and employers can’t afford to hide behind the curtain. As a result, recruiters are shifting the focus to help candidates proactively in the process by sharing content, tips and advice for mastering interviews.
Bottom line: there’s more information out there to help engineers research a company’s interview process than ever before.
Start by visiting a company’s website to see if their engineering team has its own resources (many will). Do they have an engineering blog? Have any of their developers or recruiters published interview tips on their LinkedIn or Medium profiles? You might be surprised at what’s available.
2. Practise, practise, practise
I think taking the time to practise for a technical interview is the biggest missed opportunity for developers. Just because you spend all day coding doesn’t mean you’ll be able to comfortably switch to coding in an interview environment. Since many companies do whiteboard coding-style interviews, it’s important to practise ahead of time.
There are tons of resources online to help you get a feel for time limits and question types, and how to think about solving a problem on the spot.
While you might not know the exact question or coding problem you’ll be asked in an interview, you can still start training your skills for this new environment thanks to resources such as:
Online resources such as these are fantastic, but your interview might not be on a laptop or computer. And you definitely won’t be sitting at a desk on your own in front of a screen.
Grab a friend and work through a few of the problems from these sites together. If you have a whiteboard or a few sheets of paper to work off of, even better. Collaborating with someone else to solve a coding problem is what the technical interview is all about.
Interviewers want to understand how you think through a problem, so practise that dynamic with a friend so it comes across more naturally on interview day.
3. Think out loud
A big mistake I’ve seen engineers make in technical interviews is assuming that the interviewer can read their mind. They work through a problem on a whiteboard or laptop without saying a word. Working silently not only makes it harder for us to understand how you approach problems, but it also makes it difficult for us to help you. That’s why one of the most important things you can do in your technical interview is over-communicate.
Announcing your every move might feel silly at first, but there are a few big benefits to articulating why you’re doing what you’re doing.
For starters, interviewers can’t give you credit for identifying a concept or idea if they don’t know that you recognised it. You will do a much better job demonstrating your coding skills if you can point out why you did what you did.
Along those lines, verbalising your thought process can actually help you solve a problem by forcing you to think through the steps more clearly.
Lastly, interviewers want to help you. We can step in if you’re about to go down the wrong path and steer you in the right direction, but only if you tell us what you’re thinking. Don’t worry about working through an idea out loud if it isn’t perfect – technical interviews are collaborative, and the goal isn’t to come up with a perfect solution. It’s to leave an impression with your problem-solving logic.
4. Don’t be afraid to ask for help
Because an interview is your one opportunity to show a company how much you know about development, this one might sound strange at first, but be honest about what you don’t know.
No engineer knows every programming language, topic or framework from cover to cover. Interviewers know that you aren’t going to know everything – they don’t either – and they don’t want to see you fail. Being able to ask the right questions and respond accordingly with some prompting is an important skill for them to evaluate.
So if you aren’t sure how to approach a particular concept or area, then say it. Pretending to know the answer will just waste your time and the interviewer’s. Instead, spend that time asking informed questions and talking about topics you have mastered to illustrate where your expertise lies. Chances are, you’ll learn something new and the interviewer won’t think twice about it.
Similarly, if you get stuck during a coding exercise, you can lean on the interviewer to work through the problem with you. If you’re qualified for the position and prepared for the interview, this won’t reflect on your skills. They don’t expect you to be an expert in every programming concept under the sun, but you should be able to find a solution and lead the discussion.
Barbara McCarthy is HubSpot’s director of engineering, leading a team that works on a number of the company’s core products. She has a history of growing large tech teams, and her experience spans more than 20 years across various industries. She is passionate about technology and diversity within the workplace, and is a regular speaker at industry events.