Unit 15 · Interview skills · Lesson 2 of 5
Project deep dives
Step 1: Learn the ideas
- Context, goals and constraints
- Personal contribution versus team contribution
- Architecture sketch and data flow
- Design decisions and rejected alternatives
- Measurements, baselines and evidence
- Failures, incidents and bugs
- Lessons and what you would change
- Unresolved limitations and next steps
- Confidentiality and honest framing
Why it matters
A deep dive tests whether you understand your own work, and it is hard to fake. Interviewers ask "why did you choose X?", "what happens if Y fails?", "how do you know it was faster?" and "what would you do differently?", and each answer leads to the next question. Candidates often struggle not because the project was small but because they never wrote down the reasoning: the alternatives they dismissed, the numbers they measured, the incident that changed the design. For you, natural candidates are your cloud computing coursework, Agaria, and any thesis or research project from your master's. Each can support a strong conversation if you reconstruct it carefully, using only facts you can stand behind.
Core ideas
Context. One or two sentences on the problem and who it was for, then the constraints that shaped the design: team size, time, budget, required technologies, data volume, latency, cost or privacy requirements. Constraints explain decisions that otherwise look arbitrary.
Your contribution. State precisely what you designed, built, measured or decided, and what others did. "I designed the scheduler and wrote its tests; a teammate built the frontend" is credible; "we built a platform" is not. If someone else made a decision, say so and explain whether you agreed.
Decisions and alternatives. For each major decision (datastore, queueing, model provider, synchronous versus asynchronous processing, build versus buy), prepare the options, the criteria, the choice and what you gave up. Lightweight decision records with context, decision and consequences, as described in Michael Nygard's post on architecture decision records, are a good format for these notes, even when written after the fact.
Measurements. For every quantitative claim, know how it was measured: workload, environment, baseline, number of runs and what varied between them. Distinguish measured, estimated and remembered numbers, and drop any you cannot reconstruct. "We did not measure that; this is how I would measure it" is a respectable answer.
Failures and lessons. Prepare at least one thing that went wrong: a production bug, a design that did not scale, a missed deadline, an abandoned approach. Describe detection, diagnosis, fix and what changed afterwards, in the blameless style of a postmortem.
Unresolved limitations. Every real system has them: missing tests, a single point of failure, manual steps, unvalidated assumptions about users, costs that grow faster than usage. Naming them yourself, with what you would do next, signals judgment; being surprised by them signals the opposite.
Depth levels. Prepare a 2-minute version (problem, approach, your role, one result), a 10-minute version with the architecture and two decisions, and enough material for 30 minutes of questions. Let the interviewer choose where to go deeper.
Record all of this in the app's Project notes page, one entry per project. Fill it in from your own records (repositories, reports, commit history, dashboards), and mark anything uncertain until you have checked it.
Common misconceptions
- "The project must be impressive." A modest project explained with precise reasoning and honest limits beats a large one described vaguely.
- "Admitting limitations weakens the story." Interviewers probe until they find the limits anyway; naming them first shows you understand the system.
- "Round numbers up to sound credible." Inflated or unverifiable figures collapse under one follow-up and damage trust in everything else you said.
- "Tour the whole stack." Depth on the decisions that mattered beats a list of technologies, but be ready to explain anything you named on your CV.
- "Confidential work cannot be discussed." You can usually describe problems, decisions and lessons abstractly without revealing secrets; check what your agreements allow.
How to approach it
Pick two or three projects, starting with the one most relevant to your target roles. Gather primary material (code, reports, design notes, commit history), then complete the Project notes page: context, contribution, architecture, decisions with alternatives, measurements with method, failures, lessons and open limitations. Draw each architecture from memory and time your 2-minute and 10-minute versions. Then ask a peer to interrogate one decision for ten minutes with "why?" and "what if it fails?", and add every question you could not answer to your notes. Graduate candidates are judged mostly on clarity and honesty about their role; mid and senior candidates are expected to discuss tradeoffs, operations and what they would change with hindsight.
Suggested order
- 1Choose two or three projects (for example your cloud computing coursework and Agaria) and collect primary material: repositories, reports, design notes, commit history and any measurements.
- 2Read Michael Nygard’s “Documenting Architecture Decisions” and Malte Ubl’s “Design Docs at Google”; use their structure (context, goals and non-goals, alternatives, consequences) to reconstruct three decisions per project.
- 3Fill in the Project notes page for each project, marking unverified facts until you have checked them against your records.
- 4Read the SRE book chapter on postmortem culture and write a blameless account of one thing that went wrong in a project.
- 5Draw each architecture from memory, then rehearse 2-minute and 10-minute versions with a timer.
- 6Have a peer probe one project for 15 minutes; add every unanswered question to your notes with an answer or an explicit “not known”.
Step 2: Check off what you can do
Tap each one you can genuinely do or explain. Each earns 10 XP.
Step 3: Go deeper
Design Docs at GoogleStart here
Industrial Empathy (Malte Ubl’s blog)A structure for presenting context, goals, non-goals and alternatives considered, which maps directly onto deep-dive questions.
Open(opens in a new tab)Link responded, 5 Oct 2026Documenting Architecture DecisionsStart here
Cognitect blogA compact format (context, decision, status, consequences) for reconstructing and presenting individual design decisions.
Open(opens in a new tab)Link responded, 5 Oct 2026Site Reliability Engineering (Google SRE book)
Google (free online edition)Section: Ch. 15: Postmortem Culture
How to describe a failure blamelessly, with detection, causes and follow-up actions.
Open(opens in a new tab)Link responded, 5 Oct 2026
Step 4: Practice
Use the app’s Project notes page as the practice artifact: one entry per project covering context, your contribution, decisions and alternatives, measurements and their method, failures, lessons and limitations, all taken from your own records. Then rehearse aloud: a 2-minute summary, a 10-minute walkthrough with a sketch, and a 15-minute adversarial session in which a peer keeps asking “why?” and “what if this fails?”. Never fill gaps with guesses; write “not measured” where that is the truth.
No external problems are linked; follow the guidance above.
Record attempts on each problem’s page (+15 XP, +10 more when solved on your own).
Step 5: Test yourself
Answer each one out loud or on paper before you finish the lesson.
- Question 1What exactly did you build or decide yourself in each project?
- Question 2Which decision would you reverse with hindsight, and what would reversing it have cost at the time?
- Question 3How was each number you quote measured, and against what baseline?
- Question 4What is the biggest unresolved limitation, and how would you address it?
- Question 5What happens to the system if its most important dependency is unavailable for an hour?
You’re done when you can
- Have a completed Project notes entry for at least two projects, with every quantitative claim traceable to a source.
- Deliver a 2-minute and a 10-minute version of each project within time.
- Explain three design decisions per project, each with a rejected alternative.
- Get through a 15-minute “why” and “what if” probing session without contradicting your notes.


