Atomic Reps · FrontendREP 01
Explain the code you ship, from memory.
Even the parts your AI wrote.
As your coding agent finishes tasks, it asks you questions on the libraries and concepts it just used, and the ones you miss are asked again later.
One question, your topic
The space between paragraphs in the article view is half what the design says. Fix it.
⏺ Read(src/article/prose.css)
⎿ Read 40 lines
⏺ Grep(pattern: "margin", path: src/article)
⎿ 4 matches
⏺ Update(src/article/prose.css)
⎿ Updated 1 file, +2 -2
⏺ Fixed it in src/article/prose.css. Want me to check the other text styles for the same spacing?
Two stacked paragraphs each declare
Wherever you work
and 7 moreAnswer from memory.
What you miss is asked again.
One review schedule across your coding agent, the browser and Slack.
- One question16 daysSame question, wider gaps01/03
Practice what you miss
A question you miss is asked again. Each time you get it right, the wait before it is asked again is longer.
- Due for reviewtodayClaude CodeMissedWhy does the stale closure keep the old count?Slack DMDueWhat does a partial index skip?BrowserDueWhen does an optimistic update roll back?02/03
See what is due
Every answer, from the agent, the browser or Slack, is saved in one record on the web. Open it to see what is due today.
- atomicreps pacedaily cap3 a dayminimum gap2 hourscoding agenton03/03
Set the pace
Set a daily cap and a minimum gap between questions in your coding agent, or turn them off.
npx atomicrepsEvery question is written in advance. Report a wrong one and it gets fixed.
How it works in your coding agentThe agent can do the work.
You still need the practice.
Working a task out yourself is practice. An agent now does more of that work for you.
Where you learn

Where Atomic Reps
comes in
Why we prioritize answering
A week later, students who tested themselves recalled more than students who reread.
In one lab experiment, students who reread a passage scored higher five minutes later. Students who had to recall it from memory scored higher two days and a week later.
Most students predicted wrong
75%
of students predicted the other study method would do as well or better. Answering from memory gave 84% of them the higher test score.
Karpicke & Blunt 2011 · Science · vs concept mapping →- Answered from memory
- Reread it
% of the passage they could still recall
| Test delay | Reread | Answered from memory |
|---|---|---|
| 5 minutes | 81% | 75% |
| 2 days | 54% | 68% |
| 1 week | 42% | 56% |
Scores a week after answering are higher than two days after rereading
Roediger & Karpicke 2006 · Experiment 1 · N=120 · prose recall · no feedback →The studies measured passages. We built on them because of the code you merged last week and can't explain today.
- Not one lucky study
222 classroom studies point the same way. Across 48,478 students, groups that were quizzed outscored groups that reread.
- Where it stops
Compared with not revisiting the material at all, retrieval practice shows its largest advantage. Compared with explaining the material to yourself, the advantage nearly disappears. Recalling an answer produces higher scores than passive review. Retrieval practice has not been shown to outscore every method.
- What nobody has measured
No one has run the trial on programming skill. These studies shaped our design. They do not measure Atomic Reps.
We print the caveats because they do not weaken the case for the practice · Read every study and caveat →
You decide what each team gets asked, inside Slack.
Platform
- Git11 topicsT3
- Testing strategies12 topicsT3
- API design12 topicsT4
- Databases12 topicsT4
- Kubernetes8 topicsT4
- Observability8 topicsT4
- Caching6 topics–
- Message queues6 topics–
- Accessibility10 topics–
Reps go to the team, or to one person you pick. You set what gets practiced, never who gets watched.
- Topics you pick
- Your team remembers the hard parts
- Free for one channel
Courses for the parts you keep looking up.
The curriculum you never got.
Other platforms teach a subject from the beginning. These courses cover only the parts you rarely use and half-remember: generics, the event loop, the cascade, the TLS handshake.
- 5 levelsModern CSS: Features That Replace JavaScript
Four jobs you still do in JavaScript that the browser now does for you.
CSS - 5 levelsThe Psychology of Why Good Designs FailThe room
decided firstFind the real reason a design failed, whether it was the users, your own judgment or the review, and the fix that reason needs.
Design psychology - 5 levelsEngineering Judgment When AI Writes the CodeYou read it.
You never ran it.Find the bugs in AI-written code that reading alone misses, before you approve it.
Engineering judgment - 6 levelsSuccessful Pipelines, Wrong NumbersPASS ✓…and still wrong
Find the queries, loads and jobs that report success while writing wrong data.
Data & SQL - 6 levelsThe JavaScript Event Loop: Predicting Execution Order
Say which line of async JavaScript runs first, in the browser and in Node, without running the code.
JavaScript - 6 levelsHow React Works
Predict what React re-renders, which state survives a change, and when each Effect runs.
React - 3 levelsSOC 2 Type 2: What the Auditor Tests
Predict which evidence an auditor will record as an exception, and prove each evidence list is complete.
SOC 2 - 6 levels · Live sampleTypeScript: What the Type System Checks
Know which lines tsc checked, which it accepted without a check, and what TypeScript 7 changed in tsconfig.
TypeScript - 5 levelsUI and UX for Engineers: Judging the Interfaces You ShipDesign decisions you made by accident
Which UI numbers are requirements, which are conventions, and which nobody measured.
UI & UX - 6 levelsWire Protocols & Applied Cryptography
What happens on the network between two machines, and who can forge it.
Networks & crypto - 6 levelsWorking With AI: Context, Tools, Agents and Evals
Model output depends on the context you send, not on how you word the prompt.
Working with AI
TypeScript: What the Type System Checks
That colleague keeps suggesting things you don't understand.
- IType FoundationsFree
- IIany, unknown & NarrowingPro
- IIIGenericsSample
- IVType TransformationSample
- VModules & EmitPro
- VIDeclaration Files & TypeScript 7 ConfigPro
Generics · types take arguments
A generic is not a mysterious new kind of type. It is a type that takes arguments, the way a function takes arguments, and like functions, applications nest: a Box can hold another Box.
type Box<T> = { value: T };
type Pair<T> = Box<Box<T>>;
type B = Pair<number>["value"]["value"];What is the type of B?
Earn a course certificate
Tricky to get right first time. Retry as often as you like, and your certificate grade only ever goes up. Pass every lesson and the certificate is yours to share, on LinkedIn or anywhere else.
- Every level of every course
- Graded certificates
- Lessons on the trickiest parts, the ones most people get wrong
Team building with nothing to prepare. You press start.
Three games, and nothing for you to plan. The questions are already written and kept current: you pick a topic, send one link, and everyone joins.
Your engineers argue about code for twenty minutes, and the new hire has met everyone. You showed up and pressed start.
- Nothing to write
- Ours, and re-checked as new versions ship. Never a deck you build the night before.
- One link
- Everyone joins from their own screen. Nobody installs anything.
- On the calendar
- Schedule a round once per channel, and it is posted there each time.
- Every team you run
- Three squads cost you the same minute as one.
AtomicRepsPractice where you already work
A team that still understands what it ships. The questions are sent to them where they already work, and questions they miss are asked again.
No account. No card.
