Software Engineering Interview

What are behavioral interviews?
Succeeding in an engineering career involves more than just technical skills. People skills become more important as an engineer becomes more senior. Senior engineers should have the ability to lead and influence, resolve conflicts, anticipate risks, plan the roadmap, and more.
Hiring a talented engineer that cannot work with others can ultimately be a net deficit for companies. Companies don't want to hire brilliant jerks. The company is better off not hiring a very talented engineer who refuses to work with others or causes an entire team to be unproductive. Companies want to hire the right person that will work well with the existing employees and help the team and company achieve greater heights, and behavioral interviews are one way of determining if someone will be good to work with from a non-technical standpoint.
Typically, behavioral interview questions can be split into several types:
Getting to know your career preferences, ambitions and plans
Discuss details of experiences or projects written in your resume
"Tell me about a time where you" type of questions where you describe how you demonstrated certain traits or responded to a situation
How to prepare for behavioral interviews
Learn the STAR answer format
Prepare your answers to commonly asked questions
Prepare experiences to showcase fit to the company's culture / core values
Learn the STAR answer format

The STAR format is a framework to help you organize answers to behavioral questions - especially ones requiring you to discuss previous experiences
Situation - The interviewer wants you to present a recent challenge and situation which you found yourself in
Task - What were you required to achieve? The interviewer will be looking to see what you were trying to achieve from the situation. Some performance development methods use "Target" rather than "Task". Job interview candidates who describe a "Target" they set themselves instead of an externally imposed "Task" emphasize their own intrinsic motivation to perform and to develop their performance
Action - What did you do? The interviewer will be looking for information on what you did, why you did it, and what the alternatives were
Results - What was the outcome of your actions? What did you achieve through your actions and what did you learn? What steps did you take to improve after the experience?
Example of how to apply STAR to a behavioral interview question
Here's an example of how the STAR format can be used to answer the question: "Tell me about a time in which you had a conflict and needed to influence somebody else".
Situation
"I was the team lead of a school project about building a social network mobile web app. Our designer's midterms were approaching and didn't have time to produce the mockups. Our front-end person was rushing him for the mockups so that he could proceed with his work, and that was stressing the designer out. The atmosphere in the team was tense."
Task
"As the team lead, I had to resolve the tension between the front-end developer and the designer so that the team could work together peacefully and complete the project on time."
Action
"I spoke to the front-end developer to ask him why he was rushing the designer for the designs. He said that he wanted the designs early because it would be a waste of time rebuilding if the designer designed something different eventually. I explained to him that the midterm dates were out of the designer's control and we had to be more understanding about each other's schedules. I spoke to the designer to get a rough idea of what he had in mind and asked him when he could commit to producing the high-fidelity designs. He replied that he could start on them as soon as his midterms were over. I explained to him why the front-end developer was pushing him for the mockups, and that the front-end developer had no ill intentions and simply wanted the project to succeed. As someone with some experience in UI/UX design, I came up with wireframe mocks, ran them by the designer for approval, then passed them to the front-end developer to start building. I encouraged the front-end developer to use placeholders and not be too concerned about the details for now. We could build the non-UI parts first (authentication, hook up with APIs) and tweak pixels and add polish later on. The front-end developer agreed and went ahead with the approach. I explained to the front-end developer that the designer will pass us the mockups after his midterm, by DATE."
Result
"When our designer ended midterms, he came back with beautiful mockups that fit well into the wireframes. Our front-end developer implemented them with great care to detail. We ended up scoring top marks for the project and became a great team."
2. Prepare your answers to commonly asked questions
The next natural step is to start preparing your answers for commonly asked behavioral interview questions. You may refer to my list of 30 questions which were collated across top tech companies for this.
While most people might be inclined towards memorization, it's much better to pen down bullet points to each question and practice verbalizing them near to the interviews, so that your answers will come out more naturally.
3. Prepare experiences to showcase fit to the company's culture / core values
As aforementioned, most top tech companies use their company values to evaluate candidates in behavioral interviews. As such, you should do your research to find out what those values are and ensure you have prepared experiences that showcase fit.
Most commonly asked behavioral questions across top tech companies
Here are some of the 30 most commonly asked behavioral interview questions across top tech companies:
- Why do you want to work for X company?
- Why do you want to leave your current/last company?
- What are you looking for in your next role?
- Tell me about a time when you had a conflict with a co-worker.
- Tell me about a time in which you had a conflict and needed to influence somebody else.
- What project are you currently working on?
- What is the most challenging aspect of your current project?
- What was the most difficult bug that you fixed in the past 6 months?
- How do you tackle challenges? Name a difficult challenge you faced while working on a project, how you overcame it, and what you learned.
- What are you excited about?
- What frustrates you?
- Imagine it is your first day here at the company. What do you want to work on? What features would you improve on?
- What are the most interesting projects you have worked on and how might they be relevant to this company's environment?
- Tell me about a time you had a disagreement with your manager.
- Talk about a project you are most passionate about, or one where you did your best work.
- What does your best day of work look like?
- What is something that you had to push for in your previous projects?
- What is the most constructive feedback you have received in your career?
- What is something you had to persevere at for multiple months?
- Tell me about a time you met a tight deadline.
- If this were your first annual review with our company, what would I be telling you right now?
- Time management has become a necessary factor in productivity. Give an example of a time-management skill you've learned and applied at work.
- Tell me about a problem you've had getting along with a work associate.
- What aspects of your work are most often criticized?
- How have you handled criticism of your work?
- What strengths do you think are most important for your job position?
- What words would your colleagues use to describe you?
- What would you hope to achieve in the first six months after being hired?
- Tell me why you will be a good fit for the position.
Crafting the perfect self introduction

