Presenting a technical project is a common part of job interviews for software engineer positions, which is used to test your skillset and experience.
Today I want to cover some tips that helped me leverage my project’s presentation and will hopefully help you make the most out of yours.
The first paragraph of your presentation should be very direct, easy to understand, and make a clear point. The interviewer should understand what your project’s purpose was, and maybe one important detail (or achievement) you want them to have in mind before you dig into specific details.
To make this happen, the first part of your presentation should include the following components:
- A “title” sentence that clearly summarizes your project.
Start with the bottom line. For example “I will present a 3-month project from my recent workplace, in which I built the main data-enrichment system of the company from scratch”
- An introduction to the company’s product, and/or the domain of the team.
Before delving into the project, help the interviewer understand the context of the company or team’s domain.
- Explain the need / pain point.
Before we start talking about the solution — AKA your project — explain why it was needed. What was the status before the project, and what were the pain points your project aimed to solve? Why was your project important?
Having an architecture diagram that includes the components of your project, the technologies you used, and perhaps the surrounding architecture of your team/company will make it easier for the interviewer to follow and for you to reference specific components or technologies.
It is better to prepare your diagram in advance, so you don’t waste time on this during the interview.
When making your diagram keep the following things in mind:
- Keep your diagram relatively high-level and easy to digest, avoiding overwhelming details. Remember that you are explaining to an external listener who doesn’t have all the context you do.
- Ensure your diagram contains enough information to deliver relevant details, such as the main components and technologies used in your project.
- Consider including a few components and technologies used by your team in the day-to-day work, even if they were not specifically used in this project. This allows for potential discussion topics after you finish presenting your project, showcasing additional experience and knowledge.
Additionally, I prefer to prepare two diagrams for the project’s presentation: one that provides a high-level overview of the company’s product or team’s domain, and another that delves into the project explanation itself.
Starting with the high-level diagram reduces the chance of overwhelming the interviewers, as they already have the context and a general understanding of the system and product.
Here are my examples of architecture diagrams:
High-level product overview
In-depth project overview
Notice the colors — the parts of the system I worked on are marked in blue in both diagrams.
By including more components in the diagram than I will actually discuss and highlighting the parts we will focus on, I achieve a few things:
- With a quick look, the interviewer receives more information than I explicitly mention during the presentation, providing insight into the scope of technologies I worked with.
- I implicitly invite the interviewer to ask me questions about the architecture surrounding my project.
- I make it easy for the interviewer to identify which parts of the system I worked on during the project and understand the focus of my presentation.
Keep in mind that your diagram doesn’t have to be limited to remote interviews. You can also print your diagram and bring it to in-office interviews. Personally, I can attest that every time I pulled my diagram out of my bag during an interview, my interviewers were deeply impressed by this level of preparation. It’s an unusual and impactful way to showcase your dedication and professionalism.
If you can’t bring such visual aids with you, practice sketching out the important parts quickly, to keep your sketching time short and your interviewer engaged.
Here are a few examples of achievements worth mentioning:
- Measurable achievements: reducing the bug rate by X%, improving system latency by Y milliseconds or Z%, reducing manual work by W days per quarter.
- Overcoming obstacles (why was this project complicated to conduct?) e.g. working with a highly complicated codebase or legacy code, debugging in a hard-to-debug environment with low test coverage or limited visibility, learning complex new technologies and systems independently.
- Scouting rule: demonstrating how you left the environment better than you received it, such as conducting a knowledge-sharing session or implementing important metrics and alerts.
- Interpersonal matters
e.g. collaborating with colleagues from various teams and departments, effectively articulating your messages to engage and onboard them.
Remember that different interviewers may have varying interests in different aspects of your work based on the position’s needs or skills of your that they want to learn more about.
From the list of achievements you made earlier, select the most impressive ones to include in your closing paragraph. Highlight the most impressive numbers or metrics that showcase the payoff of your hard work. These elements will likely leave a lasting impression on your interviewer.
Mock interviews are a great way to assess how your project sounds to an external listener, practice the coherence of your explanations, and improve your overall presentation. They provide an opportunity to receive concrete feedback from unbiased and professional individuals.
If possible, try running mock interviews both with people familiar with the projects you want to present (ex-coworkers) and those who are unfamiliar with it. The former group can help identify any inaccuracies or suggest better ways to present your work, while the latter group can provide valuable feedback from the interviewer’s perspective.
Either way, make sure to schedule the mock interviews with people working in your field — experienced developers, and ideally, experienced interviewers, so that their feedback will be most relevant to you.
Treat each interview as an opportunity for a small retrospective. Reflect on the interview afterward:
- If the interviewer misunderstood one of your explanations, think about how you can make it clearer next time.
- If some questions are repeatedly asked by interviewers after you finish your presentation — consider providing the answer on your own as part of the presentation in the next interviews.
- If you felt unsatisfied with some of your answers, identify ways to improve those responses and prepare for similar or related questions in future interviews.
Each interview is a chance to learn and grow. Take the time to analyze and reflect on the interview experience. Valuable insights may be waiting to be discovered if you invest some time in self-reflection.
To summarize the key takeaways mentioned in this post, here are my suggestions for presenting a project in a software engineer job interview:
- Make sure your opening part is crystal clear. Start with a bottom-line sentence that explains the purpose of your project. Then, provide a short overview of the company’s product or the team’s domain. Conclude the introduction by explaining the pain point that your project aimed to solve.
- Prepare an architecture diagram, preferably two: one that offers a high-level overview of the product and another for a deep dive into the project itself. If you have an in-person interview, consider printing the diagrams or learning how to quickly sketch the main components.
- Know which achievements you want to mention during the interview and share them in a “push and not pull” approach. This means proactively mentioning them during the project’s presentation, rather than waiting to be asked.
- Finish with a WOW effect by highlighting your most impressive achievements, especially the measurable ones, at the end of your presentation to leave a lasting impression on your interviewer.
- Conduct mock interviews and get feedback. Schedule these mock interviews with experienced developers and interviewers to learn from their insights and suggestions.
- Treat each interview as a learning opportunity and take the time for a retrospective afterward. Reflect on the experience and implement the lessons learned in your future interviews.