Think it through.
Start with a prediction. Notice what you assume before you touch the code.
Short TypeScript workouts for the skills you want to keep. Build your own judgment, one small practice at a time.
One complete guided exercise today. A broader program catalog is planned.

A little practice. A stronger instinct.
For developers who want to understandYOUR FIRST REP
A payment can be paid, declined, or pending. What happens when the switch forgets one state?
type PaymentResult =
| { status: 'paid'; receiptId: string }
| { status: 'declined'; reason: string }
| { status: 'pending' };
function describe(result: PaymentResult): string {
switch (result.status) {
case 'paid': return 'Receipt: ' + result.receiptId;
case 'declined': return 'Declined: ' + result.reason;
default: return 'Unknown payment status';
}
}What message does a pending payment receive?
Start with a prediction. Notice what you assume before you touch the code.
Read a focused TypeScript example, choose a repair and check its behavior in the browser.
Write a reflection. Give your future self something useful to return to.
THE FIRST TRAINING BLOCK
Practice the details that make everyday code more reliable: types, async behavior and the assumptions in between.
Planned as four weeks and 12 short workouts within Level 3. Completing this block will not mean completing the whole level.
Explore the previewQuestion your assumptions
Handle what happens out of order
Think beyond the happy path
The discriminated-union exercise is ready to try. The full block is in development.
See the 12-session outlineTHE PROGRAM PATH
Five planned levels cover a route from first programs to system-wide decisions. They describe readiness in a subject, not a universal rank.
Explore all program detailsCreate a small program from a clear brief, check its behaviour and explain how it works.
Turn a small feature brief into understandable, typed and tested behaviour.
Diagnose realistic defects and preserve correct behaviour under boundaries, asynchronous changes and partial failure.
Improve a service or application using explicit design, performance and operational tradeoffs.
Compare system designs, investigate ambiguous failures and plan safe evolution under real constraints.
The catalog can grow through new tracks and editions while preserving completed progress. Personal routes and shared programs are a future direction, not an available feature today.
Tell us what you want to practiseWe’re starting with JavaScript and TypeScript examples. Use the waitlist to tell us which language or track would make the next program useful to you.
The planned catalog ranges from first-program Foundations to advanced systems judgment. Levels describe readiness in a subject, not seniority. Today’s TypeScript preview is best for developers who can already read functions, objects and simple control flow.
The guided preview takes about 8–12 minutes. Take it at your own pace; the aim is thoughtful practice.
Complete a guided TypeScript exercise on discriminated unions and exhaustive switches: predict the behavior, compare repairs, check four requirements and keep your takeaway. No sign-in needed.
The focus is everyday engineering judgment: reading code, spotting assumptions and reasoning about behavior. The planned program is built around short, deliberate practice.
Try one guided rep now, or tell us what you want to practise next.
Early preview · The broader catalog is planned