Skip to content

the catalogue

64 courses, two planes.

32 in Go, 32 in Rust. Every course is taught live to 8 people or fewer and costs £9.64 to £149.64, VAT included where it applies. None of them can be bought without talking to us first.

32 of 64 courses

Go · Language

Types, interfaces, errors and the tools, down to the runtime underneath them.

G1.1

Go from the first line

Types, slices, maps, structs, errors and modules, written from nothing on your own machine until you have a command-line tool you would actually use. For people who have never written Go, whatever else they've written.

[]string{"Slices", "Errors", "Modules", "go test"}

Level
Beginner
Main tool
Go
Length
3 weeks
Price
£9.64

G1.2

Go that reads like Go

Small interfaces, composition, error wrapping, generics and iterators: the habits that separate Go from other languages written in Go. You refactor a working package until it's half the length and easier to test.

[]string{"Interfaces", "Generics", "Iterators", "errors.Is"}

Level
Intermediate
Main tool
Go
Length
4 weeks
Price
£43.64

G1.3

The Go toolchain, properly

Table tests, fuzzing, benchmarks, pprof, the race detector, vet and build tags: the tools that ship with the language and go mostly unused. You find a real allocation hot spot and prove the fix with numbers.

[]string{"Fuzzing", "Benchmarks", "pprof", "Build tags"}

Level
Intermediate
Main tool
pprof
Length
3 weeks
Price
£35.64

G1.4

Deep dive

The Go runtime from the inside

The scheduler, growable stacks, escape analysis, the garbage collector and write barriers, read from the runtime's own source. You trace a goroutine from the go statement to a thread and back, and predict what the collector will do before it does it.

[]string{"Scheduler", "Escape analysis", "GC", "Write barriers"}

Level
Advanced
Main tool
Go runtime
Length
5 weeks
Price
£97.64

Go · Concurrency

Goroutines, channels, the memory model, and what happens under real load.

G2.1

Goroutines and channels

What a goroutine is, how channels synchronise, and how to stop a program that has started many things at once. You build a small concurrent crawler and shut it down cleanly. For people who have only written code that does one thing at a time.

[]string{"Goroutines", "Channels", "select", "WaitGroup"}

Level
Beginner
Main tool
Go
Length
4 weeks
Price
£19.64

G2.2

Concurrency patterns that hold up

Context, errgroup, worker pools, pipelines, cancellation and backpressure. You take a service that leaks goroutines under load and make it shut down cleanly every time.

[]string{"context", "errgroup", "Worker pools", "Backpressure"}

Level
Intermediate
Main tool
context
Length
4 weeks
Price
£39.64

G2.3

Races, locks and atomics

The Go memory model, mutexes, atomics, and what the race detector can and can't see. You find real races in a real codebase and fix them without putting one lock around everything.

[]string{"Memory model", "sync.Mutex", "Atomics", "-race"}

Level
Intermediate
Main tool
sync
Length
4 weeks
Price
£53.64

G2.4

Deep dive

Go under load

GOMAXPROCS, contention profiles, sync.Pool, GOGC and GOMEMLIMIT, and how the scheduler behaves at the edge. You push a service until latency falls apart, find out why, and move the edge.

[]string{"GOGC", "GOMEMLIMIT", "Contention", "Tracing"}

Level
Advanced
Main tool
pprof
Length
5 weeks
Price
£119.64

Go · Testing

Table tests, real databases, fuzzing and load, so a green build means something.

G3.1

Testing Go from the first test

Table tests, subtests, helpers, httptest and what makes a test worth keeping, on code you wrote without any. For people whose test suite is mostly hope.

[]string{"Table tests", "Subtests", "httptest", "Coverage"}

Level
Beginner
Main tool
go test
Length
2 weeks
Price
£12.64

G3.2

Testing against the real thing in Go

Real PostgreSQL and Redis in containers, fakes instead of mocks, golden files, and testing/synctest for code that depends on time. You delete the tests that were only testing the mocks.

[]string{"Testcontainers", "Fakes", "Golden files", "synctest"}

Level
Intermediate
Main tool
Testcontainers
Length
3 weeks
Price
£44.64

G3.3

Property tests and fuzzing in Go

Native fuzzing, property-based tests with rapid, and mutation testing, to catch the cases nobody thought to write down. You let the computer break your parser, then fix what it found.

