Why software engineers don’t get jobs: Four horror stories

tl;dr; Recruiting is messier than you think. I tell three stories where great engineers were rejected for reasons that had nothing to do with their engineering performance or cultural-fit.

Read this story with nicer formatting on medium.com.

I run a technical recruitment agency based in Zurich. I will help you skip boring calls with non-technical recruiters, assess you reasonably and match you with cool tech jobs in Zurich (and also Munich and New York)! Please reach out to me at iwan@coderfit.com.

When people don’t get offers, they mostly think it is their fault: “I have been rejected by three firms in a row, something is wrong with me”. After working for three years in tech recruiting, I can assure you that random factors and noise play a more important role, than your ability to interview. Often rejections happen due to random things happening.

Horror-Story 1: Candidate rejected because of “wrong” framework

For a frontend role in an agency I pitched a frontend engineer who contributes to ECMAScript and wrote heavy open source contributions. It took me weeks to find this person and hours to properly assess him, including video interviews (that is what we love to do at coderfit.com). He was rejected by an engineer who looked for ten minutes at the submitted code:

“ […] Although your resume and cover letter were very competitive, our hiring team reviewed your application and did not select it for further consideration.” […]

This was a truly bad canned e-mail because the applicant didn’t submit a cover-letter. After reading this, I dropped everything, drove to their office to talk to the engineer who rejected the best frontend candidate I interviewed in 2017.

First, the interviewer could not really tell me why he rejected the candidate, he just said the code is over-engineered although it was actually properly structured, with all ES6 operators and short functions in-place. After discussing this for 10 minutes, the reason for rejection became a more clear: The candidate used a MVC framework that was unknown to the interviewer. I was so impressed by the candidate’s use of the framework in the coding interview with me that I could not understand how this could be a problem.

Some background info why we used an unknown MVC framework: The hiring firm was an agency looking for repeatable processes and the lead engineer (not the interviewer) complained to me that they tend to “re-invent the wheel for each client”. The candidate whom I submitted build a custom framework in his free time that was solving some of these issues the agency was facing.

Since the rejecting interviewer did not look at my notes or my video interview recording, he was lacking the context why the candidate used the framework and just hit “reject” in the Applicant Tracking System. Also, at that moment, the team lead (who was in favour of the candidate) was on vacation and could not intervene.

Tip: Generally it is a bad idea to look at other people’s opinion of a candidate before doing an assessment but in some cases, it does make sense, if it adds context.

This story was especially sad because the CEO paid me a retainer such that I bring them “the best people” (this is by the way what every company wants from me, but few put money where their mouth is). So, I worked extra hard on the role. Yet, there was zero backing from the employees and hiring engineers to really assess candidates that I sent. The engineer who rejected the candidate told me even: “recruiting is lowest priority for us”. If you get a retainer as recruiter it makes you extra committed, but it’s worth very little if you lack the backing of the whole team you are recruiting for.

What was even worse, the candidate did not want to talk to any other Swiss employer after being treated like this (canned responses from HR, no feedback, waiting for two weeks to get code submission reviewed).

Horror-Story 2: Ex-Googler ALMOST rejected for not knowing the Bayesian formula by heart

One startup interviewing for a Python role interviewed a programmer who left Google-Zurich after four years. I had problems presenting this person to startups since everyone thought he will ask for Google-Zurich compensation (>200k CHF — double the average engineering-salary).

However, he was reasonable with his demands and just wanted a harmonic team with interesting technical challenges. So, he aced every interview and impressed most people that he talked to. One startup got him through all four rounds and in the last one he talked to everyone on the team in 1-on-1 sessions. After his interview-day we were discussing whether to hire him or not. One person stood up and made it clear that the candidate couldn’t explain the Bayesian formula and therefore shouldn’t be hired. No one seemed to care except the tech lead. He would be the one reporting to the CEO that they didn’t hire anyone since months (meaning, he had skin in the game). So he used his veto rights and made it clear that not knowing trivia by heart is a stupid reason to reject someone. Thus, they hired the person. In the end it turned out, this person was the most valuable engineer the firm ever hired!

