Over the past year, we have been working on creating an interview process for our engineering team with these 4 goals in mind:
Airbus’ new UAM (Urban Air Mobility) division has given us an incredible amount of leeway to craft a process that best meets our needs and helps us to find the best talent available. You will note that our goals are bi-directional: they help both the candidate and the company. We are trying not to fall into common software engineering interview traps, and have come up with a rather unique process we are excited to share.
Inspired by interview processes we feel that have worked well (Pivotal Labs, TaskRabbit, Ministry of Velocity, and others) and aligned with our Key Values, here are the steps for the Voom Software Engineering Interview.
Below are the actual emails we send to candidates along the way, followed by our philosophical rationale of why we do it.
The goal of this first one-hour interview is to meet you, and share the company and role to you in detail. We will be explaining how we work, what our short term and long term goals are, and what you can expect on an average day. We’ll be asking you questions about your past roles, what you liked, and what you are looking to get out of your next position. We will also lightly touch on your technical skills, but this is not a technical interview.
We can meet either in person at our office in Downtown Seattle, or via video call…
This first meeting is very social, often conducted in a coffee or doughnut shop. This helps the conversation be more… like a real conversation! Communication is important to us and engineers at Voom interact with other people often!
This first meeting is conducted by 2 people: the hiring manager and another member of the engineering team. Not only does this help to remove any single person’s bias, it also helps smooth out the power dynamics of the interview (Inspired by this post from Marco Rogers). This is easier to do this in person than over video call, but we are flexible.
We focus a lot on how we work as a team. While we meet many people who love to pair program, it’s not for everyone. It’s important that we share expectations on both how you will work and what you will work on.
If things go well, the lead interviewer will let you know on the spot and explain what the next steps are in the interview process.
Congratulations and thank you for continuing with the Voom interview process!
Now we start to get technical:
While this is not a demo of our codebase, it does showcase how we like to work. We pair 100% of the time and we write a lot of tests. If you have fun and excel in this interview, it’s a good hint that you might like working with us.
Here are the questions we ask our interviewer after this interview:
If the interviewer does not want to move forward after the interview, the process is stopped here.
Welcome to the final step of the Voom interview process!
This 3-hour interview allows you to actually see what a day-in-the-life at Voom would be like. You’ll have access to our code and backlog. We believe in our work and in our process… let us show it to you! In exchange, this gives us the opportunity to see what it would be like to pair with you. We will be focusing on your comfort with TDD and pair programming, and how well you can use your existing knowledge of Rails & React to be productive in a new codebase.
Our day starts at 9:30 with Stand Up, so please arrive at ~9:15 so we can get everything set up. You will pair until 12:30. Before you arrive, please sign our NDA …
This is the main event. A 1/2 day of pairing; a mini-apprenticeship. Would you buy a car without a test drive? Why would you accept a job without one?
We use the same interview feedback questions as in Step 2. Those are the attributes we value in a new team member.
In the spirit of transparency, here are some things we are working on to improve our process:
You will note that in none of our interview steps do we require homework. Why ask you to do "example" work when we can see what it looks like when you are working on a real story? You will also note that in none of the interviews do we require white-boarding. Voom isn’t creating a new database, and like most small to mid-sized companies, scale is not our problem… growth is. We care more about your ability to quickly and safely implement a new feature or bring in a new library than your knowledge of how a B-Tree works. If you need it, Google it.
We have a bias to hiring quickly. We can do this because we pair 100% of the time. Many great things have been written about the benefits of Pair Programming (we have too), but there are hiring benefits as well: it’s easier to accept the risk of a new employee when you can be sure that they will be consistently mentored. There’s no normal workday scenario in which a new employee will be working alone and merge in dangerous code if they are always working as a pair. You can also be sure that your workplace culture will be maintained and your rituals observed: pairing includes a built-in guide to how standup works, when to go home, and where the best nearby sandwich shops are.
On-boarding is simpler too: just have a seat at one of the pre-configured pairing stations and get to work! With the lower operational cost of a new employee, that helps us to take more risks on new employees: our hiring can become "who do we want to take a chance on" vs "who can we already trust". It helps remove bias from the hiring process and lets us tap into a more diverse pool of potential candidates.
If you think Voom has an interesting hiring process, why not try it out? We have open engineering roles in our Seattle office, and some roles are remote-friendly!