MODULE 1

45-Min Coding Round Structure

Time budget. Skipping any phase = lower score.

Time Budget

PhaseTimeOutput
1. Clarify3–5 minRestated problem, 2–3 examples, constraints
2. Approach5–8 minBrute force → optimal; complexity stated
3. Code15–20 minClean implementation, narrating
4. Test5–8 minWalk through happy path + edges
5. Q&A3–5 minDiscuss extensions, candidate questions

Signals Interviewer Scores

  • Problem-solving: did candidate reach optimal independently?
  • Coding: clean, idiomatic, no bugs.
  • Communication: think-aloud, asks vs. assumes.
  • Verification: caught own bugs, tested edge cases.
  • Speed: completed in time without rushing.

AI in the Loop (2026)

AI-use policy is company-specific and must be confirmed per round. Don't assume — the spectrum is real:

  • Banned: any AI use is disqualifying (e.g. Amazon). Remote OAs are proctored.
  • Allowed / disclosed: AI permitted, sometimes with adjusted rubrics; disclose if asked.
  • AI-assisted round: using AI is the skill being tested (e.g. Meta's dedicated AI coding round, Shopify, Canva). You're given a larger codebase and asked to extend or debug it while prompting and verifying an AI assistant in the editor.
  • Varies by team / interviewer: Google, Apple, Netflix, Microsoft — confirm before the round.

Proctored remote OAs commonly flag AI via copy/paste and tab-switch monitoring, screen-share requirements, keystroke/behavioral analytics, and similarity checks against known solutions.

MODULE 2

Communication Framework

Think aloud → narrate → verify. Silence = unscorable.

Narration Phrases

  • "Let me restate to make sure I understand: [problem]."
  • "My initial thought is [brute force]. Let me check the complexity."
  • "That's O(n²). Can we do better? Maybe [hint at structure]."
  • "I'll use [data structure] because [reason]. Trade-off: [cost]."
  • "Let me code the main loop, then handle edges."
  • "Tracing: input X → state at line N is Y → output Z."
  • "Edge cases: empty, single, duplicates, negatives, overflow."

Collaborative Posture

  • Treat interviewer as pair-partner, not adversary.
  • Ask permission to skip: "Should I implement helper X or assume it's given?"
  • Acknowledge hints: "Good point — let me reconsider."
  • Don't argue if interviewer disagrees; explore their view.
MODULE 3

Clarifying Questions

Front-loaded. Wrong assumptions waste 30 min.

Checklist

  • Input shape: type, range, sorted?, can be empty?, can have duplicates / negatives / unicode?
  • Output: format, single answer or all, modify in place?
  • Constraints: n size, time/space limits.
  • Ambiguity: how to break ties, undefined cases.
  • API surface: can I assume helper X exists? stdlib OK?
  • Examples: walk through the given one. Construct one of your own.

For System Design

  • Functional requirements: top 3 features only. Cut nice-to-haves.
  • Scale: DAU, requests/sec, data size, growth.
  • SLA: latency, availability targets.
  • Reads vs writes ratio.
  • Consistency requirements: strong vs eventual.
  • Tenancy: single user, multi-tenant, geo.
MODULE 4

Time Management & Recovery

When to push, when to pivot, when to ask.

Stuck Recovery

  1. Pause & restate the subproblem aloud.
  2. Try simpler input (n=1, n=2). Look for pattern.
  3. List candidate techniques (DP? Greedy? Graph?). Cross out infeasible.
  4. If still stuck after 3 min: "Let me ask — am I on the right track with [approach]?"
  5. Accept hint gracefully. Explicitly integrate: "OK so with [hint] I can now..."

When to Abandon Approach

  • Approach won't fit complexity target → switch fast.
  • Edge cases require special-cases stacking up → wrong abstraction.
  • Implementation requires obscure data structure → simpler exists.
  • Sunk-cost fallacy is real. State explicitly: "I'm going to switch to [Y] because [reason]."
MODULE 5

Common Mistakes

High-frequency anti-patterns interviewers flag.

Top 15

  1. Coding before clarifying.
  2. Silent thinking > 30 sec.
  3. Jumping to optimal without stating brute force.
  4. Not stating complexity until asked.
  5. Not testing before declaring done.
  6. Off-by-one in loop bounds.
  7. Mutating input then iterating it.
  8. Ignoring edge cases (empty, n=1, duplicates).
  9. Using global state in recursion.
  10. Defensive code that hides bugs (try/except swallow).
  11. Premature abstraction (helper for one-line op).
  12. Variable names: x, y, tmp.
  13. Copy-paste blocks instead of loops.
  14. Not handling interviewer's hint as a hint.
  15. Ending with "I think it works" instead of trace.
MODULE 6

60-Min System Design Round

Drive the conversation. Don't wait for prompts.

Flow

PhaseTimeOutput
Requirements5 minFunctional + non-functional, 3 features only
Capacity5 minQPS read/write, storage, bandwidth
API design5 min4–6 endpoints; req/resp shape
HLD10 minClients → LB → services → data stores → queues
Data model5 minTables / schemas; access patterns drive design
Deep dive15 min1–2 components: caching, sharding, queueing
Bottlenecks5 minHot keys, fanout, write amplification, geo
Wrap5 minTrade-offs, what'd you change at 10×
Q&A5 minCandidate questions

Rules

  • Never just name-drop tech. State why Kafka vs SQS, Postgres vs Dynamo.
  • Numbers always. "100M DAU, ~10 requests/day each = 1B req/day ≈ 12k avg WPS; ×3–5 peak factor ≈ 35–60k WPS peak."
  • Draw flow before storage. Storage choice falls out of access pattern.
  • Acknowledge trade-offs. No silver bullets.
  • Drive the depth — tell interviewer what you'd dive into next.
MODULE 7

Behavioral Pacing

3-min stories. Rhythm: 60s setup, 90s action, 30s result.

Pacing

  • If story past 4 min, you've lost interviewer. Self-monitor with mental clock.
  • Pause for follow-up — interviewer will drill where they want depth.
  • Don't pre-empt every angle; leave hooks for them to pull.
  • Always end with explicit lesson: "What I'd do differently is..."

Follow-up Patterns

Follow-upTranslationResponse
"What was your specific role?"You said "we" too muchRestate as "I did X. Team did Y."
"Why did you choose A over B?"Probing decision qualityTrade-offs, constraints, data
"What would you do differently?"Looking for self-reflectionConcrete change, not "communicate more"
"Tell me more about the conflict"Wants drama + resolutionSpecific disagreement, your data, outcome
"How did you measure success?"Wants metricPre/post number with timeframe
MODULE 8

Loop Logistics

Days before + day of + after.

Week Before

  • Confirm tech stack expectations with recruiter.
  • Confirm the AI-use policy with your recruiter per round — allowed, disclosed, banned, or an AI-assisted round (policies are company-specific in 2026).
  • Block prep: 4–6 hr/day.
  • 2 mock coding rounds (Pramp / interviewing.io / friend).
  • 1 mock system design.
  • 1 mock behavioral.
  • Re-read company eng blog (2 recent posts).
  • Prep 3 questions per round.

Day Of

  • Sleep 8 hr night before. Don't cram.
  • Light meal pre-loop. Caffeine if normal for you.
  • 15 min before: mental warmup — solve one easy problem out loud.
  • Have water + paper + pen.
  • Quiet, well-lit room. Camera at eye level.
  • Test mic + screen-share before start.
  • Between rounds: stand, water, reset. Don't dwell on perceived flubs.

After

  • Within 24 hr: thank-you note to recruiter (not interviewers directly unless invited).
  • Self-debrief: write down questions, what went well/poorly.
  • If rejected: ask recruiter for feedback. Some give specifics.
MODULE 9

Negotiation

Post-offer. Most leverage you'll ever have at this company.

Rules

  • Never share current comp until offer in hand. "I'm looking for competitive total comp."
  • Never accept on the call. "Thanks — let me review with my partner / take 24–48 hr."
  • Always ask for a written offer document before negotiating.
  • Negotiate on total comp (base + bonus + equity + sign-on), not just base.
  • Use competing offers as leverage. If none, market data (levels.fyi).
  • Ask for ranges, not points: "Is there flexibility on equity?"
  • Recruiter is not your enemy — they want to close. Help them help you.

Levers

LeverFlexibilityNotes
Base salaryLow–mediumTied to band; rarely large jumps
Sign-on bonusHighOne-time; matches lost equity
Equity / RSUMedium–highOften largest bump
Performance bonusLowUsually fixed % of base
Level / titleLowBig lever if borderline; ask for re-leveling
Start date / WFH / locationHighFree for company, valuable for you
Refresh equity / promo timelineMediumGet in writing
MODULE 10

Cheat Sheet

Day-of script + recovery phrases + decision rules.

Round Opening

  • Greet, brief intro (≤ 30 sec)
  • Read problem out loud
  • Restate in your own words
  • Ask 2–3 clarifying questions
  • Confirm assumptions explicitly
  • Walk through given examples

Coding Hygiene

  • Meaningful names (≥ 3 chars)
  • One thing per function
  • Handle empty / single / overflow
  • No deeply nested logic
  • Type hints / signatures
  • Test 1 happy + 2 edge cases

Recovery Phrases

  • Stuck: "Let me think aloud..."
  • Wrong path: "Switching approach because..."
  • Ask hint: "Am I on the right track with X?"
  • Bug found: "Caught a bug at line N — fixing"
  • Time short: "Let me skip helper, focus on core"

Closing

  • State final complexity (time + space)
  • Mention extensions you'd add
  • Acknowledge trade-offs
  • Ask 1–2 prepared questions
  • Thank interviewer by name

Mock Calibration

  • Record yourself; rewatch
  • Score: clarify / approach / code / test / comm
  • Target 4/5 across all five
  • 3 weak areas → drill next mock
  • 2× / week for 3 weeks pre-loop

Decision Rules

  • Stuck > 3 min → ask hint
  • 5 min left + bug → state + move on
  • Brute force first if optimal not obvious
  • Edge case unclear → ask, don't guess
  • Interviewer disagrees → explore, don't argue
MODULE 11

Annotated Mock Transcripts, Leveling Rubrics & Negotiation

Show, don't tell: a full worked mock, per-level bars, and concrete comp handling.

Annotated coding round: the two-parallel-worlds view

A transcript only teaches if you can see the candidate's words and the interviewer's private scorecard side by side. Below is a real-shaped 45-minute Meta E5 coding round on "merge k sorted lists". The left column is what the room heard; the middle is the interviewer's internal note; the right is the running signal (+ helps, − hurts). The verdict maps to Meta's four-point scale: strong no-hire / no-hire / hire / strong hire.

Phase (min)Candidate narrationInterviewer internal noteSignal
0–4 clarify"Are the lists sorted ascending? Can k be 0? Are values 32-bit? Do I mutate inputs or build new?"Asked the exact edge questions I'd have had to prompt for. Confirms empty-input handling before writing anything.+ scoping
4–9 approach"Naive: concat all n nodes and sort — O(n log n). Better: a min-heap of k heads — O(n log k) time, O(k) space. I'll do the heap."Named both, stated complexity for each, chose with a reason. Didn't jump to code.+ problem solving
9–28 codeTypes a heapq solution, narrating: "I push tuples (val, idx, node); idx breaks ties so Python never compares nodes when val is equal."The tie-breaker idx is the thing 60% of candidates miss — they get a TypeError on node < node. Unprompted here.+ coding
28–34 test"Dry-run k=2: [1,4],[2]. Heap starts {(1,0),(2,1)}, pop 1, push 4… output 1,2,4. Now k=0 → returns None. Good."Self-tested empty case that many skip. Traced the heap by hand, caught nothing broken — because nothing was.+ verification
34–40 follow-up"If lists don't fit in memory, I'd do a k-way external merge, streaming one buffered page per list."Extended to a scale variant crisply. This is the E5 (vs E4) differentiator: unprompted generalization.+ scope
Verdict: Strong hire. Optimal solution, self-caught the tie-break trap, tested empties, generalized to external sort with ~5 min to spare.Strong hire
import heapq
def merge_k(lists):
    h = []
    for i, node in enumerate(lists):      # seed one head per list
        if node:
            heapq.heappush(h, (node.val, i, node))   # i = tie-break, never compares nodes
    dummy = tail = ListNode(0)
    while h:
        val, i, node = heapq.heappop(h)
        tail.next = node; tail = node
        if node.next:
            heapq.heappush(h, (node.next.val, i, node.next))
    return dummy.next
# n = total nodes, k = lists. Time O(n log k), space O(k).

Annotated system-design round: signals live in the tradeoffs

Design rounds are scored on how you drive, not whether you "know the answer." Here is an annotated senior (L5) Google round: "design a URL shortener at 10k writes/s, 100k reads/s, 5-year retention." Google scores each interviewer 1–4 (1 = strong no-hire, 4 = strong hire) and the hiring committee reads the written feedback, not just the number.

PhaseCandidate narrationInterviewer internal noteSignal
Requirements"Functional: create short→long, redirect. Non-functional: read-heavy 10:1, redirect p99 < 50ms, links immutable. Out of scope: analytics for now."Quantified the read/write skew and set a latency SLO unprompted. Explicitly deferred scope.+ requirements
Estimation"10k w/s × 86400 × 365 × 5 ≈ 1.6T links. At ~500 bytes that's ~800 TB — needs sharding, not one box."Back-of-envelope is right and drives the storage decision. Many hand-wave this.+ numbers
Key design"I'll use a base62 encoding of a distributed counter (range-allocated per host) instead of hashing long URLs — avoids collision checks on the write path."Chose counter-with-ranges over hash+dedup and justified by the write-path cost. That's the crux tradeoff.+ problem solving
Storage"KV store keyed by short code, sharded by code prefix. Reads served from a cache in front — 100k r/s at 90% hit is 10k r/s to the DB."Cache math is explicit and consistent with earlier estimate.+ scope
Deep diveInterviewer probes: "Two datacenters, counter collisions?" Candidate: "Partition the ID space per region so ranges never overlap; encode a region bit."Handled the curveball without flailing. Named the failure and the fix in one breath.+ communication
MissDidn't mention link expiry / TTL cleanup until asked; then recovered with a TTL index + background compaction.One gap, self-corrected on prompt. Not disqualifying at L5.− minor
Verdict: 3.5/4 → hire. Strong estimation and a defensible core tradeoff; single prompted gap on lifecycle. Clear L5, not yet L6 (no cost/ops or migration story).Hire (3.5)

Leveling rubric: the L4 / L5 / L6 bar per axis

Interviewers don't grade "good/bad" — they grade against a level bar on fixed axes. The same transcript can be a strong hire at L4 and a no-hire at L6. Internalize the bars so you can pitch your narration at the target level: an L6 who only demonstrates L4 signals gets down-leveled or rejected.

AxisL4 (mid) barL5 (senior) barL6 (staff) bar
Problem solvingReaches a working solution with hints; recognizes the pattern once nudged.Reaches optimal unaided; states & compares complexities before coding.Reframes the problem, surfaces the constraint that makes it hard, weighs 2–3 approaches by cost.
CodingCompiles with minor bugs; needs prompting to test.Clean, bug-free, self-tested; handles edges unprompted.Production-grade: naming, invariants, failure modes, and testability without being asked.
CommunicationExplains when asked; some silent stretches.Narrates continuously; interviewer never has to guess intent.Drives the room; teaches the interviewer something; aligns on scope like a peer.
Scope / ownershipSolves the stated problem.Generalizes to a variant; considers scale & failure.Connects to org-level impact: cost, migration, ops burden, cross-team blast radius.

Cross-company level mapping

Levels are not portable by number. Google L5 is senior; Meta E5 is senior; Amazon SDE III / L6 is senior. A recruiter quoting "we're leveling you at L5" means wildly different things at different companies, and it sets your comp band. Use this to translate before you negotiate.

Career stageGoogleMetaAmazonMicrosoft
EntryL3E3SDE I / L459–60
MidL4E4SDE II / L561–62
SeniorL5E5SDE III / L663–64
StaffL6E6Principal / L765–66
Senior StaffL7E7Sr Principal / L867

Per-company loop structure

The same skills are scored, but the ceremony differs. Knowing the loop lets you allocate prep: Amazon rewards behavioral depth far more than the others; Meta compresses design into one high-stakes round; Google adds a committee layer that decouples "your interviewers liked you" from "you got the offer."

  • Meta (E5) — Recruiter screen → 1 technical phone screen → onsite "loop" of 2 coding + 1 system design + 1 behavioral ("Jedi"). Design is a single 45-min round, so it's high-leverage. Feedback goes to a hiring manager, not a separate committee. Down-leveling to E4 is common rather than outright reject.
  • Amazon (SDE II/III) — Online assessment (OA) → phone screen → onsite of 4–5 rounds, each anchored to Leadership Principles with a "Bar Raiser" (a trained, cross-org interviewer with veto). Expect ~50% of every round to be LP behavioral in STAR format even in coding rounds. The Bar Raiser's job is to reject candidates who'd merely match the current team's average.
  • Google (L5) — Recruiter → phone screen → onsite of ~4 rounds (coding-heavy, 1 design at senior+). Interviewers write detailed feedback and score 1–4; a hiring committee that never met you decides, then team match, then a comp committee. This is why Google is slower and why "my interviewers loved me" doesn't guarantee an offer.

Platform & logistics mechanics

Tooling failures cost real signal — fumbling the editor reads as fumbling the problem. Know the surface before the round so your cognition goes to the algorithm, not the IDE.

  • CoderPad (Meta, many startups) — collaborative editor with a run button; you can execute code and see stdout. Pick your language early; it has autocomplete off by default. Write and run your own test cases — running code that passes is a strong signal.
  • HackerRank / CodeSignal (Amazon OA, screens) — auto-graded against hidden tests, often timed and proctored. Here correctness against edge cases is everything; there's no human to award partial credit for a clean approach. Read constraints for the intended complexity.
  • Google's tooling — historically a shared Google Doc or a basic editor with no execution. You must dry-run by hand, so practice tracing code on paper. Syntax perfection matters less than a correct, self-verified trace.
DimensionVirtual (default 2026)Onsite
WhiteboardingShared doc / Excalidraw; narrate coordinates verbally.Physical board; more natural for system design boxes-and-arrows.
Read on interviewerHard — muted mics, no body language.Easier to sense hints and pivot.
Failure modesNetwork drops, screen-share lag; have a phone backup.Travel fatigue; back-to-back rounds with a lunch "interview" that still counts socially.

Negotiation with 2026 comp anchors & scripts

Compensation is a range, and the recruiter's first number is the bottom of it. These are representative 2026 total-comp (TC) bands for US big-tech senior roles — treat them as anchors, not quotes, since bands shift with market and location. TC = base + annualized equity + bonus.

LevelBaseEquity/yrApprox TC
Senior (L5/E5)$180–210k$180–280k~$400–520k
Staff (L6/E6)$210–240k$350–550k~$600–850k

Three levers move the number, in order of power: a competing offer (largest), your current/target comp, and the level itself (up-leveling beats any dollar haggle within a level).

  • Exploding offer — a deadline ("decide in 72 hours"). Deadlines are almost always soft. Script: "I'm genuinely excited and want to say yes to the right package. I have a final round elsewhere on the 14th — can we extend the deadline to the 16th so I can commit fully?"
  • Competing offer — the strongest lever. Script: "I have a written offer at $X TC. Your team is my first choice; if you can get to $Y I'll sign today and stop interviewing."
  • No competing offer — anchor on level and market. Script: "Based on my research the band for this level tops out higher than this. Given my scope, can we revisit the equity component specifically?"