Disclaimer: This article is only pertinent to permanent recruitment. If you have a multistage interview process for contractors I think you may be beyond help...
TL;WR
Modern recruitment is broken but unlike seemingly everyone else under the sun, I don't blame recruiters; who are mostly just responsible for sourcing and placing candidates. I blame companies themselves for many, many sins as listed below. Caution: This piece is opinionated...
"Just a one-hour pairing exercise" ❌
By far one of the biggest annoyances I have encountered whilst searching for a job was the insistence by companies to complete live pairing exercises...when they themselves don't even practice pair programming. Now don't get me wrong, if your company practices pairing, I get it - I really do, that's your modus operandi ergo you need to judge candidates on how they operate in that environment. However, that is not how most companies operate, so why would you interview a candidate in that manner?
Now it might just be me and my years of experience interviewing candidates, but recreating that scene from Swordfish during an interview tends to invoke a panicked response from a candidate.
Take it from me who has been on both sides of the fence - you're probably not getting a representative assessment of their skills by putting them on the spot.
Solution ✔️
Give candidates a choice between a take home test, pairing exercise or just trust their CV and have an adult conversation.
My preferred method when interviewing/being an interviewee was usually a 3 stage process:
- Screening call - Establish appetite for role/Discuss role in detail
- Handcrafted short take home test (yes, I mean very short) - Establish how a candidate approaches a problem under real world conditions. This usually has some pretty explicit requirements.
- Final interview - To discuss why they approached the problem in the way they did and essentially review their code together
My reasons for this are pretty simple:
- It mimics the real world - Candidates try things, Google stuff etc - I want them to approach a problem as they would day to day. The final stage also lets a candidate discuss their approach to the problem and allow for a natural, free-flowing conversation between both parties
- It lessens the likelihood that a candidate has memorised a Project Euler solution or a particular algorithm (Yet to see how that skill is useful in the real world anyway...)
- It shortens the amount of time dedicated to recruitment for me and other engineers - In almost every company I've ever worked for the engineering department is short staffed - Setting aside days to watch someone code is not a great time investment
- A lot of lower quality candidates either can't complete the solution or don't read the instructions. I would go as far to say, a shocking amount
I've heard several arguments against this, so I will address these
- "But they could just steal/get someone else to write it" - It becomes very, very obvious in the final stage when they cannot justify their design choices
- "It takes too long!" - I said very short and I meant it (1-2 hours).
"Amazon/Facebook/Google do...we do too!" ❌
You're not Amazon/Facebook/Google. Now, I don't necessarily agree with the horrendous recruitment process undertaken by most FAANG companies but there's a reason they're market leaders - they attract the best talent because they usually have some of the best benefits, best co-workers, best remuneration and a lot of personal freedom within their roles.
It's highly unlikely that you're going to need to recruit candidates who need to be put through a 15 stage interview-a-thon including a "culture fit" interview (whatever that means) culminating in them being shot out of a cannon straight into the HR department.
Solution ✔️
You should be much more interested in how they approach problems and whether they can write clean, maintainable code. Keep the interview process short with as few stages as possible which will keep both parties interested. I lost count of the amount of times I've heard about people getting bored and dropping out at stage 4 of a 7 stage process. We have a magical thing called "a probation period" - use it.
"Let's gather as many candidates as possible and select the best" ❌
Quite simply, you don't have time. The market is so unbelievably busy - companies are having to sell themselves to candidates which is leading to all sorts of fantastic benefits for us but unfortunately for companies, it means you have to act fast. I was offered 4 genuinely fantastic offers very recently within 10 days of initial contact. This is unprecedented in a time in which the word "unprecedented " is used too much.
I had a few companies take weeks to come back to even offer me an initial interview - For some it took months - How on earth are you hiring, well, anyone?
Solution ✔️
There's no time for you to compare candidates - if you spot a good engineer you should do everything within your remit to hire them before someone else does. The market is rigged against you.
"I know we're experiencing a pandemic but we need a face-to-face final interview" ❌
I don't even know what to say to companies who request this. Despite a successful recent vaccination drive, the UK (where I live) has recorded almost 130k deaths at the time of writing and we're currently in the midst of our third wave.
Solution ✔️
Quite simply, don't do this. Be aware of the enviornment and conduct it via VC.
"Salary is dependant on experience" ❌
Translation - We're going to lowball you if we think we can get away with it. This has never sat right with me - not only does it result in you getting candidates who don't have enough or too much experience but you also introduce a completely needless stage of negotiation having wasted potentially hours of time on both sides.
Solution ✔️
It's obvious - advertise a salary or a salary band. Make sure the candidate is happy with either the maximum or minimum during first contact.
"Put legally required holiday allowances/tea and coffee/equipment/drinking water as a perk" ❌
Great! Thanks for what is completely expected in every job...I've ever had...since I was 16...including when I was a Kitchen Porter (aka young boy who cleans pans). You're really scraping if you're listing these things as perks.
Solution ✔️
Best to leave the obvious stuff off, especially the perks which are legally required. I know not every company is exactly flush with cash but there are other things you can offer engineers which are free - autonomy, freedom to work from home, brown bag sessions, dedicated personal R&D time.
"Comfy breakout area with PS5s, beer fridge and a massive TV" ❌
I've never met a single good or better engineer who cares about this. Not one. More to the point, I've never seen these areas used in any company I've ever worked for.
Engineers care about autonomy, process, well defined requirements and using the best tools for the job. I'd be much more inclined to interview for a company who, for instance, told me about the specs of my workstation on an advert or told me about their SDLC.
Solution ✔️
It boils down to this - Good engineers care about the quality of what they deliver which basically means, when you're in work...well, you're in work. By all means, keep your breakout area if you have one but have an awareness of the type of person you want to recruit...Hint: They're probably not going to care about zany token gestures.
"Our Work From Home policy is up in the air at the moment" ❌
Hearing this as a candidate is a red flag - it's typically a bait and switch e.g. they employ you and then all of a sudden a decision has been made and you're being asked to come in 3/4 days a week or you're being told there isn't an office (depending on your preference).
Solution ✔️
Coming to a decision on this shouldn't take weeks - you should just decide in black and white whether it is - or isn't - a policy, whichever side of the fence you're on just pick it.
"We don't have an exact list of your roles and responsibilities" ❌
This genuinely happened to me.
I still wonder what I would be hired to do, I am going to take a punt at trouser modelling for Asda.
Solution ✔️
If you don't know what you want a candidate to do, you shouldn't hire them...however this specific example was a gambling company (they call it "Sports Betting" - it's gambling, don't try and zhuzh it up) after all, and they're not exactly known for operating ethically.
Summary
In no way are my views necessarily representative of every software engineer but these are sins and solutions have been procured from myself and others on both sides of the fence. In summation, companies need to change how they hire now or they will get left behind.
Top comments (8)
Mark, I'm curious if you are / were directly involved in hiring, especially in the initial stages like defining a role, finding candidates or first contact. It would be interesting to hear your take on that.
I’ve been involved in both role definition, finding candidates AND first contact if you can believe it. What sort of things would you like to talk about?
I am curious about the initial stages of the hiring process. There seem to be a lot of disconnect between what is offered and what is sought on both sides. For example, why do employers fill job ads with information of no interest to SWE candidates and skip on what matters? Can you share how do you structure your job ads?
And the same goes for the screening calls.
I hear some recruiters say they want to gage the level of interest in the role, yet, they start it with "Tell me about yourself".
Do you have a template how you structure your screening calls?
My previous job ads started with what I thought mattered to candidates - Since I am also a Software Engineer - I went with, in order:
I didn't do much phone screening, to be honest, I let the advert speak for itself.
Usually if I did have a phone conversation it was assumed that the prospective was interested in the role and it was mainly an adult conversation about the role (in case the advert didn't cover everything).
Do you have a theory why recruiters do it the other way around?
It is literally the inverse of what you listed: 4-3-2(bar the $$$)-1 followed by a counter-productive screening call.
I've no idea but it's a bad idea. I personally don't really care what the company does (as long as it's ethical). I care about their tech stack, processes and how they ship the product. I often find that the screening call is actually a little off-putting - I've had several internal recruiters completely dissuade me from continuing the conversation based off the screening call.
In general, tech recruitment needs a total overhaul starting with the companies themselves. It's one of the only industries in the world in which people completely dismiss a CV and references or examples of work in favour of unrepresentative testing methods.
I can't agree more. It's interesting how the views change as someone progresses up the management ladder - the higher up they are the fluffier their SWE job ads get. I guess that's where team builders come in to keep them in check.
This is probably role-dependent, but what is your top filter for candidates? What do you look for first in their CV/profile? Is it their stack, experience, education, something else?
"If you have a multistage interview process for contractors I think you may be beyond help...".
Brilliant :)