~/runtimelab $ man runtimelab

How Runtime Lab works

Runtime Lab is a set of staged programming challenges — build your own Redis, Git, HTTP server or HTTP parser — with one unusual property: there is nothing to install. Every challenge is a private git repo we host for you. Write the code in the browser or push it from your own editor, press Run, and we compile and test it in a sandbox and stream the logs back.

cat ./getting-started

From zero to a passing stage

  1. 1.

    Sign in with GitHub

    One click, no password to invent. Your account tracks enrollments, progress and your git access token.

  2. 2.

    Pick a challenge and a language

    Build your own Redis, Git, HTTP server or HTTP parser — in Go, C, C++, or Python. Language paths teach the language itself through small exercises that build one real tool. Enrolling fixes your language for that challenge, so the tester and your code always agree.

  3. 3.

    Get a project repo

    Starting a challenge creates a private git repo for it, seeded with the starter code for your language. That repo is the project — there is nothing to download and nothing to install.

  4. 4.

    Write the code

    Edit in the browser and save — every save is a commit to your repo — or clone it, work in your own editor and push. Both end up in the same place, and either way your work follows you to any machine you sign in from.

    $ git clone https://runtimelab.io/git/<you>/redis.git
  5. 5.

    Everything for the stage, on one screen

    The stage page is a workbench: a rail down the side showing every stage and how far you have got, the instructions and their hints beside it, and your files and the test output on the right. There is a scratchpad for notes on the stage you are on, and a whiteboard for the whole challenge — for the moment you need to draw the thing before you can write it.

  6. 6.

    Press Run

    We compile your latest commit and run the stage's tester against it in a sandboxed container, streaming the logs back live. A push does the same thing without you pressing anything.

  7. 7.

    Pass stages, one at a time

    Each stage adds one capability and one test. Regression runs keep earlier stages honest, and reference solutions are there when you want to compare notes afterwards. Stuck or done? Each challenge has a discussion where you can ask, share code, and read how others approached it.

cat ./where-tests-run

Where the tests run

On our machines. Pressing Run sends your latest commit to a worker that compiles it and drives the stage's pinned tester against it, then throws the container away. The container has no network access at all, and nothing it writes is shared with anyone else's run.

This used to work the other way round — you installed a runner and it tested your code in Docker on your own laptop. That was a good deal if you had Docker, and a wall if you did not: a Chromebook, a locked-down work machine, or a phone meant you simply could not start. Nothing to install is worth more than the alternative was.

The honest trade: runs are rationed, because they cost us machine time. There are limits per hour and per day, and a free account gets a small lifetime allowance — enough to see whether the format suits you. And we hold your code while a run is in flight, which the old arrangement avoided. What has not changed: the same pinned tester runs for everyone, so a pass means the same thing for everyone.

cat ./pricing

Free versus paid

A free account can read and run the first stages of every challenge — enough to feel the shape of each one before deciding. Going deeper takes an access pass: prepaid for six or twelve months, paid once, never auto-renewing. When a pass ends you keep your code and your progress — nothing is deleted, and the stages you already passed stay open. You just can't reach the deeper ones until you top up again.

See the plans →

ls ./tracks

Tracks

Backend Engineering — rebuild the infrastructure you use every day: an HTTP server, an HTTP parser, Git, Redis, and the TCP/IP stack underneath them, with a new chapter every month. Programming Foundations — language paths in Go, Python and C: many small exercises that add up to one real program, each anchored to a famous open-source codebase.

A third track, AI/ML Engineering, ships as its own pass when it is ready.

Browse the full roadmap →

$ git clone https://runtimelab.io/git/you/redis.git

Start with the first two stages.

They are free to read and run on every challenge — no install, no card.