This post is a little different from what I usually write. I want to preface by saying that I’m not going to talk about the knowledge and skills needed to crack technical interviews - they are very important, but are also specific to the job role you are applying to, and the stage of your career. I compiled some resources for a few such roles in computer engineering in this post, if that’s what you are looking for:
When I had finalized my plans to move to the US for graduate school, I started to proactively apply for internships. Even before I landed here, a recruiter from what was at that time my “dream company” reached out to me, and set up interviews pretty soon. It was perfect - I had the skills and experience for the role, and I had prepared quite well. At least I thought so…
It’s been about 3 years since that interview, but I still remember that day very clearly. I completely froze during the interview. It wasn’t the hardest interview I have given. It wasn’t even the least prepared I was. And yet, it was my worst interview. Looking back, it hasn’t made too much of a difference, I’m happy that things panned out the way they did for me. But I’ve always wondered what happened on that day. Was it me? Was it a poorly conducted interview?
Recently, I conducted a few mock interviews for my alma mater. In preparation, I spoke to some experienced interviewers, and also reviewed some accounts of good and bad interviews. Being on the other side gave me more perspective on what makes an interview good - both for the interviewer and interviewee. Surprisingly, it’s less about how knowledgeable each side is - certain behavioral aspects play a key role. This post is centered around these aspects of a technical interview.
Who should read this?
I know that a lot of people reading this would be interviewees, not interviewers. As interviewees, we are conditioned to believe that the fate of an interview lies solely in our hands. I don’t think this is true - it’s just that interviewers aren’t evaluated to the same degree.
A lot of interviewers brag about the fact that most interviewees fail their round. I’ve found this to be quite amusing. Interviewers assume that their interviews are technically advanced and the quality of candidates is low, but that’s hardly ever the truth. If a lot of interviewees struggle to answer your questions, there is something wrong with your interviewing style.
I know this post would reach a lot of interviewees, but I’m writing this in the hope that it also reaches some interviewers.
The six ingredients that make a good interview
1. Perfect your pitch
Very often, interviewees start their interview by introducing themselves. When I was interviewing, I think I handled this question quite poorly - I had a good number of projects on my resume, and I thought the best idea is to make them the stars. I went into the technicalities of my projects very quickly - after all, it was a technical interview. But from my experiences being on the other side, I realize how pointless this is. As an interviewee, you need to remember that no one cares as much about your projects as you do - so the minor technical details that you find fascinating are not going to impress anyone.
Some of the best candidates I interviewed approached this question very differently - they had a simple, but impressive pitch that spoke about themselves. Say you are someone with projects in computer architecture, and interned in a government funded lab, here’s one example each for a bad, and good pitch:
Bad pitch: Talk about the technical details in each of the projects (basically reading out your resume)
Good pitch: Talk about the importance of computer architecture for the future of your country, and the role you want to play in that
It doesn’t matter if you think your experiences are ordinary - every story is unique, and crafting a good story can completely change the tone of the rest of the interview.
Interviewees usually figure this out over time, but a lot of interviewers forget that they need to pitch too. I can’t tell you the number of times this does not happen. I don’t think it is enough for interviewers to ask an open ended question like “do you have anything you want to ask me.” Interviewers should start the interview by setting expectations - about the interview, the job, and the company. I would go one step further to carefully review the candidate’s resume and mention what aspects would be a great fit for the team.
I have given so many interviews where I have no clue what is expected of me if I join the team, and whether they even care if I join. A short pitch can make a candidate feel special. Taking a few minutes to do this can make the difference between good candidates joining your team, or passing up your offer. Remember that good candidates will always have options, and their decision won’t always be driven by the money offered. Hiring is the most important aspect of a team, and as an interviewer you have an opportunity to attract the best talent.
2. Don’t experiment too much
When I was taking mock interviews, I experimented with the way I framed questions. (Part of me was already thinking about writing a post like this.) I realized that too much experimentation as an interviewer is not a good thing - it will result in an unfair evaluation. Me, and a lot of others I talk to, discuss how boring the interview format is, and how we would design a very interesting interview when we get the opportunity. But it’s important to understand why some interviews are the way they are: standardization is the best way to ensure fairness across candidates.
If I ask candidate A a standard textbook question, but I reframe the question to mimic a real life scenario when I interview candidate B - candidate B may have the more interesting interview experience, but the vagueness of the format will also make it unfair if they cannot answer the question correctly. So my suggestion is to avoid experimenting too much, unless you are sure you can replicate it across multiple candidates. It is important to remember this as an interviewee too. Answering technical questions is very different from the pitch I mentioned previously - here, uniqueness isn’t rewarded. Sometimes, I have tried to be too cheeky in interviews - using clever analogies, or out of the box terminology to answer basic questions. It has never ended well - in the worst case, I ended up confusing myself and the interviewer. In the best case, I answered one question right. (I don't think creativity gets any brownie points in technical interviews.)
Whether you are an interviewer or an interviewee, follow the advice that Michael Scott gave to Dwight Schrute in “The Office”: Keep It Simple, Stupid.
3. The curse of “the know it all”
This is a problem I noticed while interviewing a lot of smart, knowledgeable, well-prepared candidates. When I asked a question, they made a lot of assumptions about what I might be asking, and went on multiple different tangents. Everything they said was technically correct - the only issue was, it was not what I asked. If I have to evaluate the candidate for the question, I would still have to say that the question wasn’t answered correctly. Therein lies the problem.
Sometimes, interview questions are vague - could be by design, or could be accidental. Even if you know what the answer might be, asking a couple of clarifying questions before jumping in with an answer is a good idea. This could even earn you brownie points - if you actually remind the interviewer of a point they forgot to mention, it is a great sign.
I think the problem of oversharing exists with interviewers too (unfortunately, it goes unchecked.) Some interviewers get into the habit of explaining why the interviewee is wrong (and why they are right.) I know a lot of interviewers who justify this, by saying they want to help the candidate do better in other interviews. I don’t buy this argument; as someone that has been explained to multiple times, I can confidently say that none of it has gone into my head in that moment. Interviews are too short and stressful to be conducive for learning. All you are doing as an interviewer is wasting valuable time that could be spent evaluating other skills of the candidate. If you really care about the candidate learning something, offer to help the candidate on a call or email after the interviews. (I would gladly take up this opportunity to learn, but no one has made that offer - some companies have a policy against this - but let’s not get into this.)
4. Sweat the small stuff
Like a lot of interviews today, the mock interviews I took were remote too. Remote interviews introduce non-uniformity that is often ignored. This includes:
A reliable Internet connection
Clear audio and video
The ability to write and draw something, and share it (preferably on the computer)
I know not everyone has the privilege to invest in the best equipment, but even those who do, sometimes don’t pay enough attention to it. I had a lot of such “tech issues” happen that completely disrupt the flow of the interview. Even if they aren’t completely disruptive, your interviewer cannot evaluate you if they cannot hear you correctly, or cannot understand what you write or draw. You might think these are minor things that don’t affect the eventual interview outcome, but when I asked experienced interviewers, they told me about some interviews where the lack of audio and video clarity resulted in candidates being passed on.
Those who have watched the 2013 movie “The Internship” can relate to what I am saying - don’t take an interview in a loud public setting like Nick and Billy:
Interviewers are guilty of this too - more often than you think. I remember interviews where after a point, I had no choice but to ask the interviewer to change their headphone because their audio kept breaking. If you are using visuals or text to ask questions, ensure that they are clearly visible. And finally, my biggest pet peeve - please, please, please turn on your video during interviews. There’s nothing worse than answering technical questions from an icon on the screen with scratchy audio.
5. Play the player, not the cards
There’s a saying about the best poker players - their strategy depends not on the cards they hold; it depends on the players they are up against. I think it would really help if interviewers and especially interviewees develop the ability to read the person they are talking to.
In my experience, there are three main types of technical interviewers:
The no-nonsense type: is only focused on your technical knowledge
The curious type: like to hear about new and interesting projects and ideas
The manager type: is concerned about whether you are a good fit for the teams needs
If you can make an assessment of the type of interviewer you are talking to, you can shift the tone of the interview to match their expectations - give short but precise answers to the no-nonsense type; talk about interesting projects with the curious type; and show that you have the right skillset to the manager type. This isn’t the easiest skill to master, but will definitely help you leave a better impression.
This skill adds value for an interviewer too - especially if you want to lure a high quality candidate to join your team. Matching the energy of the person you are interviewing will definitely improve the quality of the interview, and provide better insights to make your decision.
6. Don’t be a jerk
I’ve saved the most important point for last. Interviewers and interviewees think of the technical interview as some kind of battle of intellect. In the process, one, or both parties can be jerks.
Interviewers are more notorious for this. I have seen that some interviewers have a tendency to demonstrate their intellectual superiority - in the form of snarky comments, exasperation, and concerning expressions. It could even be something simpler - asking questions like “Are you sure this is right?” when the answer is actually right. (In a vulnerable, emotional state, most interviewees will say “no” to a question like this.) Actions like these in no way contribute to the evaluation of the technical skills of a candidate - they are merely shows of dominance. Since most interviews span multiple rounds, it is possible that a candidate had a bad interview with you, but is still offered the job, and is going to be your future teammate. Do you really want your first interaction to be like this?
If you are an interviewer, always remember that you are the support cast in the interview - it is not your stage to demonstrate anything. Your role is merely to conduct a fair evaluation to help your team hire the right candidate.
In defense of the interviewers, I must say that interviewees can be jerks too. I have heard cases where the interviewer being wrong (which can happen) triggers unpleasant disagreements in the midst of an interview. Even if you are sure you are right, I don’t think having a full blown argument is the right thing to do. Often, candidates are evaluated by the number of questions they answer correctly, so the time you spend arguing is time lost from another question. The better approach would be to table the conversation - you can say that there might be a misunderstanding, and that you would like to visit this question again at the end if time permits. I would not even mind a polite email after the interview with the clarification. (But “polite” is very important here - otherwise it could backfire.)
It’s important to remember that both interviewers and interviewees have the same end goal - to contribute towards the progress of technology. If you stay with this goal long enough, you will cross paths once again. And humans have a tendency to remember negative emotional experiences - a simple technical interview should not be one of those.
So please smile, and have a pleasant technical interview experience.
Love it 🫶🏻