Python test workbench
test_cache.pyExample: a Python test checks that an LRU cache evicts its least recently used item, and both tests pass.
Open the workbench ↗Interactive labs on caching, queues, consistency, architecture, and AI-assisted delivery, with real Python in your browser and a project you can show in your portfolio. New to programming? A free path takes you from your first function.
Example: a Python test checks that an LRU cache evicts its least recently used item, and both tests pass.
Open the workbench ↗Requests wait in the queue. Each one is a hit or a miss.
Open the full experiment ↗Each lab isolates one idea: predict what will happen, move a lever, and check. Use them on their own, or as practice for a lesson.
8 more labs are in the works. See what is coming ↓
A path is a sequence of stages with short lessons, practice, and checkpoints, free from start to finish. Lessons shared between paths count once.
From values and functions to data structures, tests, APIs, architecture, distributed systems, production, and engineering with AI.
8 stages · 40 lessons · 15 Python challenges · 5 experiments
Open the path ↗4 more paths are in the works. See what is coming ↓
Every lesson has a diagram, short sections, glossary terms explained on the spot, and a two-question checkpoint. Spaced recall brings ideas back before you forget them.
Write and run Python in the browser against real tests. Hints when you are stuck, and your drafts are saved as you type.
Change one variable and watch a cache, a queue, or a replica react. Predict first, then check.
Relay starts as a tiny job queue and gains an API, a database, workers, and observability, one stage at a time.
One codebase, seven evolutions. Each stage adds a capability you can explain, test, and show in an interview.
A direction, not a promise: what is being planned and in which order. New labs come first, because each one is practice you can use on its own. Everything here will be free, like the rest.
Write SQL against a small seeded database that runs in your browser, check each query against the expected rows, and keep your drafts as you go. The same editor as the Python challenges, for joins, grouping, and constraints.
Send bursts of traffic to a fixed window, a sliding window, and a token bucket side by side. See where each one lets a burst through, what a refused client receives, and how a limit protects a shared service. The Python challenge builds one token bucket; this lab compares the algorithms under traffic.
Many clients retry against a service that is recovering. Compare immediate retries, exponential backoff, jitter, and a retry budget, and watch when retries help and when they keep the service down. The Python challenge computes one schedule; here you see a crowd of clients at once.
Move a selectivity slider and compare reading a table through an index with scanning all of it, then add writes and watch each index slow them down. The search experiment compares two ways to search a sorted list; this one asks when a database should keep that sorted shortcut at all.
Run commit, branch, merge, rebase, reset, and revert, and watch the commit graph and HEAD change as you type. Challenges ask you to reach a target graph or recover a lost commit, without touching your own repositories.
A simulated shell on a virtual file system: move around, combine small tools with pipes and redirection, and solve tasks checked by the files you leave behind. It is deterministic and safe, so a wrong command costs nothing.
Send requests to several servers with round robin, least connections, and two random choices. Slow one server down and see which policy notices. The queues experiment has one shared line; here each server has its own, and the balancer has to choose.
A service gets slow. Use its logs, metrics, and a trace to find the dependency behind it, write down the evidence, and decide which alert would have caught it sooner.
Start from zero: how a computer works and why software runs, logic and your first programs in Python, and algorithmic thinking with searching, sorting, and recursion. The recommended first path.
Move around a Linux shell with confidence, combine small tools with pipes, write safe bash scripts, and use Git without fear: branches, merges, and recovering lost work. With a simulated terminal and a visual Git lab in the browser.
From your first SQL query to modeling, query plans, isolation levels, and incremental pipelines, then streaming and data in production. With a SQL workbench in the browser and Pulse, an analytics pipeline built on Relay.
Servers, containers, continuous delivery, infrastructure as code, orchestration, and reliability, practiced with browser simulations and guided local exercises, ending with Ship Relay: package, deploy, observe, and operate the system you built, optionally on a free cloud account.
Your progress, notes, and drafts live in your browser, not on a server. Export a backup whenever you like.
The learning design follows research on retrieval, spacing, and worked examples, and says where the evidence ends.
Every exercise is tested automatically, and the content says plainly what has not been reviewed yet.
Answer a few short questions and get a starting stage. About three minutes, nothing is graded.