Interviewing is hard
If anyone has ever done interviewing for a technical role, it’s hard. Really hard.
This might seem obvious but there are still loads of people who moan about “this interview sucked” and not because they didn’t like the people or the company vibe but because they dared to ask them a technical question and usually the candidate didn’t know the answer and therefore took the view that, “I am clever, I didn’t know the answer, therefore this interview sucked”. This is sometimes justified with things like, “I could just Google it”, or “I have never used one of those in 20 years”.
If you were really intelligent, you would put yourselves in the interviewers shoes and think about why they might dare to ask you technical questions in an interview for a technical position.
What was it that someone said, I only look for two things in a candidate, “clever and gets sht done”. Clever is good because they will work out good ways to do things and gets sht done because a clever person who is not pragmatic will take forever to do anything. Now how can we tell if someone is clever? We could ask them questions like:
“What are the trade-offs when choosing a data collection?” “What is CSRF and how do we protect against it?” “What is wrong with this snippet of code?”
Now, if someone said to you, “I don’t know any of the answers but I could just Google it”, would that cut it? Would that say that this person is clever? Well assuming we are asking more than 3 questions, no it would not. Could they still be valuable to the company? Of course they could. Could they be good in other areas? Hopefully, but how can I know as an interviewer? I don’t know you, I don’t know why you left your last company, I don’t know if you break code because you think you know more than you actually do, what would you prefer? “Out of 10, how clever are you?”, “8”. “Great, you’re hired”
Now, of course, it possible to ask bad or irrelevant questions. If you are asking web developers to implement a bubble sort, you are asking for trouble because a web developer almost never has to do this, especially in most high-level languages so unless you are a data scientific company, this is not necessarily a good idea but questions about what you do do and perhaps things that have caught you out as a team before might be good, especially if this person calls themselves senior and wants to earn 3 x the national average wage+
Interviewers are rarely that stupid that they would expect you to get every question right but if you can’t get a good number of relevant questions correct or close, are you really the right person for this job? I honestly don’t care that you can Google it. So can I and you know what? It can take days to Google how to do something and in the worst-case you don’t even understand the validity of a solution when you copy it into your codebase so I would much rather that people already knew this stuff.
The Technical Test
So then we get to a technical test, usually online but not necessarily. Again, these are usually for screening, you rarely get scored out of 100 and need to achieve a passmark. I remember failing one of these for an interview and feeling aggreived because “I am clever” but then afterwards I thought about how others would judge me from what I did. I dived into the tests (with people observing) and didn’t, for example, write some unit tests first, which might have helped. Then there were probably elementary mistakes like integer divison truncating a decimal which to be honest, if I was “top drawer” were mistakes I shouldn’t have made. I could and did solve those quite quickly but the picture I painted was that I was a bit too code-first and ask questions later.
Don’t bemoan it, embrace it. If you prepare, you should be able to pass these unless they are at the edge of your ability and if they are, go and practice some more and then go back. Be a professional not a complainer.
The Coding Exercise
In some interviews, they ask you to write some code, perhaps over a week. I tried this once and it worked really well and we paid the candidate to do it. Why did we ask someone to do it? I wasn’t convinced that they had the skills for the position they were applying for. I asked them to write something for us and I absolutely wanted it to be something that we could use because it would literally look like their work on day 1. I told them that I was unsure and they had the choice to do it or not, they did the work. I was then looking for what we wanted in a senior. High quality code, some good tests, asking important questions instead of assuming. What I got back was fairly average and I did a code-review with the person and took them through it. They thanked me for the opportunity, got paid for their time and hopefully went away better for the experience.
But still, people complain about being asked to do this. If you want the job why not? Don’t do it for free but if you can’t tick the right boxes for the company, it is right they don’t take you on. They don’t owe you the job and maybe if you are complaining all the time, perhaps they shouldn’t employ you because you destroy instead of build. If you can’t take some honest feedback or have a good technical discussion, are you ready to be in a high-performing team who needs to get stuff done?
All of this is experience. If you really want a job, you need to jump through the hoops. Do your homework though and get your questions ready because if you are asked to do something you don’t want to do, if you already want out, it’s easy - don’t do the task. If, however, it still looks like a place to work then show them that you are passionate enough, that you love the work, that you can do it well, that you ask questions and get feedback with humility and please, please, never say, “I would just Google it”!