Interviews are really hard

Anyone who has ever interviewed for a Developer knows the problem: There are not enough good candidates, but the market salary is high and we don’t want to risk a bad hire. At the same time, we want interviews to show the best of people and we want to give them the benefit of the doubt but that in itself is also an anti-pattern.

Most Developers are not objective about their ability

If you are a Developer, how good are you with respect to the rest of the market? The answer is that you probably don’t know. I think I am a pretty decent Developer, although I am certainly not the best but am I top 10%? top 20% or only top 50%?

Since I don’t really know, what happens when I apply for a job? I either ask for what I think I am worth or I ask what I think I can get. Since I do not objectively know how good I am, the first option is not a reliable guide for the recruiter and if I ask for the second, I am potentially being dishonest and I don’t care whether the employer gets value for money.

So from the Recruiter’s point of view, imagine someone applies for a Developer job and they ask for £90K per year, a large salary for the UK, although not unheard of. I would actually pay this if the person is amazing but I don’t really know right? They are asking for that, most of the time, due to the above two reasons and if they have been paid that before, it cements their opionion that they are “worth” it.


We are then left with the difficult process of the Interview. If we make it too long and complicated, then we risk not attracting enough talent, although I would also like to think that people who really love what we are doing will push through that (like they do at most FANG companies) but realistically, they won’t. On the other hand, if we don’t do technical tests, questioning, etc. then we risk not seeing something that could very quickly become a problem.

The technical

Developers can get really touchy about their technical ability. There are a number of options you can use. Screening tests are simple tests, usually taken online that just make sure you are in the correct ballpark. Although it is another step in the process, it can be done at a convenient time and can give you surprising information. One of our applicants took 5 minutes to split a string in C#, something you can do in 1 line of code. Says a lot. They won’t easily tell the good from the amazing though, something you need at the more Senior positions.

The second thing you could do is the online large test, most often done with supervision during the interview so they can ask questions and you can help them. It might be something like, “Find out why this code is not producing the correct results”, will take maybe up to 30 minutes, and will give you a good idea of their fluency with both the tooling you use and even web searching, which you would generally allow them to do for anything other than a simple test (anyone remember the syntax for Regex.Split?)

The third option is just to ask them technical questions. This can feel less fraught than a coding test but does require people to have good recall and explanation skills.

The truth is, I have heard Developers complain about all parts of different interview processes. They complain about nerves, about the fact that they “do” understand something but couldn’t explain it. On the other hand, if you think an Employer is just going to take your word for it and pay you a large salary even though in most cases it is hard to measure performance for Developers, then good luck!

To me, particularly for Senior Developers, I expect you to be able to handle nerves, to articulate easily, to recall answers to things that you claim you know about but I suspect that people have been taught to put things on your CV that you have worked on at any point in your career regardless of how much you know about it. That’s fine if someone says they know a little about SQL Server from 10 years ago but don’t claim you are proficient if you can’t explain what a Query Execution Plan is or how to use the SQL Profiler.

I prefer the third option because it allows a lot of flexibility to tailor the questions to the skills of the candidate. Clearly, not everyone needs to be a 5/5 on dotnet core or SQL Server but some people do and you need to be 4/5 or 5/5 on some things if you are expected to be taken seriously as a Senior. For this reason, if they claim they are 5/5, they will be asked advanced questions and if they can’t answer any (it has happened), then I will question their self-awareness. Who would claim “I am 5/5, which means I am a subject matter expert…” and then not know some fairly basic questions? Someone who doesn’t have an objective measure of their ability (which is most of us) but someone who veers towards thinking they are better than they are since others might vote themselves lower.

The soft skills

Both the initial call we have with a candidate and the technical interview are also really useful opportunities to judge how well someone communicates, how well they listen, how polite they are etc. I even had a candidate who was rude to me on a message because I cautioned that he might not have the skills we need but was happy to have the interview if he wanted. Even though we had only booked the interview and it was remote, he pretty much told me that “maybe I should have thought about that before booking the interview”. Not a good personality type.

