DevOps / SRE
Operate the systems other engineers build. Bash + Go for tooling; Docker, CI runners, package managers, log aggregators, load balancers, service discovery for the platform.
Course sequence
- 01
Bash Fundamentals
Not startedLearn Bash: the shell every Linux server runs and most macOS terminals use. Variables, conditionals, loops, pipes, processes, scripts. Every lesson is hands-on — your code runs as a real bash script.
beginnerbash14 lessons~4h - 02
Bash Intermediate
Not startedLevel up from Bash Fundamentals. Arrays, parameter expansion, process substitution, traps, regex, robust scripting patterns. Write bash that doesn't fall over the moment input has a space in it.
intermediatebash7 lessons~2h - 03
Bash Advanced
Not startedBeyond Bash Intermediate. Traps, process substitution, named pipes, robust error handling, performance. The features that turn shell scripts into production tooling.
advancedbash7 lessons~2h - 04
Go Fundamentals
Not startedLearn Go: the language behind Docker, Kubernetes, and most of modern infrastructure. Static types, fast compiles, no class hierarchies. Every lesson is hands-on with real go run execution.
beginnergo14 lessons~4h - 05
Go Intermediate
Not startedLevel up from Go Fundamentals. Interfaces, error handling patterns, goroutines, channels, select, defer/panic/recover. The features that make Go unique — and how real Go services use them.
intermediatego9 lessons~2h - 06
Go Advanced
Not startedBeyond Go Intermediate. Context cancellation, sync primitives in depth, generics (1.18+), reflection, unsafe. The features Go services running at scale actually use.
advancedgo7 lessons~2h - 07
Build Your Own Docker
Not startedBuild a container runtime from scratch using Linux namespaces, cgroups, and overlayfs. You'll implement PID/mount/network namespace isolation, memory and CPU resource limits, layered image storage with copy-on-write, and the full container lifecycle. By the end you'll deeply understand what Docker, Podman, runc, and containerd actually do.
advanced19 lessons~5h - 08
Build a CI Runner
Not startedBuild a CI/CD runner like GitHub Actions: parse YAML workflows, expand build matrices, topologically sort job DAGs, execute steps with logs, manage artifacts and caches, handle self-hosted runners, and protect secrets. Used by every modern engineering team.
intermediate10 lessons~3h - 09
Build Your Own Package Manager
Not startedBuild a complete package manager from scratch — semver parsing, constraint matching, dependency tree expansion, deduplication, backtracking SAT-style resolution, lockfile generation, hash verification, lifecycle scripts, and vulnerability auditing. By the end you'll deeply understand what npm, yarn, pnpm, cargo, and pip actually do.
intermediate12 lessons~3h - 10
Build a Cron Scheduler from Scratch
Not startedBuild a fully-featured cron daemon from the ground up. You'll parse cron expressions, compute next firing times across timezones, schedule jobs with a min-heap, and handle real-world concerns like missed jobs, overlapping runs, and timezone DST. By the end you'll deeply understand the scheduler behind every "do this on a schedule" system you've ever used.
intermediate12 lessons~3h - 11
Build Your Own Load Balancer
Not startedBuild a production-grade L7 load balancer from scratch. You'll implement round-robin, weighted, and least-connection selection; active and passive health checks; circuit breakers; consistent hashing; sticky sessions; rate limiting; TLS termination (SNI); and Prometheus metrics. By the end you'll deeply understand what NGINX, HAProxy, Envoy, and AWS ALB actually do.
intermediate17 lessons~4h - 12
Build a Service Discovery System
Not startedBuild the registry behind Consul, Eureka, and Kubernetes service discovery: registration with TTLs, tags + metadata, health checks, load-balanced lookup, replicated HA, and the Kubernetes/service-mesh patterns. Used by every microservice architecture.
intermediate10 lessons~3h - 13
Build a Log Aggregator
Not startedBuild a Loki/Splunk-style log aggregator: ingest log lines via HTTP, structure them into label-keyed streams, store as compressed chunks, query by label + substring/regex (LogQL-style), aggregate over time, manage retention, and alert on thresholds. The observability stack every team eventually builds.
advanced10 lessons~3h - 14
Build a Rate Limiter
Not startedBuild production-grade rate limiters: fixed window, sliding window, token bucket, leaky bucket. Then make them distributed (via Redis) and tiered (per-IP, per-user, per-plan). Used by every API gateway, web server, and microservice.
intermediate8 lessons~2h
Create a free account to track your progress across this path.