Phase 12 — Grandmaster

Read this before doing anything in this phase.

This phase covers topics that are not required for 99% of interviews, including senior and staff roles at top FAANG companies. The content here is for a narrow set of candidates:

  • ICPC World Finals competitors
  • Codeforces red / IGM
  • Quant developers at Jane Street, Hudson River, Two Sigma, Citadel for the most algorithmic roles
  • Compiler engineers at LLVM, GCC, Intel, NVIDIA
  • Database engineers at the algorithm-heavy companies (Snowflake, Databricks query optimizer, CockroachDB, TimescaleDB)
  • Cryptography / coding theory researchers
  • A few specific roles at Google Research, DeepMind, OpenAI infrastructure

If you are not on this list, skip this phase entirely. Time spent here is time not spent on Phase 10 (testing/debugging) and Phase 11 (mocks), which will show up in your interviews.


When to Use This Phase

Use this phase if all are true:

  1. You have already completed Phases 1–11 and are passing the mocks at your target level.
  2. You are interviewing for one of the roles listed above.
  3. The job description explicitly mentions ICPC, competitive programming, max flow, suffix structures, FFT, or “research-grade algorithms.”
  4. You have at least 3 months before your interview.

If any of these are false, stop. Go back to Phase 10 or 11.


When to Skip This Phase

Skip this phase if any is true:

  • You are interviewing for SWE-II / E4 / SDE2 or below.
  • You are interviewing for generic senior or staff backend at FAANG (mocks 06–08 cover what’s actually asked).
  • You have less than 3 months before your interview.
  • You are still failing Phase 11 mocks at your level — those are higher leverage.
  • You are an SRE, mobile engineer, frontend engineer, ML engineer (non-research), or data engineer.

The opportunity cost is real. Each lab here takes a week. That week is better spent on Phase 11 mock attempts for the vast majority of candidates.


What’s In This Phase

The labs cover algorithms and data structures that appear on Codeforces / ICPC / IOI and almost nowhere else:

LabTopicWhen it appears
01Max Flow (Dinic)Quant, compiler, graph-heavy research
02Bipartite Matching (Hopcroft-Karp)Assignment problems; some quant
03Heavy-Light DecompositionICPC, very rare in industry
04Centroid DecompositionICPC, rare in industry
05Suffix AutomatonString-heavy research, bioinformatics
06Advanced DP Optimization (CHT, Knuth, D&C)Quant, compiler (loop scheduling)
07FFT / Polynomial MultiplicationCryptography, signal processing, some compiler
08Advanced Geometry (convex hull, intersections)Geometric computing, games, CAD
09ICPC Contest SimulationCompetitive programming only
10Inclusion-Exclusion, BurnsideCombinatorics-heavy research

Each lab has the standard 23-section format plus an extra “When to Skip This Topic” section right after Interview Context, so you can opt out of individual labs.


How to Use This Phase

  1. Read this README in full.
  2. Look at the target job descriptions you’re applying to. Search them for the specific keywords (max flow, suffix automaton, etc.).
  3. If you find a match, do that specific lab. If not, skip.
  4. Doing the whole phase end-to-end is rarely the right call. Cherry-pick.

Realistic Expectations

Even if you do this phase, you may never encounter these topics in an interview. The value is:

  • Confidence signal — knowing these exist and roughly how they work lets you say “I’m familiar with Dinic’s max flow” if it ever comes up.
  • Insight transfer — understanding centroid decomposition deepens your tree intuition for problems you will see.
  • Specific roles — if you’re applying to a quant fund’s algo research team, expect this material.

This phase is intentionally not graded against the same passing bar as other phases. It’s read-only intellectual investment for a small group.


What This Phase Is Not

This phase is not:

  • A prerequisite for Phase 11.
  • Required for any FAANG interview.
  • A signal of seniority.
  • Going to help you with system design.

If you’re using this phase to procrastinate the harder thing (Phase 10 testing labs, Phase 11 mocks), stop. That’s the actual failure mode, and the only one of consequence.


After This Phase

If you complete the relevant labs, you have what most ICPC mid-rank teams have. You’re prepared for the narrow algorithmic interviews. You’re not more prepared for normal FAANG interviews than someone who did Phase 11 twice.

Return to Phase 11 for mock-12 (competitive style) reps, then to your job search.