Rafael Romão Director of Technology · Belo Horizonte
← The short version

Coding Labs

Twenty-two production-style backend components to implement yourself, in Java and in Go. Each one comes with a written contract, a diagram, a starter stub, a test suite that checks the contract, and a reference solution to compare against afterwards.

Open the labs Source on GitHub

01

What is in a lab

Small components of the kind a backend actually runs on: a blocking queue, a rate limiter, an outbox, a route planner. Each is scoped to be built in a sitting and still have edges worth getting wrong.

02

Four steps per lab

The order matters more than the code.

  1. Read the contract and the tests.

    List the inputs, outputs, boundaries, invariants, failure behaviour and limits before writing anything.

  2. Implement the starter.

    Replace every TODO. Run the lab's tests and fix what fails before reading anything else.

  3. Compare.

    Open the reference solution and explain one difference in representation or synchronization.

  4. Change something.

    Add a test for an edge case you chose, or implement the variation the lab page suggests.

03

The 22 labs

Six groups. New here? Start with L05 Bounded TTL Cache: its tests show the shape the others expect, with an injected clock, an inclusive deadline and a concurrent schedule.

Pick one and make the tests pass.

Every lab page has the task, the diagram, the API, the rules, a worked example and a checklist.

Open the labs