A CODING GYM FOR THE AI ERA

Keep your coding
muscles strong.

Using AI every day can mean writing less code yourself. CodeStamina is a gym for your coding skills: short, hands-on exercises to keep you practising, stay sharp, and make coding part of your routine again.

Guided TypeScript preview · 8–12 minutes · No account needed

Sculptural green code brackets framing a floating orange barbell above a dark sage platform

WHY A CODING GYM?

AI does more of the coding. Make room for your own reps.

01

Less coding means fewer reps.

When AI writes the function or fixes the bug, you get the result. You may also miss the practice of working through it yourself.

02

Give your skills a workout.

Set aside time to solve a problem, write a fix, and test your thinking. Like exercises at the gym, each coding exercise gives you something specific to practise.

03

Keep coming back.

Make hands-on coding a regular habit alongside your AI tools. Short sessions give you a manageable way to keep using the skills you want to maintain.

Fight coding atrophy.
Keep practising.

You train your muscles by using them. Apply that same idea to coding: pick an exercise, do the work yourself, get feedback, and repeat. That’s the purpose of CodeStamina.

INSIDE THE FREE PREVIEW

Read it. Fix it. Explain it.

This guided preview lets you investigate a payment function that compiles successfully but mishandles a valid payment status. You compare prepared repairs; hands-on editor workouts are planned.

01

Predict the result.

Read a small piece of code and decide what it will do. Answer before checking the explanation to put your own understanding to the test.

READ & REASON
02

Choose a repair.

Spot the missing case, compare two fixes, and learn why one protects the code when the requirements change.

COMPARE & CHECK
03

Explain what you learned.

Write the rule you want to remember in your own words. Download your takeaway and use it in your next code review.

REFLECT & APPLY

TRY A SHORT WARM-UP

Can you spot the missing payment case?

Try the three-step warm-up below, then continue with the expanded guided preview to compare three repairs against four requirements.

Make every payment state explicit

Short preview · TypeScript · Type narrowing · Level 3

STEP 1 OF 3 · PREDICT

What message does a pending payment receive?

A payment can be paid, declined, or pending. The switch handles two of them. Commit to an answer before reading on.

PAYMENT.TS

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';
  }
}

The default is the line worth arguing about.

Read the full exercise on exhaustive switches

PLANNED: A ROUTINE YOU CAN FOLLOW

One goal. Four weeks.
More reliable TypeScript.

Build a coding habit with three planned workouts a week. Each session targets a practical TypeScript skill, from handling invalid data to fixing async bugs. Follow the training plan, do your reps, and return for the next workout.

AVAILABLE TODAY

The guided TypeScript preview is free to try now. It uses prepared repairs and requirement checks. The twelve-session hands-on program is planned and is not open yet.

Try the guided preview

The twelve sessions

Planned program

WEEK 1

  1. Boundaries and baseline

    Repair a transformation and identify missing and empty values.

    PLANNED
  2. Grouping with a clear contract

    Build a grouping utility with explicit identity and ordering rules.

    PLANNED
  3. Tests that protect behaviour

    Catch a realistic boundary defect while accepting correct alternatives.

    PLANNED

WEEK 2

  1. Understanding failures

    Distinguish retryable, permanent and cancelled outcomes.

    PLANNED
  2. Latest result wins

    Prevent an older asynchronous result from replacing a newer one.

    PLANNED
  3. Bounded retries

    Apply a capped retry policy with predictable time inputs.

    PLANNED

WEEK 3

  1. Cancellation that holds

    Preserve cancellation and cleanup across asynchronous steps.

    PLANNED
  2. Refactor with confidence

    Simplify branching while preserving externally visible behaviour.

    PLANNED
  3. Process an event once

    Handle duplicate event identities without duplicate effects.

    PLANNED

WEEK 4

  1. Put reliability together

    Combine validation, failure handling and a small feature.

    PLANNED
  2. Fresh-context challenge

    Apply the skills to an unfamiliar reserved task.

    PLANNED
  3. Reassessment and next block

    Complete another reserved task, review fresh evidence and select a continuation or refresher.

    PLANNED

PLANNED PROGRAMS

Choose the skill you want to build next.

Five planned levels run from first programs to system-wide decisions. A level describes readiness in a subject, not seniority — you can sit at Level 4 in backend work and Level 2 in frontend.

Open a level to see where it starts and what it leaves you able to do.

01

Foundations

Create a small program from a clear brief, check its behaviour and explain how it works.

WHERE IT STARTS

No coding experience required. Introductory workouts explain the editor, running code and reading feedback before expecting independent work.

WHAT YOU'LL PRACTISE

Programs, inputs and outputs · Running code and reading feedback · Values, variables and basic types · Expressions and comparisons · Conditions and branching · Loops and repetition

Explore this level
02

Practical Developer

