I’ve been interviewing candidates for software engineering roles for a few years as an engineer and as a hiring manager. It is time to share a few tips with candidates on how to prepare for a job interview, avoid common mistakes, and demonstrate their technical and soft skills.

Most tips apply to all interview types: behavioral, coding, design, etc. I hope you find them useful. Best of luck at your next interview!

1. Be Concise When Answering Questions

Aim to fit your answer into 30–90 seconds. Longer answers are difficult to follow for many people, including your interviewers.

Before the interview, spend a few days practicing short answers to common interview questions.

At the interview, if you feel you need to give more details in your answer, it is fine to ask your interviewer whether they need them.

If you realize you’ve been talking for too long, e.g. more than 3 minutes, and your interviewer doesn’t seem to be following anymore, it is okay to stop and ask if they actually need all the details. There is a chance you’ve already provided enough information and your interviewer is just too polite to interrupt you. If the interviewer would still be following, they will most likely ask a specific clarifying question or just ask you to continue.

2. Use STAR Format When Answering Behavioural Questions

If you are not familiar with behavioral interview questions, they sound like: “tell me about a time you made a mistake”, “tell me about a time when you had to persuade your team to make a change”, “tell me about a time when you disagreed with your manager”, and so on. Search for “behavioral interview questions” to find more examples.

Interviewers ask such questions to find out how you have behaved in common work situations in the past and what skills and abilities you have demonstrated. That should give them an idea of what behaviors to expect from you if you join the company.

When answering behavioral questions, use the STAR format. STAR is an acronym for Situation, Task, Action, Result.

In other words, talk about a specific situation from your personal experience. Tell the interviewer what you aimed to accomplish. Explain what actions you took. Finally, tell them what the outcome was.

It is crucial to bring up real examples from your experience, not hypothetical scenarios. That is what the interviewers expect to hear from you. If you can’t come up with an example from your experience, tell your interviewers about that, and only, in that case, speak about hypothetical scenarios.

Before the interview, find some common behavioral questions for software developers online and practice answering them. Aim to spend under 90 seconds on each answer.

3. Maintain a Dialogue With Your Interviewers

Whether you are at a behavioral, coding, or design interview, make sure you are maintaining a dialog with your interviewers.

At a behavioral interview, don’t just answer questions — confirm with your interviewers that your answers have given them what they were after or ask a clarifying question.

At a coding interview, if you are solving a coding challenge in front of the interviewers, make sure you ask clarifying questions, explain your thought process, check whether you are on the right track.

One of the worst things you can do at a coding interview is to jump on the task and start writing code in silence. Your approach to problem-solving at an interview should demonstrate that you are able to collaborate with others efficiently, which includes asking meaningful questions.

As for software/system design interviews, one of their purposes is to confirm that you can work with stakeholders (interviewers in this case) to discover requirements, verify assumptions, propose realistic solutions, and take feedback on board.

If several interviewers are present, include them all in conversation, answer questions from each person. Don’t exclude anyone from the conversation, don’t make them feel left out.

4. Don’t Stretch the Truth About Your Experience

Some developers believe that if they admit they don’t know something at an interview they won’t get a job. As a result, they mention tech, tools, and practices that they have little or no experience with just to impress the interviewers.

This is rarely helpful. On the contrary, it may create an impression that the candidate is either trying to bluff through the interview or is unaware of their knowledge gaps. While the latter may be okay for junior roles, the former may be why you won’t get the job.

Interviewers, particularly interviewers in a bigger organisations, are typically experienced enough to come up with a few probing questions to confirm whether the candidate is bluffing, unaware of knowledge gaps, or is genuinely mistaken.

It is best to be transparent about your experience at an interview. If you haven’t worked with a particular technology, it is fine to mention that. Interviewers rarely meet ideal candidates who have all the skills the potential employer needs. They expect to spend some time on getting any new hire up to speed.

Transparency about their experience as well as awareness of their knowledge gaps are particularly important for senior and lead or staff engineers. You can’t possibly know everything, so you should be aware of what areas you need to rely on your colleagues to achieve the best outcomes.

5. Brush Up on Computer Science Fundamentals

At some stage of the interview process, you’ll get a coding task to check whether you can use basic data structures, produce working code, and analyze its efficiency.

Brush up on the fundamentals of Computer Science to increase your chance of passing this interview. Here is the minimum you may want to cover:

  • Big O notation. Revise how to estimate the time and space requirements of algorithms depending on their input size.

There is plenty of information available online for free on all those topics.

To prepare for coding interviews even better, practice solving coding challenges using online platforms which provide tasks as well as input data so you could check you’ve found an efficient solution.

6. Prepare a Brief Self-Introduction

At each stage of the interview process, you’ll be meeting new people and introducing yourself to them. To make it easier for yourself, have a brief, relevant, and well-rehearsed self-introduction pitch ready.

A good self-introduction will, first of all, help you feel more confident and, secondly, demonstrate your communication skills to your interviewers.

As I mentioned earlier — be concise with the pitch. Aim to fit it into 90 seconds. If it is absolutely necessary, make it two minutes. Longer speeches are difficult to follow. Moreover, the introduction essentially is the warm-up part of the interview to help both sides feel comfortable and set the scene. The more time you make available for questions — the more chances for you to demonstrate your skills and experience and the more chances for your interviewers to build their confidence in you.

Consider preparing two pitches: one for the technical interviewers, and the other for the non-technical ones. In the former, emphasize your technical skills and mention technologies, tools, and platforms you have worked with. In the latter, mention what products you’ve worked on and how you’ve contributed to your organizations.

If you are at the beginning of your career and you are applying for your first or second job, mention what you’d like to achieve professionally in the short term (12–18 months) and what you’ve done to actually make it happen. That will give an idea to your interviewers if you can get up to speed quickly, as your ability to learn and your current skill level would be their main concerns.

If you are an experienced engineer, give an overview of a couple of recent companies you’ve worked for, a couple of most notable projects you’ve contributed to, tech you’re most experienced with, and what you enjoy working on.

When preparing your self-introduction speech, write it down first, then rehearse and refine it. Consider recording a video to see yourself speaking or test it on a friend to make sure that it is informative, relevant, and doesn’t sound artificial.

7. Ask Interviewers What It Is Like To Work There

Usually, at the end of each interview, you’ll have a few minutes to ask interviewers a couple of questions. This is your chance to learn more about what it is like to work for that company.

It is best to have a few relevant and thoughtful questions prepared for that. Then you won’t have to come up with something on the spot.

If you’re interviewed by your potential future teammates, you may ask what their team is like, what they are working on, what tech they use, what your onboarding and first tasks may look like, and so on.

If you are interviewed by developers from different parts of the organization, it is a chance to ask similar questions at each interview to better understand what the company culture is like. For example, what your interviewers like about the company, whether people work there for years, or they leave in a year or two, whether engineers feel they have enough time to write good code and build quality software, how the team decides what tech and processes to use, and so on.

Interviewers in general are happy to answer candidate’s questions. Candidates who ask relevant and thoughtful questions at an interview usually make a good impression on their interviewers as that shows that they are interested in the role enough to want to learn more about it.


I hope you’ve found this useful. To recap, here is what you can do to boost your chances of success at a job interview.

Before the interview:

  • Prepare a brief self-introduction for technical and non-technical interviewers

At the interview:

  • Be concise when answering questions