Skip to content

Labs

Labs are short and mechanical: 15–45 minutes, one skill, immediate feedback. They exist so that a concept moves from "I read that" to "my fingers know that".

Status

Labs are being written alongside the volumes. The exercises embedded inside each lesson are complete and available now — start there.

How a lab works

  1. Setup — a starting repository state or a snippet to paste.
  2. Task — one clearly specified goal with a testable outcome.
  3. Checks — how to know you succeeded, usually a command that must pass.
  4. Stretch — an optional harder variant.

Planned labs

Lab Volume Skill
Set up a project with uv 3 Packaging
Write your first pytest suite 3 Testing
Add ruff and mypy to CI 3 Quality gates
Build a GitHub Actions pipeline 3 CI/CD
Containerise a FastAPI service 3 Docker
Load and clean a messy CSV 5 pandas
Same task in Polars 5 Polars
Query Parquet with DuckDB 4 Analytics
Build a leak-free train/test split 6 ML
Chunk and embed a document set 9 RAG

In the meantime, every lesson contains its own exercises with worked solutions:

Go to the lessons