(Re)designing the DevOps interview process
Interviewing is hard. Both the company and the candidate have to make an incredibly important decision based on just a few hours’ worth of data, so it’s worth investing the time to make those precious hours as valuable as possible.
We recently made some changes to our DevOps interview process, with the aim of making it fairer, better aligned with the role requirements, and more representative of real work.
We started by defining the basics of our DevOps roles. What makes someone successful in this role and team? What are the skills and experience that we're looking for at different levels of the role?
It was important that the process would work for candidates with varying experience levels, and so it needed to be flexible and clear to assess skills at each of these levels.
The skills we’re looking for fall into three broad categories: existing technical knowledge (e.g., programming languages), competency-based skills (e.g., problem solving), and personal characteristics (e.g., passion for the role, teamwork and communication skills). After defining these skills, we mapped out how we would assess them at each stage of the interview process.
The application review stage
At this stage, we want to check whether your background and interests align with our expectations for the role. Your CV and cover letter tell us about your experience and prior achievements; however, we also ask for a description of a technical project or problem that you’ve found particularly interesting. With this question, we’re looking to hear more about what motivates you and what kind of challenges you enjoy working on.
The phone interview
Assesses: motivations and communication
If we think there’s a match, the next step is a call with someone from the People team. In this call we’ll:
- Say hi! 👋
- Ask any questions we have about your application or background.
- Find out what you’re looking for and your motivations for the role.
- Guide you through how the rest of the interview process will work.
- Give you plenty of opportunity to ask questions about the role, the company, or anything else on your mind - interviews are two-way processes and it’s as important for us to know about you, as for you to know about us (we hope the answer is yes!).
The video interview
Assesses: motivations and interests, and web knowledge
This stage involves a one hour video call with two of our engineers. They will start by digging into your technical interests and background and finish with some questions about web fundamentals and troubleshooting. As with the phone interview, you will have plenty of time to ask our team questions, so don't be shy!
The live challenge
Assesses: problem solving, communication, logic, OS knowledge, troubleshooting
Research indicates that work sample tests provide some of the best indicators of future performance (e.g., Bock, 2015). For this interview, we looked through post-mortems for issues that we’ve debugged on the job, and built an EC2 instance that exhibits a number of these issues. We’ll give you remote access to the VM, and work with you to solve them.
The main aim of this stage is not to solve everything, but to gradually progress as you encounter different issues during the interview. For example, we want to know how you approach problems and why you might choose one process over the other. We’re interested in how you communicate with the team during the process and how you address the issues that you find.
The final stage
If everything else goes well, we’ll invite you to our office in London to meet the team. This final stage consists of three interviews.
The technical interview
Assesses: domains of technical knowledge (e.g., Linux internals, networking, storage)
The technical interview is usually held by someone from the Platform team, along with our CTO. Our engineers believe in giving people the best opportunity and will allow you to select the topics you will discuss during the interview. The level of difficulty within each topic will gradually increase until you decide to move the next one.
Pair-coding with our engineers
Assesses: collaboration, communication, logic and coding
This is another live exercise, but this time you’ll work directly with the team. We'll spend 90 minutes working together on a coding exercise that’s representative of the kind of task you’ll be doing on the job.
The soft skills interview
Assesses: motivation, team work and influence, and shared values
The final interview is a chat with someone from our management team. We’ll discuss your motivations and aspirations and whether your values match those of the company. Most of all, we want to know that you’ll thrive at GoCardless and within the Engineering team. This interview isn’t a personality test - we’re not looking to hire people who are the same as us. Instead, we’re looking to hire people that care about the same things as us. Making sure we add to our culture is as important as the tech skills you bring in; after all, we like where we work, but we love the people we work with!
Redesigning the interview process has hugely improved the experience of our engineering team and their confidence in making decisions after interviews. We've also received great feedback from candidates, especially regarding the live problem-solving challenge, which many find challenging and fun.
Overall, the redesign was a success in targeting the main issues that the team was facing. However, we're always looking for ways to improve and we're constantly adapting our processes based on feedback we receive from candidates and interviewers.
If you're curious about GoCardless, why not apply?