Trick- or algorithm questions are used by Google et al. because these big brand firms can afford to also make engineers dance naked for them. They have so many applicants that many false negatives in their hiring process don’t hurt them. Google has three million job-applications a year, this isn’t the case for most other firms. As Erin Ptacek wisely once said: “The definition of insanity is doing things the way Google does and expecting them to work for you.”

Horror-Story 3: Programmer was FORGOTTEN by HR

Usually, I closely track what happens with my candidates and how they are proceeding through the hiring funnel. While I was on vacation, a CEO gave his okay that they will hire a engineer I presented. I got that mail and assumed all will continue just fine without my intervention. But then this happend: The HR that worked remotely in another country forgot to follow up. Since I was on vacation I did not follow up either and the candidate thought for weeks he was rejected since nobody followed up.

When I was back from vacation I approached the candidate asking if he’s happy at his new job. But he didn’t even start! Neither he, nor the HR could understand why no one has proceeded with him further. So I email-CC-ed all people involved asking if we can finalise the process and went though with it.

HR is generally underpaid and hopelessly disorganised. Inhouse recruiters are often responsible for other administrative tasks other than recruiting. Or even worse, sometimes there is no HR and someone from the reception desk without skin in the game reviews, rejects or forwards CVs.

Tip: In business communication, if people don’t follow up, it does not mean no. It means people are busy. Follow up, until they tell you “no”. Thinking silence means “no” is a typical, very expensive mistake made by most engineers.

Horror story 4: Candidate was rejected because he was better than the interviewer

People in the HackerNews comments of this article mentioned that sometimes great applicants don’t get hired because they are too good. I noticed this also and I appended this fourth story that stuck with me:

The candidate was a 22 year old open-source contributing child-prodigy programmer was be rejected at the code-screening phase by a guy, let’s call him “Jon”. I was so unhappy about the rejection that I setup a call to discuss it. We had a phone call with three people: HR, Jon and me.

Jon pinpointed to some problems in the candidate’s code which we even looked at on a shared screen. All things he mentioned were more style-choices and not real problems. Other things he criticised looked shitty to the untrained eye but had actually good reasons (verbose try catch blocks because the API the code was interacting with was not clean). Then I lost my temper. The criticism made me get defensive and mention that the quality of the candidates code is better than the interviewer’s stuff on Github. Here, my temperament went astray with me. The HR person taking part in the call stopped me right there and told me that “we’re not assessing Jon here”. It was very hard to say anything at this point so I just switched topics and ended the call. Why people might secretly like to hire people who are just a little less capable than themselves might be material for another blogpost though.

Learnings

Recruiting is messier than you think. If you fail to get an offer, it does not mean you are a shitty engineer since rejections can have many reasons.

If you are asking yourself why recruiting agencies exist, well, sometimes to prevent some of the things mentioned in this post from happening. Recruitment agencies match people with jobs for a living and we have most a vested interest to remove obstacles and make people get jobs. If you have crazy rejection stories to share, leave a comment below.

If you are a software engineer, or if you can refer one, read on. I run a technical recruitment agency based in Zurich. I will help you skip boring calls with non-technical recruiters, assess you reasonably and match you with cool tech jobs in Zurich, Munich or New York! Please reach out to me at iwan@coderfit.com.If you like this article, you might love:

Please 👏 to let me know if you enjoyed this article!

2 replies
  1. M. Neifer
    M. Neifer says:

    I don’t think these are horror stories. Humans make mistakes and are biased. The question is, if error-free, non-biased recruiting by algorithms would be better. I don’t think so.

    Reply
  2. christian
    christian says:

    Great article. You should correct the first sentence of the second to last paragraph “It might material for another blogpost if an why people secretly like to hire people who are just a little less smart and/or a little less able than themselves; ” to “It might BE material for another blogpost if AND why people secretly like to hire people who are just a little less smart and/or a little less able than themselves; ”

    It’s a really awesome point, but it took me a few reads to figure out what you were saying.

    Reply

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *