Notes On Interviewing Engineers - Mika Boström
This is a guest post from Mika Boström, originally published on Medium.
At Smarkets I interview around a hundred engineering candidates a year and have kept the pace for the past two-and-a-half years.
Volumes have been written about being interviewed (mainly lamenting the experience), and ‘beating’ the interview is seen as big enough a problem that an entire industry has spun up around it.
As interviewers, we can easily become numb to how it feels on the other side of the table. In growing technology companies - and
For candidates, though, each interview is - if not unique - at least different.
Help the candidate relax
Being interviewed is stressful. We allocate one hour for the candidate, during which they try to impress us. The candidate knows this.
The very concept of an engineering interview feels stacked against the candidate. Strictly limited time - and often no way to find help or even use external resources - these are not the conditions engineers spend their working hours in. The candidate is painfully aware of this.
And don’t forget: we hold immense power over who we interview. Our opinion will determine their future, or at least whether that future will be at our company - of
So it’s crucial that we make the candidate feel psychologically as comfortable as possible. They’ll perform better - and if they can afford to become their true selves, they can show what they are really capable of.
An interview is not an interrogation. It’s a discussion.
Know exactly what you are interviewing for
When we go into an interview, we should have a solid grip on two things:
- What are the skills, abilities and personality traits we are trying to hire for?
- Which team would we expect the candidate to fit in?
All good candidates will have questions and the very best ones may force us to confront unkind truths about our company. After all, nobody’s perfect, so a company will be the product of its employees’ imperfections.
Assessing skills is important, but not enough. Regardless of industry, each company has their own atmosphere and unstated expectations - or 'company culture'. Sometimes this is cultivated, but often it’s an extension of founders’ and early employees’ characteristics. Whether the company culture is organic or not, it is a critical factor in our decision.
As interviewers, we have to be reasonably confident that the candidate would be a cultural fit.
The correct answer may not be the right answer
Technical interviews tend to focus on solving isolated and often abstract problems. These questions usually have a single optimal solution, which invites the interviewer to focus on THE answer as the only acceptable one. This is fundamentally flawed.
Without incredible luck, the only way to get an accurate - even unfaltering - answer to a highly specific question is for the candidate to cheat. If the interview process encourages cheating, we have a far bigger problem.
Instead, as an interviewer, accept the fact that for any technical question your pet solution is not at all obvious. Trying to focus on a single, predetermined ‘right’ answer is a mistake.
First of all, the questions should be designed so that there are multiple ways to solve the problem. Some of the answers will naturally be better than others, but some of the weaker ones can have very good characteristics in boundary conditions. This aligns better with reality.
When there are multiple avenues to solving a given problem, the candidates cannot avoid tradeoffs. Even more importantly, the interviewer gets to observe how the candidate thinks about and approaches the dilemma at hand.
After all, during the interview, we are gauging how the candidate attacks a problem they do not yet know the answer for. That is what engineering at its best really is about: finding good solutions to problems with mutually exclusive constraints.
Don’t get hooked to a specific answer as THE solution to your interview question. If you do, you’ll run the risk of disqualifying all the candidates who see things differently.
The solution shouldn’t be as important as the steps someone took to get there.
Have empathy - but look for it too
It’s important to be able to see the world through someone else’s eyes. While this is true for life in general, it is particularly relevant in software engineering. After all, this is a field where relatively young people are routinely domain experts - and domain experts tend to be opinionated. Understanding why someone holds an opinion becomes vital.
Empathy plays a pretty big role in interviews. As earlier emphasised, the candidates are stressed and nervous. If we try to understand how they are feeling, we can help them overcome their nervousness much more effectively.
If there is a rule of thumb to interviews, it’s this: during the interview, the candidate is the most important person in the world.
Empathy is also quite a desirable trait to look for. Engineering is all about tradeoffs and compromises. Being able to understand why someone holds a given opinion helps when opinions (or personalities) clash.
1/10 is not a bad rate
The numbers in hiring are brutal. Although each technology company is looking for their particular set of skills and personality traits, the average hit rate tends to be pretty even across the board.
From my experience, you can expect a 40 to 45 percent pass rate from a phone interview. Out of those, around 30 percent will do well enough on-site to receive an offer. And of all the offers made, 25 percent of the candidates will turn it down. This means that only nine to ten percent of the candidates who come in contact with us are hired.
The remaining 90 percent will find their way into companies that are a better match.
Everything is PR
The “3/11 rule” says that, on average, a person tells three of their friends when they have had a good experience, and eleven when they have had a bad one. On the internet, this is amplified.
Remember the 90 percent you interviewed but didn’t hire? Every one of them is a potential grapevine news source. They will tell their friends about interviewing with you.
Accept and embrace that.
As an interviewer, you should always try to make sure that each candidate leaves feeling positive. Ideally, the candidate will have learned something new along the way. And if you’re doing things right, a fraction of those who you did not hire will end up recommending you to their friends.
About Mika Boström
Mika is VP of Engineering at Smarkets, an online investment platform that facilitates honest, user-centered trading on sports, politics and current events. A long-time security advocate, Mika joined Smarkets after working as an embedded software architect for Nomovok in Finland. He keeps an eye on technical things and occasionally turns things on and off again. He cycles less than he'd like to.
Mika recently delivered a fascinating presentation at The DevOps Exchange, where he talked about how the Smarkets team set up and automated their internal certificate management. He discusses what this has given them, the things they're proud of, the things they want to improve, and the lessons they have learned along the way.
If you’d like to hear more about this, you can find the synopsis and recording of the talk here.