PracHub
QuestionsLearningGuidesInterview Prep
|Home/Software Engineering Fundamentals/Airbnb

How do you conduct a code review exercise?

Last updated: Jul 1, 2026

Quick Overview

This question tests a software engineer's ability to conduct structured, high-signal code reviews under time pressure and limited context. It evaluates judgment in prioritizing correctness issues over style, communicating feedback clearly, and handling ambiguity — core competencies in software engineering fundamentals interviews.

  • hard
  • Airbnb
  • Software Engineering Fundamentals
  • Software Engineer

How do you conduct a code review exercise?

Company: Airbnb

Role: Software Engineer

Category: Software Engineering Fundamentals

Difficulty: hard

Interview Round: Onsite

In a live interview, you are shown a short code change — a diff, a pull request, or a standalone function — and asked to produce written code review comments **with minimal back-and-forth**. The interviewer may share their screen, give you a few minutes to read, and then largely go quiet, expecting you to think aloud and type the comments you would leave on a real PR. Walk through your **structured approach** to producing high-signal review feedback under these conditions. Concretely cover: - The **categories of issues** you scan for (e.g. correctness, edge cases, concurrency, security, performance, readability, testing, API design, observability) and the order you apply them in. - How you **prioritize and label** comments so the author knows what is a blocker versus a nit. - **Examples of well-written review comments** — the exact text you would type, including how you phrase a blocker, a suggestion, and a nit. - How you **handle missing context or requirements** when you cannot interrogate the author. ```hint Where to start Treat it like a real review, not a bug hunt. Before reading line-by-line, reconstruct **intent**: is this a feature, bugfix, or refactor, and what is it *supposed* to do? Everything you flag is relative to that intent. ``` ```hint A scanning framework Apply a **fixed checklist** so you don't miss a category under pressure. Prioritize correctness over polish — severity tends to fall as you move from logic issues toward style. ``` ```hint Make your comments actionable Each comment should be **specific, severity-labelled, and propose a fix** (or ask a precise question). "This is bad" is low signal; "Blocker: empty `items` makes `items.get(0)` throw — return `Optional.empty()` instead" is high signal. ``` ### Constraints & Assumptions - **Format:** This is a *written* review with little dialogue. You should narrate your reasoning aloud but the deliverable is the set of comments themselves. - **Time-boxed:** Assume ~20–30 minutes total — enough to read the change carefully and leave a focused, prioritized set of comments, not an exhaustive line-by-line audit. - **Limited context:** You usually do not have the surrounding codebase, the ticket, or the author available to answer questions. Make assumptions explicit rather than stalling. - **Language-agnostic:** The principles should hold regardless of the language shown; adapt concrete examples to whatever code you are given. ### Clarifying Questions to Ask A candidate should briefly confirm scope before diving in: - What is the **goal of this change** — is there a linked ticket or intended behavior I should review against? - What is the **expected style of feedback** — line-level comments, a summary, or both? Do you want me to also propose tests? - Are there **non-functional requirements** that matter here (latency budget, security/PII sensitivity, backward-compatibility guarantees)? - Is this change **on a hot path / public API**, or internal and low-traffic? (This calibrates how strict to be.) - What is the **team's bar** — must everything be perfect to approve, or is "approve with comments" acceptable? ### What a Strong Answer Covers The interviewer is evaluating judgment and communication, not whether you can list every category. A strong answer demonstrates: - **A repeatable framework** — a named, ordered checklist applied deliberately, with correctness prioritized over style. - **Severity discipline** — clear separation of blockers (correctness, data loss, security) from should-fix items from nits, with explicit labels. - **At least one real catch** — identifying a genuine correctness or edge-case bug in the change, not just stylistic nits. - **Comment quality** — comments that are specific, kind, actionable, and propose a fix or ask a precise question; phrasing that assumes good faith. - **Handling ambiguity** — stating assumptions explicitly and framing uncertainty as questions rather than blocking on missing context. - **Coverage of non-obvious categories** — tests and observability, not only logic and formatting. ### Follow-up Questions - The author pushes back on one of your blocker comments, arguing the edge case "can't happen in practice." How do you respond? - You notice a deeper design problem that the diff exposes but doesn't introduce. Do you raise it in this review, and how do you scope it so the PR isn't blocked indefinitely? - How would your review change if this were a **junior engineer's first PR** versus a **staff engineer's change to a critical service**? - The change has no tests but is "obviously correct." Do you block on missing tests, and where do you draw that line?

