Node.js: node
Node.js from the event loop up
Timers, promises, streams and a bare HTTP server, with no framework in the way. You learn what blocks the loop by blocking it on purpose, then fixing it.
- Event loop
- Streams
- node:http
- TypeScript
the full shelf
Every course runs live for 10 people or fewer and costs £7.49 to £146.49. Asking for a seat starts a conversation with a tutor.
24/24 shown
Node.js: node
Timers, promises, streams and a bare HTTP server, with no framework in the way. You learn what blocks the loop by blocking it on purpose, then fixing it.
Node.js: fastify
Routes, JSON schemas, plugins and hooks, with request and response types that come from one definition. You finish with an API another team could call on Monday.
Node.js: bullmq
Queues, retries, backoff and scheduled work with BullMQ and Redis. Most of the course is about the job that ran twice, and making sure that's harmless.
Node.js: node:worker_threads
Flame graphs, heap snapshots, worker threads and backpressure, applied to a service that falls over at a few hundred requests a second. It doesn't by the end.
Python: python
Virtual environments, type hints, pytest and a small HTTP service, for people who know some Python but have only ever run it as a script.
Python: fastapi
Pydantic models, dependency injection, background tasks and the OpenAPI document that writes itself. Validation errors stop being a surprise in production.
Python: django
Models, the ORM, migrations, the admin and authentication, built slowly enough that you know what each default is doing for you. Five weeks, one real app.
Python: asyncio
The event loop, task groups, cancellation and timeouts, and why one blocking call stalls everything. For people whose async service is slower than the sync one it replaced.
Rust: cargo
Ownership, borrowing, enums and Result, taught by someone who also writes Go and TypeScript and knows where the friction is. The borrow checker becomes a colleague.
Rust: axum
Routers, extractors, shared state, Tower middleware and error types that turn into proper HTTP responses. A small, fast service you understand line by line.
Rust: sqlx
Connection pools, transactions, migrations and queries checked against the real schema at compile time with SQLx. A typo in a column name stops the build, not the service.
Rust: tokio
The runtime, tasks, select, channels, cancellation safety and tracing, used to build a small message broker. For Rust developers who want to know what .await really costs.
Databases: psql
SELECT, joins, grouping, constraints and NULL, written so that you can still follow the query next month. Two short weeks that make every ORM less mysterious.
Databases: postgres
EXPLAIN ANALYZE, B-tree and GIN indexes, statistics and the slow query log. You take a real slow endpoint and make it fast without guessing.
Databases: redis
Sorted sets, streams, rate limiters, distributed locks and eviction, plus an honest look at when Redis is the wrong answer.
Databases: postgres
Lock levels, expand-and-contract migrations, safe backfills and rolling back a deploy that already changed the table. For whoever runs the migrations on a busy database.
Queues & events: rabbitmq
Producers, consumers, acknowledgements, dead-letter queues and fan-out with RabbitMQ. A short course for anyone who has been told to 'just put it on a queue'.
Queues & events: kafka
Topics, partitions, keys, consumer groups and offsets, from the point of view of the service that reads and writes them rather than the team that runs the cluster.
Queues & events: debezium
Transactional outboxes, change data capture, idempotent consumers and ordering guarantees. How to update a database and publish an event without losing either.
Queues & events: nats
Sagas, replay, poison messages, backpressure and the myth of exactly-once, built on NATS JetStream. Five weeks, ending with you pulling the plug on your own system.
Containers & cloud: docker
Images, layers, multi-stage builds, Compose and volumes, one Dockerfile line at a time. You stop copying Dockerfiles and start writing small ones.
Containers & cloud: kubectl
Pods, deployments, services, probes, config and secrets, for the developer whose code runs on a cluster somebody else set up. kubectl stops being scary.
Containers & cloud: tofu
State, modules, plans and drift, building a small but real cloud environment from an empty account. Every change goes through a plan someone else can review.
Containers & cloud: opentelemetry
Structured logs, metrics, distributed traces and SLOs with OpenTelemetry, wired into a service with three moving parts. You find a planted bug from the dashboard alone.
A repo link, a slow query, a stack trace or a single sentence. A tutor reads every email to [email protected] and replies with a course, or with honest advice if you don't need one.