A guide to technical interviews
Technical interviews can be a daunting experience. As you think about your upcoming interview, you are likely to be worried about what will take place. You don’t control the interview process; you don’t know what questions will be asked or what form the technical tests will take.
All these unknowns cause anxiety and being overly anxious is not an ideal state to go into an interview. If you can remove unknowns, you will feel more in control and confident of your abilities. The only way to do this, is to prepare. The more preparation you do, the more confident you will become.
During my 28 year career in the technology sector, I have had 20 interviews and received 18 job offers. That’s a 90% success rate. I believe the main reason for this success is down to the amount of preparation I do before an interview.
I only interview for jobs I really want, so I do everything I can think of to prepare properly. I don’t want to leave anything to chance.
Caveat
I don’t work in Silicon Valley or hire for companies that do. This article will not properly prepare you for the 7–10 rounds of intensive interviews and technical tests these companies perform.
Successful people — prepare
“By failing to prepare, you are preparing to fail.” — Benjamin Franklin
“It usually takes more than three weeks to prepare a good impromptu speech” — Mark Twain
1. How many interviews or rounds will there be?
The demands on your time and mental agility will vary depending on how intensive the interview process is. The first thing you will want to know is how the interview process will be structured.
You will have multiple rounds of interviews. Each round could have one or multiple interviews. I define around as a single block of time (e.g. 9–11am) on a given day.
You want to know:
How many rounds there will be
How many interviews are in a round
Are there any themes to the rounds? e.g. is one round all technical and another behavioural?
Where the interviews will take place. Will they be face to face? online? over the phone?
How long each interview is
How long they expect the entire interview process to take
2. What is the purpose and format of each interview?
The company interviewing you will gather as much information as possible to answer one question — “Is this the best person for this job”?
Assigning a different purpose to an interview or changing the interview format will help them collect more data on you.
Interview purpose
Find out what the purpose of each interview is, so you have the right context.
A technical interview will differ from an interview that is assessing your cultural fit into a team. The interview could cover both. The important thing is for you to know what to expect.
Interview format
The general interview format will be sitting down with your interviewers (remotely or in person) and answering a series of questions. There are several variations to this format, such as:
Being asked to draw a solution on a whiteboard. This could be for a problem you have just been given or recalling a system you have worked on
Writing code (solo or pair) to solve a problem
Present on a topic you had to prepare beforehand, or one you have to make up on the spot
Leading your prospective team through a problem solving exercise
Role playing a situation
Taking part in “speed dating” interviews, where you have 10 minute intensive interviews with a series of people
This is not exhaustive. There could be many other ways to change the format of an interview. Some of these could be disastrous for you if you were not aware beforehand.
Gather as much information from the hiring manager as you can about any of these “alternative” formats. Practise them as best you can. Ideally practise them with a pretend interview panel like your friends, partner or anybody who will help you.
3. Who will interview you? What are their names and roles?
Ask who will interview you and what their roles are so you can research. The internet can reveal a wealth of information to help you come up with potential questions they could ask you.
LinkedIn is likely to provide you with the most relevant information, but the other social media platforms can also reveal background information on your inquisitors.
Using information about a person’s role
Let’s assume the following 3 roles will interview you:
- Technical Lead
- Product Owner
- Project Manager
What can you deduce from the makeup of this interview panel? What types of questions will they ask? From the roles alone, you can make a good guess at the questions:
Technical Lead — deep dive into your technical capabilities and best engineering practices
Product Owner — your experience working on products in an agile team
Project Manager — your experience meeting project timelines
This interview panel also helps you plan questions of your own — see the final section on “questions for your employer”.
Using information from LinkedIn
By looking at somebody’s LinkedIn profile, you get an overview of their career journey and areas of knowledge. If you read through their recommendations, skills and experience you can form a good mental picture of them.
For example, the Tech Lead may have numerous endorsements for their skills in JavaScript. The recommendations talk about their amazing front-end development skills and outgoing personality. Their career history shows they founded a web agency with 10 employees they ran for 5 years.
This information tells you where their technical expertise is. They started and ran their own business so will have commercial, marketing and sales experience. They will probably think about the business value of the code the team produces, etc.
You can see that this is a different type of Tech Lead to one that has only ever followed a path as a developer within a company. This background information will already have your brain searching for different interview questions.
For each person interviewing you, look them up on LinkedIn and build a profile. Think about what their areas of expertise and interest will be.
Think about the role responsibilities
Each role has a different set of responsibilities. The responsibilities for a Tech Lead are different to those of a Product Owner. Try to see the world from the point of view of each person interviewing you. Think about what each is trying to achieve in their job and how it relates to the role they are interviewing you for.
4. Is there any prep you can do?
A simple but overlooked way to prepare, is to ask. It is perfectly acceptable to ask the hiring manager or recruiter a variation of:
“Is there anything else I can do to prepare for the interview?”
“If you were preparing for this interview, what would you do?”
“What preparation can I do to give me the best chance of success?”
“What problems are you facing, that you hope this role will address?”
If a candidate were to ask me one of these questions before their interview — I would give them an honest answer. I would want them to be as well prepared as possible so I get to see the best they have to offer.
5. What form will the technical test take?
As you are applying for a technical role, you will have to take a technical test. The test could take many formats and there could be more than one. The tests can be take home tests or performed under interview conditions in person or online.
If I am hiring a software developer, I want to test their coding ability in relation to the role they are being hired for. My ideal format for this test is to have the candidate sit with their potential team in our office and perform a 2–4 hour coding exercise.This is the most useful test as it simulates our working environment. It gives the candidate an opportunity to ask questions of the team and for the team to get a sense of what it is like to work with them.
However, this type of test cannot always be accommodated due to everyone’s schedule. It more often takes the format of a “take-home test” that the candidate does in their own time.
In my 15 years of hiring developers in the UK and Australia I have never been in an interview where we asked someone to write the code for an algorithm on a whiteboard. For this reason I am not going to give you any links to books or articles that tell you how to “ace” this type of test. You write your algorithms sitting in front of your computer and so this is the best way to test you.
If you are going to be given a particular technical test during the interview, make sure you are clear beforehand so you can research and practice. If you will be tested on hand writing algorithms on a whiteboard, you would want to be prepared.
6. Is there a position description?
Most companies will have position descriptions for the roles they are hiring. The position description will go into much greater detail than the job advert about the responsibilities of the role. It may also have information about the key people the role interacts with and any metrics they measure the role on.
Create a list of sample questions and practice
By this stage you will have collected a lot of information about the people interviewing you and the role you are applying for. It’s time to create a list of possible questions they will ask you.
You don’t know the exact questions they will ask you, but you know the types of questions.
Role specific questions
The internet has a wealth of information about questions you are likely to be asked. Search Google for interview questions specific to your role.
Company specific questions
Glass Door may have interview questions from the company you are interviewing for. Google for other sites that provide the same.
Interviewer specific questions
You have done your research into who will interview you and created profiles around them. Put yourself in their shoes, performing their job, with their responsibilities — What questions would they ask you?
Job specific questions
The job you applied for had a specific list of requirements. You can guarantee someone will ask you in depth about these.
For example, if one the mandatory requirements was “Demonstrated experience in designing and building for Microservice architectures”. You know they will ask you a series of questions around this.
Questions about your experience
Your resume will be referenced a lot during the interview as it provides a wealth of information for the interviewers to dig into.
If you read my earlier article on how to write your resume, you will have prepared yourself well for this section. Your experience will be detailed, clear and concise.
However, if you have vague statements like “Migrated applications to AWS”, you leave yourself open to a lot of probing questions such as:
What applications did you migrate?
What was the exact role you performed during the migration?
What problems did you face and how did you overcome them?
Did you re-architect the applications to take advantage of AWS features? If so — what did you do?
If you have answers prepared for these questions, you will sound confident and this will give your interviewers confidence in your knowledge.
If you give vague answers, your interviewers won’t be satisfied. They will ask more questions to gain clarity on your depth of knowledge. At this point you could lose control of the interview.
Your experience should be the strongest area of knowledge you bring to the interview. Nobody knows what you have done in your career better than you do. If you come across as being vague in your accomplishments, your interviewers can only conclude that you are exaggerating what you have done and they will lose trust in you.
Behavioural questions
They will ask you questions about how you deal with certain situations, how you cope under stress, how you deal with failure, change and uncertainty. These questions are designed to probe how you deal with the ever-changing situation we call “life”. Google “Behavioural interview questions” and prepare your answers.
They do not design these questions to find out you are some kind of superhero that doesn’t fail or ever get frustrated. They are asked to find out how you deal with these inevitable situations. The people working with you will want to know what to expect of you in these situations.
Questions for your employer
Finally — create a list of questions for your potential employer. It’s common for candidates not to ask any questions or only ask one or two. If you are serious about the role and the company, you should have a long list. You are deciding if you will commit the next X years of your life in a relationship with these people. You want to come out of the interview with as clear a picture as possible of what your daily life would be like.
Don’t forget that the company is also doing a sales pitch to try to attract you. You want to find out what it’s really like to work there rather than a glorified image.
Areas to consider are:
How does the company make money and how does it affect your role? e.g. If this is a self-funded, sales driven web agency — could you get moved mid-project if a more important sale comes in?
What training or courses have the people in your team been on in the last 12 months?
The makeup of the interview panel — Why do you have a Product Owner (Agile delivery) and a Project Manager (Waterfall delivery)? How does your delivery process really work?
How many hours a day do the developers in the team spend coding? In meetings?
How do they measure the quality of their codebase? What % has unit tests?
What is their development process? What best practices do they use?
Yes — this is a lot of work to do beforehand. If this is a job you really want, then it will be worth the effort. If you are unsuccessful in the interview, you will be able to re-use a lot of the preparation you did for the next interview.
Comments
Post a Comment