[]string{"Fuzzing", "Property tests", "rapid", "Mutation testing"}

Level
Intermediate
Main tool
go test -fuzz
Length
3 weeks
Price
£34.64

G3.4

Deep dive

Load, failure and legacy Go

Load tests with k6, fault injection, and upgrading an old codebase in small safe steps. You push a real service until it falls over, find out what breaks first, and change it without a rewrite.

[]string{"Load testing", "Fault injection", "Upgrades", "Legacy code"}

Level
Advanced
Main tool
k6
Length
5 weeks
Price
£95.64

Go · Services

HTTP, PostgreSQL and gRPC with the standard library first, then your own storage engine.

G4.1

Your first Go service

An HTTP API with net/http and nothing else: routing, JSON, middleware, validation, errors a client can act on, and tests that call real handlers. For people who have used web frameworks and want to see what's under them.

[]string{"net/http", "ServeMux", "Middleware", "httptest"}

Level
Beginner
Main tool
net/http
Length
3 weeks
Price
£17.64

G4.2

Go and PostgreSQL

database/sql, pgx and sqlc, connection pools, transactions, migrations and the bugs that only show up under concurrent writes. You take an endpoint from a slow, racy query to a fast, correct one.

[]string{"pgx", "sqlc", "Transactions", "Migrations"}

Level
Intermediate
Main tool
pgx
Length
4 weeks
Price
£47.64

G4.3

gRPC and service contracts in Go

Protobuf, gRPC, streaming, deadlines, retries and schema changes that don't break a client you can't see. You split one service in two and evolve the contract between them without downtime.

[]string{"Protobuf", "gRPC", "Deadlines", "Versioning"}

Level
Intermediate
Main tool
gRPC
Length
3 weeks
Price
£55.64

G4.4

Deep dive

A storage engine in Go

A write-ahead log, a B-tree, fsync and crash recovery, built from an empty file. You pull the plug in the middle of a write, restart, and prove that nothing was lost.

[]string{"WAL", "B-trees", "fsync", "Crash testing"}

Level
Advanced
Main tool
Go
Length
5 weeks
Price
£113.64

Go · Data

SQL, caches and streams, down to a query engine of your own.

G5.1

SQL for Go developers

Tables, keys, joins, aggregates, transactions and schema design, written by hand in psql and then called from Go. For people who have let an ORM do all of this so far.

[]string{"Joins", "Transactions", "Schema design", "psql"}

Level
Beginner
Main tool
PostgreSQL
Length
3 weeks
Price
£15.64

G5.2

Caching and Redis in Go

Cache-aside, expiry, invalidation, stampedes stopped with singleflight, and the data structures that make Redis more than a map. You take a read-heavy endpoint down by an order of magnitude and keep it correct.

[]string{"Invalidation", "singleflight", "Expiry", "Sorted sets"}

Level
Intermediate
Main tool
Redis
Length
3 weeks
Price
£32.64

G5.3

Streams with Kafka and NATS in Go

Consumer groups, ordering, the transactional outbox and why exactly-once is harder than it sounds. You split one feature out of a monolith without losing a single event.

[]string{"Kafka", "NATS", "Outbox", "Consumer groups"}

Level
Intermediate
Main tool
Kafka
Length
4 weeks
Price
£58.64

G5.4

Deep dive

A query engine in Go

A SQL parser, a planner and an executor with indexes and joins, built over your own storage. You run one query through every stage and can say exactly why the plan came out the way it did.

[]string{"Parsing", "Query planning", "Joins", "Indexes"}

Level
Advanced
Main tool
Go
Length
5 weeks
Price
£111.64

Go · Systems

Sockets, proxies and replication, ending with Raft from the paper.

G6.1

Networks from a raw socket in Go

TCP, DNS, timeouts and connection pools, with the net package on one side of the screen and a packet capture on the other. For people who have only ever seen a network through an HTTP client.

[]string{"TCP", "DNS", "Timeouts", "Packet capture"}

Level
Beginner
Main tool
net
Length
3 weeks
Price
£18.64

G6.2

Build a reverse proxy in Go

Load balancing, health checks, retries, TLS termination and HTTP/2, in a proxy you write yourself. You put it in front of a real service and kill backends while the traffic keeps flowing.

[]string{"Load balancing", "Health checks", "Retries", "HTTP/2"}