Quick Answer: This question tests a software engineer's ability to conduct structured, high-signal code reviews under time pressure and limited context. It evaluates judgment in prioritizing correctness issues over style, communicating feedback clearly, and handling ambiguity — core competencies in software engineering fundamentals interviews.

Related Interview Questions

  • Design a Stateful Working Hours Register - Airbnb (hard)
  • Design a banking ledger for deposits/withdrawals - Airbnb (medium)
  • Design a Connect-Four-like board game - Airbnb (hard)
  • Design an extensible request Retryer - Airbnb (medium)
|Home/Software Engineering Fundamentals/Airbnb

How do you conduct a code review exercise?

Airbnb logo
Airbnb
Jan 19, 2026, 12:00 AM
hardSoftware EngineerOnsiteSoftware Engineering Fundamentals
21
0

In a live interview, you are shown a short code change — a diff, a pull request, or a standalone function — and asked to produce written code review comments with minimal back-and-forth. The interviewer may share their screen, give you a few minutes to read, and then largely go quiet, expecting you to think aloud and type the comments you would leave on a real PR.

Walk through your structured approach to producing high-signal review feedback under these conditions. Concretely cover:

  • The categories of issues you scan for (e.g. correctness, edge cases, concurrency, security, performance, readability, testing, API design, observability) and the order you apply them in.
  • How you prioritize and label comments so the author knows what is a blocker versus a nit.
  • Examples of well-written review comments — the exact text you would type, including how you phrase a blocker, a suggestion, and a nit.
  • How you handle missing context or requirements when you cannot interrogate the author.

Constraints & Assumptions

  • Format: This is a written review with little dialogue. You should narrate your reasoning aloud but the deliverable is the set of comments themselves.
  • Time-boxed: Assume ~20–30 minutes total — enough to read the change carefully and leave a focused, prioritized set of comments, not an exhaustive line-by-line audit.
  • Limited context: You usually do not have the surrounding codebase, the ticket, or the author available to answer questions. Make assumptions explicit rather than stalling.
  • Language-agnostic: The principles should hold regardless of the language shown; adapt concrete examples to whatever code you are given.

Clarifying Questions to Ask Guidance

A candidate should briefly confirm scope before diving in:

  • What is the goal of this change — is there a linked ticket or intended behavior I should review against?
  • What is the expected style of feedback — line-level comments, a summary, or both? Do you want me to also propose tests?
  • Are there non-functional requirements that matter here (latency budget, security/PII sensitivity, backward-compatibility guarantees)?
  • Is this change on a hot path / public API , or internal and low-traffic? (This calibrates how strict to be.)
  • What is the team's bar — must everything be perfect to approve, or is "approve with comments" acceptable?

What a Strong Answer Covers Guidance

The interviewer is evaluating judgment and communication, not whether you can list every category. A strong answer demonstrates:

  • A repeatable framework — a named, ordered checklist applied deliberately, with correctness prioritized over style.
  • Severity discipline — clear separation of blockers (correctness, data loss, security) from should-fix items from nits, with explicit labels.
  • At least one real catch — identifying a genuine correctness or edge-case bug in the change, not just stylistic nits.
  • Comment quality — comments that are specific, kind, actionable, and propose a fix or ask a precise question; phrasing that assumes good faith.
  • Handling ambiguity — stating assumptions explicitly and framing uncertainty as questions rather than blocking on missing context.
  • Coverage of non-obvious categories — tests and observability, not only logic and formatting.

Follow-up Questions Guidance

  • The author pushes back on one of your blocker comments, arguing the edge case "can't happen in practice." How do you respond?
  • You notice a deeper design problem that the diff exposes but doesn't introduce. Do you raise it in this review, and how do you scope it so the PR isn't blocked indefinitely?
  • How would your review change if this were a junior engineer's first PR versus a staff engineer's change to a critical service ?
  • The change has no tests but is "obviously correct." Do you block on missing tests, and where do you draw that line?
Loading comments...

Browse More Questions

More Software Engineering Fundamentals•More Airbnb•More Software Engineer•Airbnb Software Engineer•Airbnb Software Engineering Fundamentals•Software Engineer Software Engineering Fundamentals

Write your answer

Your first approved answer each day earns 20 XP.

Sign in to write your answer.
PracHub

Master your tech interviews with 9,000+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • AI Coding Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.