Technical hiring process at uSwitch

According to my CTO, the age of the cyborg has begun. We are pretty much doomed as one day we will all be replaced by bioengineered post-humans. Well, that’s his long-term prediction.

In the meantime, he hired me to help the business to find real people for our software development roles. The issue the business was facing was quite complex and required a new approach. Before I start talking about our process for hiring top-quality developers, I would briefly like to describe the type of developers we hire here at uSwitch and our recruitment process.

What uSwitch look for in a developer

Our teams are autonomous and we focus on problems, not projects. Developers are the product experts. If we feel a language is a better fit for a problem than one we are currently using, we will rewrite our code in that language. We are running production code written in Clojure, Ruby, Elixir, Go, React et al.

Therefore, we are looking for people interested in understanding the whole business problem we face and leveraging technology as a solution.

Just to put things into perspective, these are the kind of developers who are also on the radar of Facebook, Amazon, Google and a few other well-known names. So, there was no pressure.

The uSwitch hiring process for developers

We use Trello as a kanban board to monitor a candidate’s journey throughout the process. When a CV comes in, a card with the candidate’s details is created. At every single stage, our developers are free to make comments and suggestions.

When I joined uSwitch, I was simply blown away by the quality of feedback made by engineers. Every single Trello card helps us to build our internal bank of knowledge about our first impressions of a candidate’s CV, their performance during a phone screen, code test and a final interview. Below is our process:

  • Phone interview with two developers (max 40 min)
  • Code test - A technical challenge where candidates are given approximately one week to complete it. Two developers need to review the submission and their comments made are either voted up or down. Once two people have reviewed the test, then it is moved to “rejected” or moved to the "in office" stage
  • In office interview - This is a two hour interview split into a technical and cultural section

Defining the recruitment problem part one: Looking at the data

Here are some stats. In the past, if uSwitch wanted to hire 10 developers, we had to introduce into our hiring process on average about 300 to 330 applicants per year.

Historically, our recruitment “conversion rate” (i.e. percentage of successful candidates out of the total number of applicants, the ones who received offers from us) was at about 3%. That level indicated that the task ahead of me was seriously daunting.

Almost every single person in our development team is responsible for hiring. We did some calculations, and it turned out that to deal with such a large volume of applicants, our developers’ expanded effort to hire new people would come close to 650 hours! It’s mind boggling. 650 hours is about 82 working days spent on hiring just 10-12 people.

Now, the recruitment plan for 2017 was even more ambitious as we were hoping to recruit twice as many engineers. Despite the fact that we used to work with about 20 agencies with some of the well-known high street brands, only one understood us very well and managed to place a number of developers in our organization.
However, even for this specialist consultancy, the “success rate” was around 10%, meaning that only 1 in 10 applicants sent across would secure an offer from us. The remaining 19 recruiters, despite submitting about 250 CVs, placed only 3 candidates in two year — another shocking number.

For these agencies, the numbers were even worse, as their “conversion rate” was around 2-3%. Hardly an incentive to keep working with us long-term. Looking at those stats, you start asking yourself: is it true that they were all that bad? Or maybe the fault was on our side? It turned out that it was the latter.

Defining the recruitment problem part two: Talk it out

Every business is different. And that’s down to the people who work there, the strength of (or lack of) its culture, its business prospect, the market it operates in, etc. Every company has its unique attributes and needs.

Prompted by our CTO, I went around the teams talking to people about uSwitch, trying to understand what people really think about the company and what they like or dislike about working here. It was like a journey of discovery to strip away the layers until the core of the problem was exposed.

Now, when we learnt more about the various issues affecting the company, we zoomed in closer to focus on the most important one — the core, burning problem. We quickly uncovered that the company has an external image issue. As a business, we have been around for nearly 15 years and, apart from a few Clojure enthusiasts who already knew about us from conferences and events we have sponsored, others were viewing uSwitch as that old-school price comparison biz that probably only a handful of geeks would consider a somehow attractive place to work in.

They had a point. We weren’t a start-up anymore (although our teams work like them), but we weren’t a well-established corporation either.

Within the business, we all knew we had a great environment built by a fantastic group of people but, sadly, no one else knew about it. For a business that employs a whole bunch of smart, experienced engineers, embraces new technology, and gives a lot of freedom and autonomy to experiment with new ideas and approaches to how we work, we really struggled to communicate even a fraction of this message to people on the outside.

So, our issue was slightly different. To remain attractive to any potential candidates in the developer community, we had to fix the way we presented ourselves to the outside world — that included candidates as well as our suppliers and recruitment agencies.

Solving the problem: Changing the perception of our business

