Phased roadmap (honest calendar)
12-hour days, 6 days/week. Hours below are deep hours, not calendar hours. A 12-hour day yields ~9 deep hours. Plan in deep hours.
Three tracks. Pick the one that is true, not the one that feels ambitious.
Track A — Strong SWE, weak ML / GPU
16–24 months to a serious application. Month 1 is 06-days/first-30-days.md.
| Phase | Deep hours | Calendar (12h×6) | Exit criteria |
|---|---|---|---|
| P0 Foundations | 250–350 | 6–8 weeks | CSAPP 1–9 worked, not skimmed. Linear algebra problem sets through SVD. Roofline + IEEE-754 fluent. Take-home < 8k. |
| P1 First kernels | 250–350 | 6–8 weeks | Tiled GEMM CUDA + Triton. Fused RMSNorm. Correct Flash-style attention fwd. Nsight or equivalent used weekly. Take-home < 3k. Tiny GPT trained. |
| P2 LLM kernels | 300–400 | 8–10 weeks | FA2-style fwd+bwd you understand. Decode vs prefill kernels. Paged KV. FP8 cast path. A writeup with % of peak on a real GPU. Take-home < 2k. |
| P3 Systems | 300–400 | 8–10 weeks | Implement or surgically modify: TP all-gather/reduce-scatter overlap, a toy vLLM-like pager, a continuous batcher. You can design inference serving on a whiteboard for 45 min without collapsing. |
| P4 Post-training + culture | 120–160 | 3–4 weeks | CAI, RLHF, DPO, RLAIF as procedures. RSP read. Interpretability enough to pair (SAE idea, residual stream). Why-Anthropic essay that is specific. |
| P5 Interview + take-home sport | 200–280 | 5–7 weeks | Take-home as low as you can honestly get (aim < 1487 if you want the email door). Daily timed implementation. 10 recorded system-design drills. Apply. |
| Total | ~1400–1900 | ~9–12 months min, 16–24 with jobs/life |
If you have a full-time job, cut to 4–5 deep hours/day and double the calendar. Do not pretend otherwise.
Track B — CUDA / HPC, weak LM theory
8–14 months.
You already have P1 instincts. Do a compressed P0 (CSAPP only if you never did it; numerics you probably have). Start the take-home on day 1. Spend the saved months on:
- Transformer derivation + from-scratch train (you will be embarrassed how many HPC people cannot do this)
- FlashAttention paper → reimplement, even if you have written similar kernels
- Prefill/decode, KV, continuous batching (this is where HPC people fail interviews)
- CAI / RSP / "Why Anthropic?" (this is where HPC people sound like they want a faster GEMM job, which they will also notice)
Apply when you can teach attention to a researcher and a batcher to an infra SWE in the same afternoon.
Track C — ML researcher, weak systems
14–24 months. This is the longest emotional path because you will feel "behind" while doing CSAPP. Do it anyway. Hume hired undergrads who could see a machine. He did not hire people who had only trained models.
P0 is non-negotiable and will feel insulting. It is not. Your first CUDA week will show you.
Skip some of P4 theory (you have it). Do not skip P5 take-home. Your publication list will not save a 40,000-cycle submission.
What "ready to apply" means (all tracks)
You may apply when all of these are true:
- Take-home is a number you are willing to put next to your name. If it is not under ~2,000 you are not a PE candidate yet. If it is under 1,487, use the email door.
- You have a public kernel artifact with numbers and a postmortem.
- You can derive attention, cost KV cache, and explain FlashAttention IO on a blank whiteboard.
- You can design an inference service: prefill/decode, paging, batching, streaming, tail latency, one autoscaling signal that is not GPU util.
- You can implement a 90-minute multi-part systems problem without panic.
- You can describe Constitutional AI as a training procedure and say something non-generic about why you want this lab.
- You have a one-paragraph "most impressive low-level thing" with a link.
Applying earlier to "get practice" burns the 12-month reapply clock. Do not.
After you apply
Keep the Friday take-home sport and the weekly artifact. The loop can take a month. Do not go idle. If you fail, the prompt says reapply in 12 months or sooner if something material changed. A new kernel repo with a 3× cycle win is material. A new course certificate is not.