Our engineering hiring process
9 minute read
Our engineering team is always on the lookout for more people to join to help us on our mission to enable small business owners to manage their business easily.
Our team has experienced different interview processes that we've enjoyed or not enjoyed. Those experiences have fed into the process that I'll outline in this post.
The process itself is very simple:
I'll outline what happens and why we do what we do for each stage.
Our process is continuously evolving - we will always reflect on what is working and what may not be. We will make changes to ensure it remains an enjoyable experience for our potential new colleagues!
The starting point for anyone keen to help us on our mission is to visit our Careers page. You'll find the list of opportunities at Countingup, descriptions of each role and the benefits of working here.
When applying, we'll ask for your CV and some information about you and then allow you to share your LinkedIn and GitHub profile with us if you wish to.
You can also submit a cover letter if you want to, and this will get added to our talent acquisition platform, ready for the process to begin!
CV Screening 📄
When you've submitted your CV, our engineering team will be responsible for reviewing it. We ask a few people from our team across all skill levels to read CVs and give feedback about whether it's a good match. We will always ask multiple people to review to ensure that the process is fair and unbiased.
Any supplementary information about you will get reviewed at this stage. Extra information can include your LinkedIn profile, GitHub projects or a cover letter. It's not mandatory to supply these - we don't expect to see more than a CV - we'll learn more about you as a candidate through the hiring process.
If you've come to us via a recruitment partner, we may also have your answers to a series of 'screener' questions we sometimes ask candidates. These questions cover some technical and soft skill topics to understand a candidate's experience and interests and complement their CV. These answers often tell us more about a candidate's experience, passions and interests as an engineer. Again, if you've not been asked these, it is something we will cover in the initial call.
If the team decides that you are a good fit for the role, we'll invite you to the next stage.
The initial call ☎️
You'll spend 30 minutes on a video call with an engineer from our team in the initial call. We know there are lots of exciting opportunities for engineers, and so we want to take some time to tell you more about us, our mission and then our tech stack to ensure it is something that you find interesting.
The ⚠️️ high-level spoilers ⚠️️ for this interview are that our technology stack is:
- Go for our backend services
- TypeScript and React for our web apps
- TypeScript and React Native for our mobile app
Other technologies form part of our stack, including AWS, Kubernetes, and Terraform, but we will go into more detail with you in the initial call.
We might ask a few questions if we've not seen your answers to our 'screener' questions because we want to understand more about you as an engineer. You'll also get the chance to ask us about working here to help you decide if you're happy to proceed with the interview.
As the interview asks for a few hours of your time, we need to make sure you're interested in what we are trying to do and that you're keen to become the next person to join our team!
The interview 👩💻
Our next step in the process is a three-hour interview with a couple of our engineers. We try to understand what you are like to work with as a colleague. We like to do that in a way close to how we operate day-to-day. The format of the interview is:
- Introductions on both sides
- Questions from us
- Pair programming exercises
- Questions from you
We use Google Meet for the interview, and everyone will have their webcam on. You will need to prepare for the exercises, which I'll go into later.
Introductions on both sides
Interviews are nerve-wracking, so we always start by introducing our engineers. They'll then ask you to give an introduction to you and help settle you into the interview.
Questions from us
The Countingup engineers will often have some questions to ask you based on your CV, the initial call, and their experience of working here.
It's an opportunity to sell yourself and to help us understand why you're keen to join us and what you're looking for in your next role.
Pair programming exercises
The core of our interview is the pair programming exercise - we're interested in seeing how you work as an engineer in a way that reflects your day job.
We split the exercise into frontend and backend tasks, and each of the Countingup engineers will work with you to solve a problem, answering any questions you may have as you work through the tasks. You will share your screen and then pair on the task, showing us how you solve a problem.
We actively encourage you to show us how you use Google, Stack Overflow and other sites to deliver a solution. It's not a memory exercise, so we're not expecting you to recall algorithms or code on paper - we're interested to see how you search! We also love to know how you use your tools (like your IDE) as if it were a typical day at work.
We ultimately care about finding people who represent the Countingup Way:
- Do our best work
- Enjoy it
- Get it done
Those people can take a problem, work out potential solutions, research where necessary to fill in any knowledge gaps and ultimately collaborate to deliver the answer! We want to see if you fit that bill.
We ask you to ensure you've set up for both parts of the exercise before the interview - we're less keen on seeing how you set up tooling and more on how you solve a problem. We'll let you know what to get set up before the interview.
We write our backend services using Go, but we allow you to complete the backend task in one of the following languages:
We want to see you at your best in the language from the list you're most comfortable using. We limit what we offer based on our team's experience - we can't help you pair if the Countingup engineers don't know the language!
We also offer the selection of languages because most of our current team picked up Go when they joined us - we're keen to see how you code and can help with any upskilling once you're on the team.
Our frontend products are written in TypeScript and React or React Native. As such, we do prefer to see how a candidate can handle React.
Remember that the Countingup engineers will be happy to help where needed.
Questions from you
Once we've finished the pairing, we open the floor to you so that you can find out what it's like to work here.
It's your opportunity to learn what we do, why we do it and what life is like at Countingup. We will always do our best to answer questions no matter how hard so that you get the complete picture of what it's like to work here.
Questions from you form the last part of the interview, and once we've answered all of your questions, we wrap up and finish the interview.
Having met you and worked through the interview, we will gather feedback from the Countingup engineers and then get together to make a final decision. We usually aim to do this pretty quickly after the interview so that we don't keep you waiting.
Assuming the interview has gone well, we can make you an offer and set the wheels in motion for you to join Countingup.
I hope this post helps explain the engineering hiring process at Countingup. Having taken part in many interviews during my time at Countingup, I'm confident that we've found an approach that most people enjoy taking part in, regardless of the outcome.
Most of the feedback at the end of an interview is that candidates find it enjoyable, engaging and exciting (as reflected in a post from a recent new joiner, Alex, here).
We know that it's a significant commitment to participate in the process, but hopefully, I've explained why it's worthwhile for both sides.
If you're keen to join us, please get in touch via our Careers page!