One of my most important jobs as PM/CTO/Co-founder at Covve is making sure we recruit, retain and keep an exceptional team super motivated. I regularly spend a good portion of my time thinking about these topics and working with the team to continuously improve. When it comes to recruitment we always hire people with the aim of them being with us for the long run. As such we feel strongly that it’s worth investing as much effort as necessary to ensure a really good fit of whoever joins our team.
We have designed our recruitment process with two aims:
1) To assess whether you (the candidate) meet our requirements. This is not just the “technical” requirements of the specific role, but an assessment against 14 criteria which we feel are important for any of our team mates (these range from having a “can-do” attitude to showing ownership and pride in your work. More on these later)
2) To expose you to our company, our team and our culture as much as possible in order to enable you to assess whether we are a good fit for what you’re looking for. To achieve this we make sure you interact with multiple members of the team (your future teammates) in sessions which simulate what it’s like working at Covve (e.g. through pair programming)
Our principles
Throughout the process we adhere to some principles to make sure we get the most out of every minute with our candidates:
1) Help you perform at your best
We want our candidates to be able to be at their best. We allow days, even weeks if you feel you want to prepare. We inform you what the interviews will be about and what to expect. We let you code using the programming language of your choice, and even code on your laptop to help you feel more at home. Hence the photo at the top of this post… we really want you to succeed. Its your race to win but we’ll be cheering you on along the way!
2) Make it real
-
We’ll never ask you to calculate how many oranges are consumed worldwide each year (I’ve personally been asked variations of this question a dozen times in past interviews in London). Instead we’ll expose you to actual problems that we face day to day and which your job will be to help us resolve. And these are not about orange consumption but may very well be about something as low-level as bitwise operations and hash table collisions and as high-level as designing the next killer feature of Covve, since, well, this is the everyday life of our engineering team
-
In real life you also won’t be working alone, and so, in our interviews you’ll be working with our team members to jointly solve problems
-
In real life you’ll have your computer, your favourite tools and yes, google. Likewise, we have exercises with all these available to you. On the other hand, we would expect you to have strong foundations and be fluent in your preferred programming language so that you don’t need to google the fundamentals.
3) Be prepared and be thorough
Recruitment, more so than other activities, runs the risk of becoming subjective, and hence ineffective. As such:
- We always know how we assess each criterion, what we expect and how we help you bring out your best for each. This enables us to confidently and objectively assess
- We put as much effort in preparing for the interviews as actually carrying them out
- Each interview is always attended by two team-members
4) Maximise exposure
The more we learn about each other in the few hours we’ll be spending together, the better. To maximise exposure we make sure you’ll meet a number of the people you’ll actually be working with on a daily basis but also have plenty of time with myself and my partner in which you can explore and understand our company, our vision and our values, and your place in these.
5) Don’t hire for the job… hire for the team
You’ll never see us advertising for a “mid-level backend .Net engineer with 5 years’ experience in Azure and microservices and a dislike of small dogs”. We’re looking for people who are great at their job and great for our team and who will develop and grow with us. When hiring engineers we don’t care if you’re front-end or back-end, javascript or .Net. We feel that if you have solid foundations, the right attitude and the right support, you can work across the stack and in any language. Hiring for the long run means that we don’t focus only on your current skills but on your potential and ever-learning attitude. Even from the first months you will undoubtedly need to work on technologies they haven’t worked before, sometimes because those technologies simply didn’t exist.
Our criteria
We assess our people (both current and future) across 14 criteria. One of these is “being excellent at what we do”, whether this is engineering, design or sales. The rest of the criteria look at everything else that we feel makes our team great, including showing ownership and pride in our work, being a good problem solver, being a “hacker”, a great communicator, focused and fast, always learning and improving, being self-motivated, flexible and adaptable to name a few.
By being detailed and thorough we know exactly what we’re looking for and, when assessing a candidate we can confidently tell whether they meet our requirements. What this enables us to do is to be able to make an offer to a candidate within hours of seeing them. We know where the bar is and if you pass the bar you’re in. No need for us to see 50 candidates and choose the best, having everyone on standby for weeks.
A sample process
The process itself varies depending on the role in question. As an example, here’s the process we run for one of the recent joiners to Covve’s engineering team:
Step 1 – initial screening Screening via CV, quick skype call, meeting or other means
Step 2 - Half-day with the team
Part 1: Working with two members of our engineering team, work through a real case study from Covve’s domain. We’ll present you with a problem we’ve actually faced in the past and will work with you towards solutions on the whiteboard. This exercise is not technical and focuses a lot more on problem solving, communication, creativity and teamwork
Part 2: Working with another two members of our engineering team, solve a programming challenge. You’ll use your own laptop, your favourite programming language, tools, google, stackoverflow and anything else you need. During the exercise you’ll also be discussing some of the engineering fundamentals such as object oriented design and complexity.
Part 3: The more “traditional” part of the day, you’ll meet with our CTO (me) to discuss, on the one hand, your experiences, aspirations and goals and, on the other hand, who we are, how we work, what we’re after and what our goals and dreams are.
Step 3 – Getting your hands dirty with an end to end exercise
This part of the process is a take-home, end to end programming exercise. It aims to expose your programming skills when facing a real world problem. It should take around 8-10 hours to complete the exercise. After you’ve sent it over you’ll discuss it with one of our engineering team members.
Step 4 – Offer
Assuming you’ve passed through the previous three stages successfully, you’ll then meet our CEO and, ultimately will be made an offer to join our team.
The day after
I’ll close this post with a few words on what happens after you join. I feel that taking the time to get people inducted to a company, a project and a team properly quickly pays off. What this means does differ from role to role but as an example, joining our engineering team will include:
- Spending your first month or two purely focused on learning. You’ll have a specific “curriculum” designed especially for you aimed at bringing you up to speed and feeling confident with the technologies you’ll be using initially. This will include reading, online courses, pet projects and a lot of interactions with the team
- Getting to know our company and our product. Through multiple sessions with various team members you’ll learn about Covve, our history, our goals, our business challenges. You’ll use the service and will experience it as a user. You’ll understand why we do what we do and why what you’ll be doing matters
- Exploring our stack. You’ll spend time with each of the members of our engineering team (and beyond) to get a feeling for each aspect of our stack. Irrespective of where your first role will place you, we want you to have a holistic understanding of how everything fits together so you’ll spend time understanding our infrastructure, our backend, our clients, our devops.
- Becoming a member of the team. This includes getting to know your team mates (including compulsory welcome dinner) but also understanding our processes (e.g. scrum, communication channels and tools, our obsession with continuous integration and testing, what everyone’s roles are) Then, when you’re ready, you’ll be buddied up with another member of the team to start making a meaningful contribution to our product, our users and our company.
(cover photo taken from Grand Canyon University, Run to fight cancer)
Comments