Why software engineers don’t get jobs: Three (+1) horror stories

Why software engineers don’t get jobs: Three 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.

When people don’t get offers, they mostly think it is their fault: “I have been rejected by three firms in a row, hence I am probably a shitty engineer”. After working for some time in tech recruiting, I can assure you that random factors and noise (false negatives) play an important role, too. Often rejections are due to random things happening and not rational reasons (true negatives).

Horror-Story 1: Candidate was rejected because he chose a unknown framework that one of the interviewers hated.

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 at the agency who looked for ten minutes at the submitted code. The candidate was not even rejected properly but the firm mailed him a canned answer:

“ […] 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 answer because there was no cover-letter ever submitted. 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 interviewing engineer 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 ATS. 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 extra context.

This story was especially sad because the CEO paid me a retainer such that I bring them “the best people”. So, I worked extra hard on the role. However, there was zero backing from the employees and hiring engineers to really assess candidates that I sent. 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 client 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 guy 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 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.

So after interview-day one person stood up and made it clear that the candidate did not know/could not explain the Bayesian formula and therefore can not be hired.

Everyone seemed to not really care but the tech lead. The only person having skin-in-the-game. He would be the one reporting to the CEO that they did not hire anyone since months. So he used his veto rights and made it clear that not knowing trivia by heart is a stupid reason to reject engineers. They hired the person. It turned out, this engineer was the most valuable resource the company hired in the whole year.

The tech lead turned out to be right: The candidate installed his dev-environment in record-time and squashed three bugs on the first day. After all everyone was super impressed and very happy that they hired the person.

Horror-Story 3: Programmer aced the interview but was FORGOTTEN by HR after the last interview round.

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. The HR that worked remotely in another country did not 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 (if no one follows up, it does not mean no). A typical engineering mistake.

Two months later, I approached the candidate again asking what is going on. Neither he, nor the HR could understand why no one has proceeded with him further. So I email-CC-ed all the people involved asking if we can finalise the process.

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

Two people on HN mentioned the effect that sometimes people don’t hire others because they are too good (comment 1comment 2). I observed this as well and added a fourth horror story.

I had this case where I still think the interviewee was better than the interviewer. The candidate was a 22 yr old open-source contributing child-prodigy programmer would be rejected at the code-screening phase by a guy, let’s call him “Jon”. I was so shocked by the rejection that I setup a call to discuss it. We had a phone call with three people: HR, Jon and me.

The reasons Jon gave during the call why he rejected the candidate were all a bit funny and I could not tell if Jon was serious or not. Also, Jon’s Github contributions, pull requests and other things were rather shitty, but he was responsible for the code screenings, so I had to listen to his feedback.

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). This pissed me of so much that I started to get defensive and mentioned that the quality of the candidates code is better than Jon’s stuff on Github; HR stopped me right there and told me that “we’re not assessing Jon here”. It was very hard to say anthing at this point so I just switched topics and ended the call.

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; both individual interviewers and companies as a whole might be afraid of hiring candidates who know more or are more skilled than themselves. Rejecting because a candidate is too good is not acceptable; so one way is to focus in on some area where the candidate is weak or different. Here an article on how this was allegedly done in academia in the Soviet Union.

Learnings

Recruiting is messier than you think. If you are rejected, 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. We match people with jobs for aliving and — apart from founders — we have most skin in the game 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, shoot me an email at iwan@coderfit.com. We match software engineer with SMEs and venture-backend startups located in Zurich (we are expanding to New York and Munich right now!). You pair program with an expert in your stack and skip boring phone screens.

1 reply
  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

Trackbacks & Pingbacks

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 *