The Madness Of Recruiting Permanent Engineers

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:

  1. Screening call - Establish appetite for role/Discuss role in detail
  2. 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.
  3. 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:

  1. 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
  2. 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...)
  3. 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
  4. 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

  1. "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
  2. "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.

End of interview human cannonball to HR - It's not for everyone

End of interview human cannonball to HR - It's not for everyone

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?

Earth - When a slow-moving company finally gets back to you

Earth - When a slow-moving company finally gets back to you

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.

"Nice to infect you!"

"Nice to infect you!"

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.

What you look like when you lowball

What you look like when you lowball

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.

"If I keep looking, maybe I can find some free oxygen to add to the advert"

"If I keep looking, maybe I can find some free oxygen to add to the advert"

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.

I was going to create speech bubbles for this but it's far too silly in it's own right

I was going to create speech bubbles for this but it's far too silly in it's own right

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).

The office they advertised as "exciting and energic"

The office they advertised as "exciting and energic"

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.

Me and my pals in our black standard issue trouser chillin' in the dairy section

Me and my pals in our black standard issue trouser chillin' in the dairy section

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.

13