original_performance_takehome: When the interview is a scheduler
Anthropic's original performance take-home strips away compiler magic, exposes the bottlenecks, and asks whether you can fit real work into a rigid machine.
- Anthropic's take-home is a scheduling exam disguised as code, because the only path to a better score is packing work into a fixed machine's spare slots.
- The repo stays fair by freezing the machine model while leaving only the kernel editable, which makes every gain measurable and every shortcut visible.
- Perfetto-backed tracing turns optimization into visual debugging, so idle slots and pipeline stalls become obvious rather than mysterious.
- The deeper story is cultural, because AI did not just compete with the interview, it pushed the interview to state its rules more explicitly.
This repo is not a puzzle about clever recursion or a trick data structure. It is a miniature performance lab. The challenge is to make a slow kernel faster on a machine that has very specific limits, and to do it without changing the rules of the game.
A take-home built around scarcity
Anthropic's original performance take-home feels unusual because it does not ask candidates to prove they know an algorithm. It asks whether they can read a machine, find the bottleneck, and schedule around it. The repo is deliberately small, but the evaluation is strict: correctness first, then cycle count, then how well you used the machine's slots.
This repo contains a version of Anthropic's original performance take-home, before Claude Opus 4.5 started doing better than humans given only 2 hours.
That line reframes the project. It is not just an interview artifact. It is a benchmark that sits at the point where hiring, systems thinking, and model capability all collide.
If you optimize below 1487 cycles, beating Claude Opus 4.5's best performance at launch, email us at performance-recruiting@anthropic.com with your code (and ideally a resume) so we can be appropriately impressed, especially if you get near the best solution we've seen.
What makes it different
Most coding assessments reward the right answer. This one rewards the right schedule. The simulated machine exposes a custom VLIW layout with 12 ALU slots, 6 vector ALU slots, 2 load slots, 2 store slots, and 1 flow slot per cycle. If you leave lanes empty, the score tells on you.
The key abstraction is simple: instructions are bundled, then executed in parallel, and state changes land at the end of the cycle. That means the model behaves like hardware latching, not like a normal Python script. It is why the best solutions look less like elegant code and more like careful software pipelining.
How the simulator works
The simulator is compact on purpose. A machine cycle reads a dictionary of engines and their operations, executes the whole bundle, and applies the resulting writes at the end of the cycle. That gives the optimizer room to overlap loads, stores, scalar work, and vector work inside one instruction window.
The other important detail is vector width. The repo defines VLEN = 8, so the vector path is not decorative. It is part of the real speedup story, along with manual instruction packing through the builder layer. The starter path uses a simple helper that is intentionally inefficient, which makes the optimization target obvious.
Why the trace viewer matters
watch_trace.py is the kind of tooling that quietly changes the quality of an interview. It turns the simulator into a timeline, proxies that trace into Perfetto, and auto-expands the view so idle lanes and pipeline stalls are hard to miss. That means candidates do not have to infer performance from a score alone. They can see the machine wasting cycles.
How it compares
| Assessment | What it measures | What it rewards |
|---|---|---|
| LeetCode or HackerRank | Algorithm choice and correctness under time pressure | Clean proof of a known pattern |
| SPEC CPU or Geekbench | Hardware throughput on standardized workloads | The machine itself |
| Anthropic's performance take-home | Cycle packing on a fixed simulated VLIW machine | Manual scheduling, trace reading, and disciplined optimization |
That contrast is the whole point. The repo is closer to a controlled systems experiment than a trivia test. It forces a candidate to show how they think when the answer is not hidden in asymptotics, but in the unused slots between real operations.