Changing a company / brand image can be an expensive and time-consuming process, and we didn’t have much time. So, we had to use a slightly different approach. First, we got the most promising, specialist recruiters to our office. Yes, we turned to specialist recruiters for help in the first instance as we quickly realised that the task of hiring at least 18-20 engineers ASAP wouldn’t be a one person job (i.e. my job). Instead, it would mean getting everyone on board: executive team, HR, line managers and the whole engineering team, working together to improve our processes.

The plan was simple, we wanted to turn a group of 3-4 niche recruiters into our sales force and get them into our new office was part of the plan to upsell some of the benefits of working at uSwitch (and ZPG, our parent company). Our new office, with some of the great features like modern office space, free breakfast, afternoon snacks, free, on-site gym yoga and pilates classes was in itself an important piece of information worth sharing with people who were soon to act as our brand representatives.

We also gave the recruiters the opportunity to meet with some of the key people in our team. We reflected on issues of the past: a slow feedback loop, not the best understanding of what we’re looking for, general breakdown of communication and trust between us and recruiters. Our promise to them was simple:

  • A quick process
  • 24-hour feedback on all CVs submitted (later changed to 48 hours as the volume of applications increased)
  • Thorough, very detailed feedback directly from developers on all applicants, starting from first initial comments on a candidate’s CV, then our feedback on a code test and finally, our remarks on candidate performance in a final, face-to-face interview. (Our aim is always to pass on as much information as possible to candidates who interview with us, so they can learn and improve.)

Developing the uSwitch recruitment model

Now, we had something: a better, sleeker and more efficient process, great feedback that we could use to improve our internal and external communication, and motivated and fully briefed recruiters. And what is most important — an idea to create Labs, this very blog that started back in March which helps us to shed some light on our culture and the way we work.
We also knew our historical data, our past sins and some key stats (i.e. percent conversion rate). Now, the key thing was to put everything into a model that would help us to monitor our process, agencies’ performance, referrals, time to hire etc. So, we created a simple Excel spreadsheets with a few useful pivot tables that could help us to visualise some of our data.

For instance, below you can see how many CVs we’ve received on a weekly basis since the beginning of the year. Just to explain, every single “spike” in the number of applicants (it happened in February, April and most recent one in June) resulted in offers and new placements.

Recruitment over time

Here, on the other hand, you can see our simplified model predicting of what would happen in the next 12 months (i.e. how soon we could hope to hire people we wanted) if the number of applicants reached 5-7 per week with a conversion rate at 7%.

Recruitment demand vs hires

Looking at the model, you could actually see multiple moving parts and elements in various stages of progress giving us a sense of where we were and what still needed to be done.

Quickly, our model has become a backbone of our whole recruitment strategy. Seeing the stats, basic numbers and probabilities made it also easier for us to weather some temporary problems inevitable to occur when the recruitment gods stopped smiling at us. It happens from time to time when one applicant after another gets either rejected or simply drops out and we start losing our confidence in the process. We experienced this moment of doubt back in the second week of February when we had six final interviews scheduled for that week. By Thursday, five out of six candidates had been rejected for various reasons with only one left in the pipeline. Our first reaction was panic. There must be something wrong either with our system, the way we screen candidates or maybe even with us.

As you can see, it can get very emotional. And here the model came to the rescue. As it happened, on the last day of that week, the sixth candidate got the job! Stats don’t lie, and odds started working to our advantage. It meant that, statistically, we were on track and if we kept doing what had been doing so far, we would definitely hire the people we needed. Just keep calm and carry on as they say.

Conclusion

Putting all this together, understanding your past data (however ugly it was), honest discussion with people in the business, working together to uncover the real problem and building a model that supports the process helped us to fix our hiring issue and make our hiring process better and more efficient. This approach has worked really well for us, but there is still a lot that needs to be done — for example ongoing work on our brand, looking into employee retention, diversity, increasing the number of direct hires and referrals, polishing our process even further, etc.

However, for now we did solve the most urgent problem and we were off to a good start. Below are some of the highlights:

  • In just under 7 months we managed to find 16 developers through a healthy mix of agency and direct hires.
  • Our time-to-hire ratio is around 25 days (as opposed to 3 months or longer in previous years!), meaning it takes us on average about three to four weeks from the moment a vacancy goes live until we find the right person.
  • Our recruitment process has also become very efficient. With quick, detailed feedback and only three stages we can move really fast if necessary. Our conversion rate is slowly approaching the 10% level, which means that we and our recruiters are getting better at identifying the talent we need. Plus, we spend less time interviewing which has a positive impact on overall productivity.
  • We rebuilt our relationships with recruiters, narrowing down the group of agencies we use to four specialist consultancies that can respond to our needs fast.
  • Our brand is becoming more visible in the developer community thanks to this very blog, our presence in conferences (both UK and Europe) and many in-house events we host.
  • We have a healthy pipeline of candidates which bodes well for the future.

Now, we are in a strong position to complete our hiring plan for this financial year and start thinking about implementing some other ideas we have in mind for the next 6-12 months.