Recruitment and hiring is a subject close to my heart, so I wanted to share some of my recommendations and experiences here.
A good hiring process should consist of the following stages:
advertise the job and pre-screen CVs
Advertise anywhere you think might be relevant, for example LinkedIn, your company’s social media feeds, and industry-specific websites and feeds. For actually hosting the advert and managing applications, I like Workable. It’s a great service which keeps track of applicants as they progress through the interview process. Recently Workable has several features that help with scoring people during interviews.
Review applications as soon as they come in, and if necessary start setting up interviews immediately. Waiting for some arbitrary closing date risks losing good candidates.
Phone interview first. This should be short (20–30 minutes) and include some general background, and a few technical questions. The only point of the phone interview is to see if we want to invite the person for a face-to-face interview.
Hire for potential not for experience. It’s better to hire people who are open to learning new skills, working in a changing environment, and helping to shape the future of the company. If someone meets these criteria but is lacking in certain experience, it’s worth taking a risk. Of course, people do need to have a reasonable technical background for the role they are being interviewed for.
Be as objective as possible. Every person is different, so you need to be as objective as possible to avoid any potential unconscious bias. For example, I generally ask the same questions to all candidates, and score each answer (poor, good or outstanding).
Let’s start with the term - advertisement. It really is an advert, for the company and the position. The market for technical talent is competitive, and you need to sell the company to prospective hires. Will they be working on something exciting? Is there opportunity for training and growth? What sets this company apart from the other companies that the person could potentially work for?
As well as selling the company and the position, here are some of the other key things I try to consider:
Hire for potential not for experience - I mentioned this above, but it’s important to bear in mind all the time.
Balance between being specific and over-prescriptive - clearly there’s a certain skill level that is required for someone to start doing the job, but do you really need to exclude someone who doesn’t have some specific skill or piece of knowledge that they could pick up in a few weeks?
Not too formal - this will depend on your company’s culture, but the language of the job ad should reflect that.
Avoid internal jargon - I’ve seen a lot of job ads, particularly from larger companies, that are largely incomprehensible because of the terminology they use, and how they describe reporting structures and so forth.
Avoid unconscious bias - there are lots of terms that crop up in job adverts which appeal more to men than women. Also, exhaustive lists of prerequisites tend to put women off. There are tools like Textio (commercial), JobLint (free) and Gender Decoder (free) which can analyse the language in your posts, spot unconscious biases, and make them more likely to appeal to a wide audience.
The salary question
Should you put the salary on job adverts or not? I think you should, as it shows transparency and reduces the potential for wasted time where we get well into the hiring process but then find out that expectations aren’t aligned. I specifically confirm that the stated salary range is appropriate during the initial phone screen to further avoid such misunderstandings. In a previous company, we found that we got a better response to our job adverts once we started putting the salary range on them.
Where to advertise
I could write a whole blog post on this, but I’ve found the most success from using personal networks. This is partly due to the fairly close community in which I work. That said, there’s a significant risk in limiting yourself to just people you know - you’ll end up with a homogeneous bubble and exclude fresh ideas and skills. To combat that, I’ve found Stack Overflow Talent to be a great way of reaching software developers. Last but not least, be sure to make the most of your company’s social media presence - LinkedIn (paid job posts or just status updates), Twitter and so on.
So, your wonderful job advert is live and getting lots of interest. Next I’ll describe how I like to manage the application, hiring and onboarding process.
So, the advert’s been out for a while and we’re getting lots of interest and applications. It’s time to select some of those people for interview.
The selection process
Hopefully you’ll get a lot of good applications, so you’ll need some criteria for filtering them down initially. Looking for skill matches is an obvious one, but it doesn’t have to be a 100% match - remember, hire for potential, not for experience.
One thing that can really make a difference is the cover letter. I always ask for one as part of the application, and I’ve found that there’s a pretty strong correlation between the quality of the candidate and the quality of the cover letter they write.
The phone screen
The first stage of the process is a phone screen (although I generally use Zoom or something similar). The purpose of this is to see if it’s worth everyone’s time for us to invite the candidate for a face-to-face interview. Typically the call will take about half an hour, and I’ll ask some introductory background and technical questions. In such a short time we can’t go into too much detail, but in general I find it’s long enough to decide.
After the phone interview, if the person has scored well enough, I invite them for a face-to-face interview. On average about half of the people we phone interview progress to the face-to-face interview stage.
The technical test
For people we invite to interview, we also have a technical test which they do at home. We give them access to a GitHub repo which contains the instructions and guidance on how to complete the challenge. The challenge is intended to be similar to the type of work the person would be doing day-to-day if they worked here. You may want to have several tests, each tailored to a specific type of role.
It means people can write code using the development environment they’re used to, in their own time. I’ve found that this works far better than onsite coding tests or artificial “coding on a whiteboard” exercises which are unrealistic and potentially misleading.
Candidates are invited to the company’s office, so they can see where and how we work. When setting up the interview, little things are important - making sure that interviewees know how to get here, that they are booked in with security if necessary, and so on. These may seem trivial but I want candidates to arrive on-time, relaxed and ready to give the best account of themselves, not rushed and stressed out because they couldn’t find a parking space and ended up being late!
Typically the interview itself takes a couple of hours and is divided into three sections.
General background - why is the candidate interested in the company and this job in particular?
Technical questions - these will vary according to the post we’re hiring for, but we make sure to ask the same questions to all candidates for a particular post so that we can make objective comparisons. Workable’s interview kits and scorecards make it easy to set up and track responses.
Teamwork questions - A set of questions aimed at finding out how well the candidate works with others, addresses problems, deals with uncertainty and so on.
Then there’s an opportunity for the candidate to ask us questions. I find the sorts of questions asked here to be very revealing about what the candidate is thinking and the concerns that they have, which may carry over into the first few weeks of the job if we make them an offer.
After that, the interview’s over. If the candidate has time, we like them to spend some time chatting over a coffee with some of the members of the team they’d be working with, but who weren’t part of the actual interview. This is intended to give the candidate an impression of who they’d be working with, and what the company is like, outside the constraints of a formal interview.
And that’s usually it. In some cases, if we really can’t decide after the first round of interviews, we’ll invite candidates in for a second interview, possibly with different people. These tend to focus on areas we have concerns about, or where we suspect there may be a defining separation between the two (or more) possible people we’re second-interviewing.
Then we’ll have a discussion between all of the people who interviewed the candidates, to decide who to make an offer to, based on what value they could bring to the company. Sometimes we may decide that none of the candidates is right for a role, and that we need to re-advertise the position. We must be prepared to do this; hiring the wrong person for a role is bad for the person and the company. This is role-specific though; in the past, we’ve interviewed someone for a particular role, decided they weren’t suitable for it, but later on hired them for a different role where they’ve done very well.
When we do make an offer, it’s important to get it to the candidate as quickly as possible; we are in a competitive job market so we have to move fast.
Assuming they accept, it’s a case of answering any questions the potential employee may have, then sorting out the logistics of notice periods, references and start dates. Then we look forward to a new person joining the team!