Level
Intermediate
Main tool
net/http
Length
4 weeks
Price
£52.64

G6.3

Replication and consistency in Go

Leaders, followers, quorums, clocks and what the word consistency actually promises, on a replicated store you can partition on purpose. You watch each guarantee hold, then watch it fail.

[]string{"Replication", "Quorums", "Clocks", "Partitions"}

Level
Intermediate
Main tool
Go
Length
4 weeks
Price
£56.64

G6.4

Deep dive

Write your own Raft in Go

Leader election, log replication and snapshots, from the paper to a working key-value store, tested on a simulated network that drops, delays and reorders everything. You find out why the paper is so careful.

[]string{"Raft", "Consensus", "Snapshots", "Simulation"}

Level
Advanced
Main tool
Raft
Length
5 weeks
Price
£117.64

Go · Security

Safe defaults, auth and TLS, then attacking your own service.

G7.1

Secure Go from day one

Input validation, SQL injection, secrets, password hashing and safe defaults, built into a small service from the first commit. For people who have only thought about security after something went wrong.

[]string{"Validation", "Injection", "Secrets", "Password hashing"}

Level
Beginner
Main tool
Go
Length
2 weeks
Price
£10.64

G7.2

Authentication and authorisation in Go

Sessions, OAuth 2, OpenID Connect, where JWTs help and where they hurt, and permissions that stay readable as the rules grow. You secure one API for a browser and a mobile app at once.

[]string{"OAuth 2", "OIDC", "JWT", "Permissions"}

Level
Intermediate
Main tool
OAuth 2
Length
4 weeks
Price
£48.64

G7.3

TLS and cryptography in Go

The standard library's crypto packages, certificates, mutual TLS between services, and which primitives to reach for and which to leave alone. You run your own small certificate authority and rotate its keys without downtime.

[]string{"TLS", "mTLS", "Certificates", "Key rotation"}

Level
Intermediate
Main tool
crypto/tls
Length
3 weeks
Price
£36.64

G7.4

Deep dive

Breaking Go services

Your own code, read the way an attacker reads it: SSRF, races as vulnerabilities, unsafe parsing and the supply chain, with govulncheck on the way. You break into a deliberately weak service, then close every hole you used.

[]string{"SSRF", "govulncheck", "Threat modelling", "Supply chain"}

Level
Advanced
Main tool
govulncheck
Length
5 weeks
Price
£101.64

Go · Production

Binaries, telemetry and Kubernetes: everything between git push and a service that stays up.

G8.1

Ship a Go binary

Static builds, cross-compiling, small container images, systemd and a CI pipeline, ending with your service on a real server. For people whose code has only ever run on their own machine.

[]string{"Static builds", "Containers", "systemd", "CI"}

Level
Beginner
Main tool
Docker
Length
3 weeks
Price
£13.64

G8.2

Observability in Go

Structured logs with slog, metrics and traces with OpenTelemetry, continuous profiling and alerts that mean something. You instrument a service until you can explain any slow request from the trace alone.

[]string{"slog", "OpenTelemetry", "Metrics", "Alerts"}

Level
Intermediate
Main tool
OpenTelemetry
Length
3 weeks
Price
£37.64

G8.3

Go on Kubernetes

Probes, graceful shutdown, resource limits and what GOMEMLIMIT should be set to, then client-go and a small controller of your own. You run a rolling deploy under load and nobody sees an error.

[]string{"Probes", "Graceful shutdown", "client-go", "Controllers"}

Level
Intermediate
Main tool
Kubernetes
Length
4 weeks
Price
£45.64

G8.4

Deep dive

Go at high traffic

Load shedding, connection pools, memory leaks, profiling in production, capacity planning and running an incident. You keep a service up through a simulated launch day, then write the postmortem.

[]string{"Load shedding", "Capacity", "Leaks", "Incidents"}

Level
Advanced
Main tool
Go
Length
5 weeks
Price
£99.64

start here

Write it in Go.

Small, plain and fast to ship. A runtime schedules your goroutines and collects your garbage, and you learn exactly what that costs.

The Go planefrom £9.64

or here

Write it in Rust.

No collector and no data races, enforced before the program runs. The compiler argues with you, and you learn what it's protecting.

The Rust planefrom £11.64

Not sure which? Write to us about what you're building and where it hurts: [email protected]