Tales from the interview: when the business fails their own interview
"Tales from the interview" isn't about to become a series (unless I get some guest contributors); I've taken part in a lot of interviews in my life, sometimes as a candidate, sometimes on the other side of the table. The vast majority of them don't stand out.
Every now and then, however, there is a doozy which has a big reason to hang around in my head for years to come. My last entry recalled the time I was summarily booted from the hiring process because of the comments I used in a code sample. No progressing to the final interview stage for me. Alan Sugared. You made a right hash of it. You're fired 👉
This story, though, at least from my point of view is a little chirpier. In today's blog post, I'll recount the time I was offered a job and turned it down because even if I passed their interview, in this case the business failed mine.
This was a few years ago when I was last looking for a job. A recruiter reached out to me regarding a remote or hybrid senior developer role with a UK business. This one was also FinTech, though not the same technology or product space as the firm in my other post. I suppose coming out of a role in the financial industry at the time and being familiar with some of the regulations, relevant laws and data providers in that sector, I was considered a good match for these opportunities when agencies ran my profile through their systems.
I wasn't especially keen to continue working in regulated finance but I'm also a firm believer that when you're looking for a job, it's best to have options and open as many doors as possible.
With that in mind, I agreed with the recruiter to send off my CV.
Little tangent: I've never worked in HR and I'm not an expert on CV refinement or interview technique, I just go with what feels sensible to me. Based on what's worked and what hasn't, I will share this tip when it comes to submitting your resume: I keep my CV to two pages and you should do the same.
I have my name, phone number and website URL at the top, a short personal statement, a list of my key skills, then employment history and education. Employment history I limit to the last ten years, because no one cares that I briefly sold windows and guttering via cold-calling when I was sixteen, or handled inbound directory enquiries when I was nineteen. I don't even list my first few full-time IT and programming jobs because I no longer consider them relevant and more importantly, neither do the people deciding whether to phone me back.
Brief and to the point is a format which has always worked well for me (so, the opposite of my blog). I tend to get call backs when I apply for things, at least for initial interview.
You're the best around
You need to imagine the Joe Esposito song for that heading. Fun fact: it was actually written for Rocky III before being used in The Karate Kid instead, hence the line "...history repeats itself."
Anyway, I got a call from the recruiter. They loved my CV and I should be really proud because this business only takes the best of the best. Lucky to even get my foot in the door, apparently only 1 in 50 candidates make it through their hiring process and receive the coveted golden job offer at the end. (Note: I was not applying to FAANG, nor a six figure salary)
I was also forewarned they had the dreaded take-home tech test and to be prepared. It would be tough, because these guys only take on the best of the best and only 1 in 50 candidates end up getting a job offer from them.
I'm not exaggerating, by the way. I really want to make that clear - the repeated reference to this 1 in 50 figure, the stuff about it being a hard technical test and rigorous hiring process demanding high standards, that was all actually, honest-to-god what I was told by the recruiter.
But look, the idea of working with a super talented tech team who really know their stuff, are keen on maintaining high standards, take pride in the quality of their work and truly believe in the idea of "the right tool for the right job" is something which excites me. I'm up for a challenge. Also I want to open as many doors for myself as possible, so of course I agree to the first interview.
Yeah, I don't really remember much about my first chat with these guys. I do recall it was with a couple of their tech team and I think someone else from the business side. Vague memory of discussing my previous role in the financial sector and them sounding quite impressed when I correctly guessed part of the architecture pattern they were using to handle transactions across their services (this was not as impressive as it seems, because not many people opt for 2 phase commit when they design an application these days).
A couple of days later I received an email from them informing me "Good news! We would like to invite you to complete a coding test for the Software Engineering position."
I've never had a tech test described as good news to me before and I hope I never do again. Still, with their extraordinary 1 in 50 figure ringing in my ears, I wondered, how many people were getting culled after the Stage 1 Interview phase? Was I now a member of a 1 in 5 club, 1 in 10? Had I maybe already reached a new pinnacle in my career, an apex of beaten probability? I didn't know, but I was curious to find out what awaited me next in my quest for a robe and hat. I eagerly opened up the PDF containing my tech test, my breath catching in my lungs, fingers on tenterhooks.
I wouldn't say the test was anything special. Other than a lack of specificity, it struck me as pretty standard, certainly not something I'd expect 98% of candidates who'd made it this far to fall down on. The main difference between this test and any other was that these guys weren't prescriptive about how you built the thing they wanted you to build. They didn't ask for a particular framework or application structure, they just had some notes along the lines of "Use OOP and implement keeping SOLID principles in mind", "Don't over-engineer the solution" and "Don't use any database"
They did specifically request that you provided test coverage, both in general for your code and for a number of specific scenarios in relation to the calculations and actions of the system they had detailed in the test doc.
I never put too much of my own, free (in both senses of the word) time into these tech tests, I do the minimum to fulfill what's been asked of me and generally provide comments or accompanying notes about where this means I'm aware the code or design falls short of what we'd do in a real world system. (Note to readers of my last blog post: I may have phrased comments a little more diplomatically in this attempt, or not - I honestly can't remember)
So I completed the test in I think about 2 hours and emailed it back in accordance with their instructions. The main thing I took from it was that they'd set up the problem in such a way that a lot of people applying for a senior engineering position would probably have been tempted - despite the warning in the text - to over-engineer the design a bit. Being both efficient and someone who values my Netflix time, I took the opposite approach and followed the one principle which I would say guides me most in all my programming endeavours; KISS (Keep It Simple, Stupid!)
I also let the recruiter know and was more or less tuned out at the point I was told yet again that only 1 in 50 candidates get offered a job by this business, so not to be too disappointed if my tech test hasn't made the cut.
Where it all went wrong
Good news! A few days later either the recruiter or the business, I forget which, got back in touch with me. They'd like to speak to me again, for a final technical interview with some of the Bigwigs in their tech team (which it turns out, included two of the people I'd been speaking to the first time around).
Because this was a senior role and they obviously at least quite liked me, I was expecting a pretty juicy and decent two-way conversation as I went into the final. Surely they would be keen to tell me more about what I could expect if I came to work with them, the company culture, the priorities, the infrastructure, the lifecycle, all the stuff that matters. Surely they were mindful that if I made it - if I became their dark horse who stood alone atop the pile of candidate corpses, the 1 in 50, the IT man, the best around - I would need to be just as sure I wanted to work for them as much as they wanted me.
I'll be serious again. The interview was a joke. It was a completely unstructured, seemingly almost random pop-quiz of rapid-fire technical questions from all three interviewers. None of them were particularly difficult, but the more and more it went on, the more it felt like they were just trying to catch me out on something - anything - I didn't know, so they could show off their superior knowledge (because these guys are the best of the best).
They weren't even clever or situational questions, most of them weren't even questions that were in any way relevant to measuring how well someone might do a developer job. I don't remember them all but I was asked to define each of the SOLID principles, to explain database indexes and I remember feeling slightly amused when one of them asked me "What do you know about REST protocol?"
REST is not a protocol, it's the architectural standard on which web services are built (the web itself running the HTTP protocol). I actually started explaining about REST and mentioned the use of different HTTP verbs in API design, at which point the same interviewer interrupted, quite rudely, cutting me off mid-sentence to ask "And what are they?", "What, you mean the verbs in HTTP?", "Yes. List them."
That was the style of the entire interview.
You can probably see where they went wrong. Not once in the entire 40 minutes or so did they ask me a single question about me. Nothing about work I'd done previously, challenges I'd faced, not even the courtesy of a clichéd "Where do you see yourself five years from now?"
They also didn't take the time to explain anything further about their business or what they hoped to achieve from the role. Oh, of course with our allotted call time exhausted they were happy to ask if I had any questions for them at the end but understandably, by that point, I just wanted to get off the call and enjoy a cup of tea.
A couple of days later I was, as you already know, offered the position. The email from the recruiter said "[XYZ] have historically been a very tough company to break through so the fact you've received an offer from them shows how high calibre of a developer you are. This tells me that the team you will be working alongside are all very intelligent developers."
Okay. The interview I had tells me their hiring process is badly broken.
If you're only extending an offer to an alleged 1 in 50 developers (and I really struggle to believe it is in reality that few who can make it through a rather anodyne tech test and a barrage of fairly straightforward, textbook-answer technical questions), you need to consider that maybe you're the problem, not 98% of the people who apply for a job with you.
I passed their interview, but they failed mine.
If you like a candidate enough to make them an offer, if you really believe they're going to be a valuable asset and addition to your team, sell yourself. If you don't, you run the risk of candidates rejecting you, or even worse, taking a job for a paycheck then walking six months later when something better comes along for them. Now you're down recruiter fees for that person, the cost of finding and hiring a replacement all over again and the lost productivity to another round of training and settling in.
These guys made me feel uncomfortable and like if I worked for them, I wouldn't even be seen as a person, just a...I don't know, some kind of work unit in a code factory, who had been deemed to pass a minimal quality assurance process with a rubber stamp on my backside. "Coder unit 1 of 50", maybe.
Remember this next time you do an interview from the hiring side of the table; we're all human.
I just want to add one more piece of advice for candidates here. When I declined the opportunity, I was asked by the recruiter for feedback on behalf of the business. You might think the right thing to do at this point is be honest. Maybe not in the simultaneously scathing and satirical way I've written this blog post, but at least in the thrust of why you decided to go with a different offer.
Morally, it probably is the right thing to be honest and try to help a business improve their recruitment practices. On a practical level, my advice is simple.
Don't do it.
There's no point burning bridges. Our lives, our circumstances can change at any time. What I actually said in answer to the question was something like this:
I really appreciate the offer for the role of senior developer at [XYZ] and it is with sincere regret that I am unable to accept.
As a candidate, I never make assumptions about anyone's hiring process or whether I'm going to be made an offer, so naturally I had a few other roles I applied for alongside your own. I ended up with multiple offers to choose from, which while a very fortunate and privileged position for me, unfortunately and unavoidably means I am now left having to decline offers from opportunities I had been excited about and felt had come from businesses and teams which would be a really great fit for me.
It is very much my hope that should my circumstances change in future, you would consider me again. For now, I wish all of you I met and the wider team at [XYZ] all the best for the future.
Some people might say this is bad advice but I've found the way people react to honest feedback, no matter how polite you are about it, to be wildly unpredictable. When it comes to job hunting, the only thing which should matter to you is risk and benefit to yourself. No one's going to look badly on you for being gracious. They might for telling them they suck at conducting interviews, even if it's the truth.
All comments are pre-moderated and will not be published until approval.
Moderation policy: no abuse, no spam, no problem.
The difference between failure and success isn't whether you make mistakes, it's whether you learn from them.
Recalling the time I turned down a job offer because the company's interview technique sucked.
Recalling the time I was rejected on the basis of a tech test...for the strangest reason!
Why type hinting an array as a parameter or return type is an anti-pattern and should be avoided.
Leveraging the power of JSON and RDBMS for a combined SQL/NoSQL approach.