After conducting hundreds of engineering candidate interviews on behalf of Stripe and LogicLoop - and having interviewed at 30+ tech companies ranging from less than 10 people startups to giants like Facebook, Palantir, and Google - least to say, I’ve seen quite the gamut of engineering interviews. If you’re an engineering leader thinking about how to design your interview program, or a candidate wondering what types of interviews are out there, let’s dive into the most common interview question types and pros and cons of each.
First, let’s get the elephant out of the room. No engineering interview process is perfect and all interviews are at best a narrow snapshot of how well a candidate may do at your company. There are candidates who bomb interviews end up being very strong engineers, but also candidates who do well in interviews but end up struggling on the job. That being said, while imperfect, interviews do give some signals that can be indicative of how well the candidate may fit into your company.
The first is the take-home coding interview. Typically this is a longer coding exercise that can take anywhere from a few hours to a day to complete. Since there’s less time pressure and candidates are able to use resources available to them on the internet, the take-home interview typically involves completing a small project end-to-end.
Pros
Cons
The algorithms interview is the most classic engineering interview that companies like Google, Facebook, and Palantir like to implement. Typically this will involve concepts like dynamic programming, recursion, sorting, binary trees, etc. Candidates will also need to be familiar with common data structures like arrays, dictionaries, trees, etc.
Pros
Cons
In recent years, there’s been more controversy over whether companies should ask algorithms interview or not, given they are not directly related to the day-to-day job.
In an effort to mirror more day-to-day working environments, some companies have introduced the bug squash interview. In this interview, a candidate will be given access to some pre-existing codebase with a bug and it’s the candidate’s job is to find and fix the bug.
Pros
Cons
The systems design interview typically asks a candidate to describe how they would set up the infrastructure to support a scalable system. This can be a whiteboarding exercise where the candidate describes the boxes, queues, etc. they would set up to create a scalable system e.g. a webhooks delivery system, a metrics recording system, etc.
Pros
Cons
While this interview format is uncommon, some companies have started employing the code review interview where the interviewer will either ask the candidate to review a piece of code, or the candidate will submit a piece of code to be reviewed by the interviewer, and incorporate the feedback given.
Pros
Cons
Another “practical” code question that has become popular over the years is the integration interview. It’s no denying that in the age of APIs, many software engineers have had to integrate some external system as part of their jobs. The integrations interview simply asks the candidate to demonstrate that they can write a program that integrates with some third-party API, such as Stripe or Twilio.
Pros
Cons
Finally, most companies include a soft skills interview, typically with the manager of the team. The interview gives hiring managers the opportunity to ask about projects candidates have worked on in the past as well as their strengths and weaknesses. It also gives candidates the chance to ask questions about the company and team.
Pros
Cons
How well a candidate does on this interview can be very subjective.
If you’re a hiring manager, I hope this gives you a few options to brainstorm as you’re thinking about setting up your interview program. At LogicLoop, we do a combination of the interview types listed above, although we tend to go lighter on the algorithms questions and instead focus on the practical coding exercises.