Although I appreciate that some people are nervous, we do make a point of making people feel comfortable, of telling them that if they don’t understand the question, they can ask and that if they don’t quite say what we are looking for, we will help them out but ultimately, if someone can’t deal with the stress of talking to a stranger about something they are claiming to be their profession, then how will they be when the CEO pushes to get something fixed or they are in the middle of something being disturbed by a Junior who needs help with something?

Are we Mechanics or Doctors?

If you are a Mechanic (I say this loosely!), in many cases once you are qualified, that’s it. Unless you need to qualify to use some new piece of equipment, you never pick up a book again. You gain experience on the job and as long as no-one changes the internal combustion engine that much, you should be fine. However, if that mechanic tries to get a job at McClaren, they might ask, “What do you know about computer diagnostics and tuning?” and the answer might be, “we never learned that in college”, which might be true but they probably won’t get the job.

If you are a Doctor, you mostly specialise and you don’t get to freewheel through your career. You go on regular training courses, depending on your speciality and the requirements of your employer and even though you might still choose to do something the way you have always done it, you would still know about the “new way” of doing it from your training. If you moved to another hospital and they asked you about this new way, at worst you would say, “I don’t do it but I know what it is” and at best, “Yeah, we’ve already changed to the new way”. What wouldn’t be acceptable is “I’ve never heard of this new way”, which says that the Doctor doesn’t care or they work for someone who doesn’t care or somehow they have avoided their professional development.

My concern is that many Developers want Doctors money but they want the easier life of the mechanic who gets to go home at 5 and not think about work until the next day. Developers then get upset when you ask, “why don’t you know anything about Docker?” because the Mechanic claims, “we never used those where I worked before” but the Doctor would say, “I did some training on that even though we didn’t use it. I learned some things about it and why it might be used”.

Top tips for the Interview

  1. Make some effort before you turn up. Go through the website, not for “keywords” but to understand what the company does and what might make you want to work there or not.
  2. If you care about pensions or promotion or remote working etc. then you will need to ask or clarify this, otherwise if you say, “I have no questions” I get a little nervous that you haven’t really thought about it.
  3. Think about your own red flags. Hate legacy code? Ask about it. Had bad experiences with Scrum? Ask about it. I don’t mind if the answer means you don’t want to work here, I would rather you know that before I have committed lots of time.
  4. Really think about what gives your CV value. Don’t just list 50 skills. I probably won’t care about VAX or VBa so don’t make them as prominent. One way is perhaps score yourself out of 5 for each of your main skills so I get an idea.
  5. Communicate clearly before you get to the interview. If a time slot is difficult, tell me. I might be able to move it but if you turn up late and then say that your bus was late, it is disrespectful.
  6. Don’t blag things. Think about what you need to say before speaking. I might ask you, “What is a query execution plan”. You might have a good concise answer but if not, don’t umm and arr. It waste’s time and forces me to interupt you. If you know it is something in SSMS that shows you various statistics and that’s all you know, say so. If it is a deal-breaker then you won’t succeed by trying to make it up as you go along.
  7. Have a good idea of the salary you want. Sometimes I ask people and they joke, “as much as I can get”, because that isn’t mature. The question is how much are you worth which isn’t about how much money we have in the bank but about how much money will make you meet expectations and keep everyone happy. If you pitch too high because you “might get away with it”, all that happens is you will not meet expectations, you might even fail probation but at best, you end up not getting pay rises for a long time because you are not good enough and aren’t trusted to do some of the more fun things like new applications.
  8. You are not a good fit everywhere. It might just be a personality thing with your new team or boss but don’t sweat it. You are not owed a job anywhere and you won’t always get an offer everywhere you apply for. Ask for feedback but you won’t always get it.
  9. If you are really struggling to get interviews or offers, ask a peer for help. Is your CV bad? Are you overselling your skillset or asking for too much money? Do you have good general knowledge but no specialism?