How to Conduct an Interview for a Senior Developer Role


In a previous post, I advised how to get through an interview as a candidate. This post brings you the view from the other side of the desk. Here, I discuss how to interview an outside candidate for a senior dev role, with a given job spec that you have some experience in.

Most interview processes are split into some type of automated coding tests, followed by interviews with appropriate staff. You are probably doing interviews from within an organisation — possibly because the candidate will join your team.

Resume Review and Screen Testing

You will initially work from the candidate’s CV/resume. If you familiarise yourself with where the candidate draws their experience from, the interview will be more relaxed.

I am slightly suspicious of screen-based tests, but they do the job of filtering out people who aren’t appropriate to proceed with the rest of the process. I use a roster of about 50 questions, so it can take over an hour — reason enough to filter candidates beforehand. I try to ask different types of questions, so that the candidate doesn’t get stuck in a regurgitation rut. For example, I mix in general estimate questions or news topics, just to ensure the candidate is suitably stirred (if not actually shaken). A question should lean into a topic, and not just have a one line answer. Don’t focus just on topics about the job spec, as we all know that could change tomorrow. You are looking for experienced devs who can step up to your organisation’s needs.

You will of course have your own areas of interest that may no longer reflect what other developers know. After a few interviews, you will need to retire some questions on your question roster if they don’t induce a response. For example, I drew a blank with ‘what do you understand by eventual consistency’. Just rephrase the question.

Interviewing Strategy

Now for the face-to-face interview. When doing a technical interview of this kind, you are looking for quality of knowledge, range of experience, as well as attitude towards collaboration. And yes, collaboration is a technical quality, not just a social one.

Allow the candidate to fashion the answer narrative themselves. You are looking for precise and efficient definitions, but expansive answers later as the topic develops. While you should stick to your role as interviewer, the vibe should remain conversational and affirmative (that is, not aggressive). Occasionally opening the kimono (e.g. ‘many start slowly with this one!’ ) can help the candidate relax a little. You are technically an interrogator, but the candidate is not on trial.

Although hallucinations are often associated with generative AI, they are quite common coming from candidates during an interview. In fact, it is partly the reason why some researchers think AI might be getting closer to human mentation. When a candidate is forming their answer they might start ad libbing or ‘blathering’ as they go. This means that keywords get lost in irrelevant material.

As an interviewer, you should try to stop this by refocusing the candidate on one area until their recall has caught up with the question. It does not necessarily indicate a lack of knowledge; more likely they are combining different memories. Factually incorrect answers should obviously indicate that it is time to move to the next question.

A Few Questions on the Roster

I’ll go through example questions that you might give a senior dev, and how they could develop. If they don’t know, or start incorrectly, then move on immediately. Remember, you are trying to assess how they know what they know — not what they don’t know.

Example: “What do you understand by the term REST?”

While it is partly an academic term, most candidates will have an idea about the definition. If they know that it stands for Representational State Transfer, that is a bonus. But what you need quickly from the candidate is recognition of where this term lies within computing: that this is some type of architecture for communication on the web.

Of course, you are looking for certain keywords. Explicitly the main verbs GET, POST, DELETE and PUT. If they mention PATCH, that is a bonus. The term ‘stateless’ should also be mentioned.

A guide question might be “What do you understand by the term CRUD?” This should lead them back towards the idea of REST verbs as being analogous to database operations.

You might want to ask the candidate for examples of when they have implemented a REST system — obviously this should reflect their CV evidence. If the job spec involves Rails or Django, then this is probably an expected question.

A simple stretch question would be “why do many organisations stop PUT and DELETE requests?” What you’re looking for is a simple recognition of the security concerns with operations that can erase data.

Let’s just summarise the stages of the conversation based on the terms above:

  • The candidate should place the concept or component in the question in context with the pantheon of computing, and provide a simple definition.
  • The answer should contain keywords that indicate a practical understanding.
  • The interviewer can use guide questions to keep the candidate on course.
  • Examples from the candidate’s experience help cement trust in the answer.
  • Use stretch questions to examine the range of the candidates knowledge.

Example: “What do you understand by Regex?”

Again, the candidate must quickly place this in the correct realm; in this case “text processing” and “tools”. You would expect them to know that this stands for Regular Expression.

The keywords ‘pattern’ and ‘special characters’ should appear in the answer. If the candidate doesn’t use the term ‘pattern’, then you can guide them to reflect on what the string of symbols represents.

The candidate should offer an example of where regex is strong (parsing an email format for example) and perhaps describe a simple pattern.

A fun stretch question is “why is regex inappropriate for processing HTML?”. Even if the candidate hasn’t any direct experience in this, they can usually work it out.

Example: “What do you understand by Epic, Story and Task”

How many agile questions you ask does depends on the employer and job spec, but a senior dev has to engage directly with agile (or its equivalent) because that is the frontline for collaboration. In this case, the definitions may come out in any order.

The keywords here are ‘stakeholder’, ‘product owner’, ‘planning’ and ‘implementation’, but you are really looking for the collaborative relationships between the terms. Candidates who fail to mention any human relationships have probably never actually practiced agile.

Guide questions here will help the candidate place the question within an operating business, with non-technical colleagues who need to know when work will be finished.

You can give the candidate a theoretical feature to implement, and see how they break it down.

Stretch questions on agile will usually focus on the meanings of the ceremonies. For example, how would you check the tasks are being done on time.

Collating the Responses

Your final job is to compile a report which gives a green, yellow or red mark for each of the candidate’s answers. A yellow just means a satisfactory response was given after some coaxing, or an nswer that lacked a few details. You can also see if there are areas the candidate answered few questions in.

But it might be that all is required from you is a yes / no for the candidate to proceed through to the next interview process. Also reflect on your own process — check how many questions you got through, and if any didn’t really give the candidate a chance to expand. And get ready for the next interview — there will probably be many.

Group Created with Sketch.



Source link

Leave a Comment