A better interview experience
Jack Finlay - January 12, 2021
This is a reflection on the best software engineering interviews I have taken part in. Previously I wrote about the worst interview I have experienced; This will be quite the opposite. Here I explore all the things that I felt made an interview and assessment great. The aim is to help those planning interviews to plan more effective assessments, for both the candidate and the employer. While I have only observed interviews from the perspective of the employer, I have been through many interviews from the candidate’s side.
My favourite way to take a technical assessment is the homework, or take-home exercise. This gives the best opportunity to allow follow up and feedback. I’ve taken a few of these. They have gone both well and badly for me. But overall, they have been the most fun. These activities are engaging as they give you a taste of the work you would be doing. They also give you an opportunity to show off how you actually like to write code. Take-home exercises allow you to ask questions and go through the exercise with someone from the company when you are finished. This feedback is key and allows you to judge what the organisation would be like to work with.
There is a difference between a take-home exercise and free work. Though I haven’t experienced it myself, I have heard rumblings and grumbles, from others in the industry, of employers taking advantage of candidates. In an assessment, there should most definitely be questions and tasks that actively mirror what the company does day-to-day, but they cannot be work that you would normally assign someone in the team to do.
Alongside a good technical assessment should be an interview where you will go through the technical assessment and talk about your design decisions and get some critique. This is to check that you actually did the assessment yourself, and to allow the interviewers to delve into some parts that they may have had questions about.
Whiteboard-style, and trivia-based interviews - think, “How many ping-pong balls will fit in an aeroplane?” - are no fun for most people. They mostly serve to allow egos to be flexed, usually on the side of the interviewers. There’s a growing movement against these type of interviews.
A good interviewer will ask probing questions that allow them to dig deeper into your knowledge of a subject. You can identify these pretty easily. They will first get you to answer a simple question. From there you will work your way to a lower level, getting more and more specific as the questions progess. An example could be starting with something as simple as “What’s the difference between a clustered and non-clustered index in a SQL database?“. From here you would probably be asked “So how could a non-clustered index be implemented?“. You can go on further than this and really get a good understanding of the candidate’s depth of knowledge of the topic at hand. As opposed to trivia-based interviews, a good interviewer will make sure that they are observing a candidates actual knowledge rather than just regurgitative recall of facts.
It’s not only technical ability that matters when it comes to finding a job or placing a candidate. There is a need to vet people from a culture and fit standpoint. You don’t want someone on your team who will be a bad team-player, and you don’t want to work for an organisation that has a terrible culture.
From the candidates perspective, it’s important to find a company that fits you, and not just to take any old job that comes along. There are unfortunately companies out there that have an awful internal culture, whilst being perceived externally as somewhere great to work.
The best companies that I have interviewed with have all had interviews that focus on how the candidate will fit in with the team that is already established. My favourite way of doing this was with with an informal chat in a cafe near the office. I have found that companies that don’t give an opportunity for the candidate to scope out the team from a cultural standpoint have one thing in commmon: all have been ones that I’ve not really been interested in taking an offer for after the other interview stages.
This is a two-way opportunity for both the candidate and the team to learn about one another. It needs to be a mutual decision - candidates have a right to say that they don’t think the team is a good fit for them!
I’ve mentioned a few things that will make an interview a great experience for candidates and employers alike. The main thing is that employers need to make sure that the process is engaging for candidates, and that they get the right kind of signals to indicate a good fit from mulitple angles: technical ability, technical knowledge, and cultural fit.
Jack Finlay - Software Engineer in Melbourne, Australia. Exploring the writing process and developing my skills through the occasional article on life as a programmer. Follow me on Twitter for updates.