"Tell me about yourself" or "give me a quick introduction of your profile" is almost always the first question encountered in your software engineer interviews. This guide teaches you how to maximize this chance to impress the interviewer by crafting the perfect self introduction.
Interviewers want to work with candidates they like. Leave a good/deep impression and it will increase your chances of success. Most of us are not strangers to self introductions as we meet new people now and then and have to introduce ourselves every once in a while. However, self introductions in interviews are slightly different from real life - you need to tweak it to your advantage - tailor the self introduction to the role and company you are applying for! Your self introduction evolves as you grow and are at a different stage of your career.
When answering "tell me about yourself", you can rephrase the question into:
"Tell me about your journey into tech. How did you get interested in coding, and why was web development (or replace with other job-specific skills) a good fit for you? How is that applicable to our role or company goals?" It is probably not a good idea to spend valuable time talking about things which aren't relevant to the job!
Make an elevator pitch
An "elevator pitch" originates from a journalist trying to pitch an idea to an editor. The only time to catch the editor was in the elevator and she had only around 30 seconds to do so. The key elements of elevator pitches include:
Short - You have limited time!
Direct - As you only have limited time, you should get to the point
Attention-grabbing - Present your most attractive ideas Whether you're at a job fair with hundreds of other candidates and you have limited time or you are simply explaining who you are to a potential connection or client, it is important to be able to clearly and accurately describe your knowledge and skills quickly and succinctly. Your self introduction is an elevator pitch for yourself!
Here are some tips to develop a good elevator pitch for your software engineer self introduction:
1. Start with basic background information
Include who you are, who you work for (or school and major), and what you do.
- Internships - You should mention the following: name, school and major, focus areas, past internships and/or noteworthy projects
- Full-time - You should mention the following: name, past companies, noteworthy projects (best if it's a public consumer product that they would have heard of)
Does this look familiar? It should be, because it is similar to your resume! Your resume is a condensed version of your knowledge and experiences and your self introduction is essentially a condensed version of your resume. As you grow older, professional experience becomes more important and school background becomes less important. Hence your self introduction changes as you become more senior.
2. KISS (Keep It Simple and Sweet)
Tell them some highlights from your favorite/most impressive projects and including some numbers if they're impressive or challenges that you've overcome. Do not delve into the depths of how you reverse engineered a game and decrypted a packet to predict when to use your DKP on a drop. Tell them the executive summary: "I reverse engineered X game by decrypting Y packet to predict Z." If this catches their interest, they might ask further questions on their own.
3. Why do they want you?
Tell the interviewer why you would make a good hire. Is your experience relevant to the company? Have you used a similar tech stack as the company or built relevant products? What unique talent(s) do you have that may give them confidence about your ability to contribute to the company?
Good examples of software engineer self introductions
Example 1: Front End Engineer at Meta
Self introduction
"Hi I'm XXX and I graduated from National University of Singapore in 2015 with a degree in Computer Science. My interests are in Front End Engineering and I love to create beautiful and performant products with delightful user experiences.
Back in school, I designed and built a web application, NUSMods which solves a huge problem of class and timetable planning every semester. It receives over a million pageviews a month and is used by over 40,000 NUS students and even some professors. It is built using a modern web technology stack - React, Redux, Jest, Babel, Flow, webpack and is mobile-responsive."
I'm interested in the Front End Engineer role at Meta because I have been using Meta Open Source Front End technologies for a while now and am inspired by Meta's mission and Open Source culture.
How to Answer "Why do you want to work Here" in Behavioral Interviews
The Interviewer's Intention
Most interviewers ask this question with a single objective in mind — to understand more about you through your motivations to join the company. They want to know whether you were interested enough to do your research, or if there was a special reason that constituted a strong motivation from you.
Suggested Answer Framework
To succeed, there are 3 basic steps to build your answer:
It should take between 60 to 90 seconds Never take more than 60 to 90 seconds. Any longer might constitute a monologue. For reference, 1 min is around 15 statements.
Gather deep insights about the company/team/position gained from current/previous employees of the company If you've been an interviewer before, you'd know that most candidates do not impress in the "why do you want to work in this company / team" question because they tend to answer it based the company's public information, which may not necessarily be representative of the individual team or department's culture or situation. For instance, imagine you are evaluating 2 candidates for a game-development team:
Candidate A: "Company A is very environmentally friendly and I want to be a part of the earth-saving efforts" (as the team's manager, you know none of your team members ever talk about earth-saving as your work is completely unrelated to it)
Candidate B: "Team A is working on games based on Technology B and this is something I happen to be very interested in." To stand out as someone who is truly interested in the role, you should optimally strive to find insights specific to the team you are joining, and use that to justify your interest (and therefore fit).
Here are some common avenues to get team-specific insights:
Gain more insights about the team's stack or practices from the job description (in some cases, there could be many details you could tap on)
Search up the team on LinkedIn and understand more about their individual work scope, past projects, backgrounds and interests
Try to score an informational interview or coffee chat or short video call with the team members (after doing basic research online)
Search up the team on Blind or even Reddit (go as specific in your query as possible)
Here are some useful questions you could ask:
- What are some of the unique challenges or learning opportunities that developers get on your team versus other companies?
- What are the kinds of projects I could expect to work on if I were to join your team?
- How does the way this team operates differ from other teams in the company?
- Does this team work closely with other teams? Which ones and how so?
- Can you walk me through the process of a typical project?
Briefly explain why joining this company/role/team is a strategic and logical step for your career. In so doing, you could also take the chance to cement the interviewer's impression of your passion for the field or the efforts you have made to build your expertise.
Best end of interview questions to ask
Something you can always count on to happen at the end of your Software Engineer interview - both technical and non-technical rounds - is for the interviewer to ask you if you "have any final questions?".
This question actually isn't a real question at all - candidates are generally expected to ask questions. As an interviewer myself, candidates who don't have any questions might come off as less interested in the role.
Besides that, the questions you ask reveal what you care about. If asked well, this can be a very predictable opportunity for you to leave a good impression while also knowing more about the role (including uncovering potential red flags).
Here, I present questions to ask at the end of your software engineer interviews, for every purpose. The ones in bold are the ones that tend to make the interviewer go "That's a good question" and pause and think for a bit.
- What are the engineering challenges that the company/team is facing?
- What has been the worst technical blunder that has happened in the recent past? How did you guys deal with it? What changes were implemented afterwards to make sure it didn't happen again?
- What is the most costly technical decision made early on that the company is living with now?
- What is the most fulfilling/exciting/technically complex project that you've worked on here so far?
- I do/don't have experience in domain X. How important is this for me to be able to succeed?
- How do you evaluate new technologies? Who makes the final decisions?
- How do you know what to work on each day?
- How would you describe your engineering culture?
- How has your role changed since joining the company?
- What is your stack? What is the rationale for/story behind this specific stack?
- Do you tend to roll your own solutions more often or rely on third party tools? What's the rationale in a specific case?
- How does the engineering team balance resources between feature requests and engineering maintenance?
- What do you measure? What are your most important product metrics?
- How often have you moved teams? What made you join the team you're on right now? If you wanted to move teams, what would need to happen?
- What resources does the company have for new hires to study its product and processes? Are there specifications, requirements, documentation?
- How do you think my expertise would be relevant to this team? What unique value can I add?
Best questions to ask for knowing more about the role
- What qualities do you look out for when hiring for this role?
- What would be the most important problem you would want me to solve if I joined your team?
- What does a typical day look like in this role?
- What are the strengths and weaknesses of the current team? What is being done to improve upon the weaknesses?
- What resources does the company have for new hires to study its product and processes? Are there specifications, requirements, documentation?
- What would I work on if I joined this team and who would I work most closely with?
Best questions to ask for knowing more culture and welfare
- What is the most frustrating part about working here?
- What is unique about working at this company that you have not experienced elsewhere?
- What is something you wish were different about your job?
- How is individual performance measured?
- What do you like about working here?
- What is your policy on working from home/remotely?
- What does the company do to nurture and train its employees?
- Does the company culture encourage entrepreneurship and creativity? Could you give me any specific examples?