Turn a small feature brief into understandable, typed and tested behaviour.

WHERE IT STARTS

Can use functions, conditions, arrays and objects and trace simple code.

WHAT YOU'LL PRACTISE

Type annotations and inference · Object types and interfaces · Unions and narrowing · Optional values and null handling · Reusable generic functions · Filtering, mapping and reducing

Explore this level
03

Reliable Developer

Diagnose realistic defects and preserve correct behaviour under boundaries, asynchronous changes and partial failure.

WHERE IT STARTS

Can independently build small typed features, write tests and use promises.

WHAT YOU'LL PRACTISE

Boundary transformations · Stable grouping and indexing · Conflicting and malformed records · Contracts and invariants · Error classification · Retry policies and backoff

Explore this level
04

Advanced Engineering

Improve a service or application using explicit design, performance and operational tradeoffs.

WHERE IT STARTS

Comfortable with tested feature delivery, asynchronous failure handling and safe refactoring.

WHAT YOU'LL PRACTISE

Module boundaries and dependency direction · API contracts and evolution · Domain modelling · Configuration and feature controls · Relational modelling and constraints · Transactions and concurrent updates

Explore this level
05

Systems and Technical Judgment

Compare system designs, investigate ambiguous failures and plan safe evolution under real constraints.

WHERE IT STARTS

Experience maintaining services and reasoning about data, operations and cross-component changes.

WHAT YOU'LL PRACTISE

Consistency and availability tradeoffs · Delivery and processing guarantees · Event ordering and reconciliation · Coordination, leases and ownership · Distributed workflows and compensation · Partitioning and hot spots

Explore this level

The longer-term plan brings workouts into a personal training routine: follow a program, keep a practice log, and revisit skills on fresh problems. Creating and sharing your own programs is also planned.

Explore all program details

TRACKS UNDER CONSIDERATION

TypeScript first. Your vote helps shape what's next.

We’re considering more areas of practice. Tell us which would help you at work; your interests help us decide what to build next.

Comeback

Rebuild fluency with a baseline, supported practice and gradually reduced scaffolding.

Maintenance

Rotate practised skills, unfamiliar variants and delayed checks.

Testing and Debugging

Practise reproduction, test design, asynchronous failures and diagnostic evidence.

Frontend Engineering

Cover semantic HTML, CSS, accessibility, browser behaviour, state and UI testing.

Backend and Data

Cover HTTP, validation, persistence, transactions, queues, caching and reliability.

Algorithms and Data Structures

Practise collections, search, sorting, recursion, trees, graphs and complexity.

Secure Development

Work with trust boundaries, access control, data handling and threat modelling.

Language and Stack Bridges

Transfer familiar concepts into a new language or ecosystem.

AI-Assisted Code Review

Explain generated changes, challenge assumptions, find defects and verify results.

Tell us what you want to practise

A few things you might be wondering.

Still unsure? Email mo@codestamina.com — a person answers.

Who is CodeStamina for?

Developers who use AI every day, code less than they used to, and want to keep their hands-on coding skills sharp. The catalog plan runs from first-program Foundations to systems judgment, while today’s guided preview suits anyone who can already read functions, objects and simple control flow.

What do you mean by coding atrophy?

We use it to describe the feeling of getting rusty when you spend less time coding yourself. CodeStamina is built to help you make room for regular practice alongside AI-assisted work.

What can I actually do today?

Start with the free guided TypeScript preview: predict the behaviour, compare three prepared repairs, check four requirements, and download your reflection. You can also take the developer benchmark or browse the TypeScript exercises. The guided preview needs no sign-in or payment.

How long is a workout?

Eight to twelve minutes for the guided preview. Take it at your own pace; the aim is thoughtful, repeatable practice.

Should I use AI during a workout?

Try the problem yourself first, before asking AI for a solution. The exercise is your chance to do the coding and problem-solving yourself. You can still use AI in your day-to-day work.

Is this interview prep?

The focus is keeping everyday coding skills in use: writing code, debugging, testing and solving problems yourself. The planned programs turn that practice into a regular training routine.

What does the waitlist actually get me?

Email updates about relevant program availability. Your level and topic answers help us understand demand and decide what to build next. Joining does not create an account or give access to the planned programs.

Why only TypeScript?

JavaScript and TypeScript come first so we can build a focused, useful starting point. The planned tracks are candidates; use the waitlist to tell us which languages and topics matter to you.

JOIN THE WAITLIST

Help shape what we build next.

Tell us where you want to start and what you want to practise. We’ll use your answers to understand demand and email you about relevant program availability.

What would you like to practise?

We store your email and answers for this waitlist. No campaign is being sent now. Contact mo@codestamina.com to ask us to remove your entry.

Your coding skills.
Give them a workout.

Start with the free guided preview, then join the waitlist for hands-on workouts and a regular training program.