The compiler everyone calls brutal is the reason your service never data-races, never segfaults, and never pages you at 3am.
You tried Rust once. Fifteen lines in, the borrow checker rejected all of them, and you went back to a language that lets you ship. That is the normal experience, and it happens because most Rust material teaches the whole language instead of the narrow subset that puts a service in production. This course takes the other route. You start at rustup --version and finish with a webhook delivery worker that keeps 99% of deliveries under 30 seconds while 5% of receivers fail. On the way, ownership and lifetimes arrive as concrete fixes for errors you will actually hit rather than as theory, traits and enums become the reason bad states stop compiling, thiserror and anyhow collapse into one boundary rule you can apply without thinking, and tokio stops surprising you mid-await. Then you ship: sqlx queries the compiler verifies against a real schema, an axum service with tower layers and graceful shutdown, tracing wired to OTel, and a multi-stage Docker build that caches. 100 challenges, one capstone, and nothing you will not use at work.
Built by Lakshya Kumar
Paste this into any AI chat. Fill in the bracketed parts with your context — you'll get back a straight answer on whether this belongs on your plate.
We grant free access case-by-case — students, career-switchers, builders on a tight budget. Sign in to send us a note.
Sign in to applyFinished the tasks? Take the prompt to your AI and get tested on it. We copy the prompt and open the app — just paste it in.
Learn the three rules behind every borrow error, plus the fixes — clone, Rc, RefCell — that unstick you in seconds instead of hours.
Exhaustive match, trait bounds, and the ? operator turn whole categories of runtime bug into compile errors you fix once.
thiserror for your library, anyhow for your app, and one clear rule for where a Result stops travelling and becomes a log line.
Futures only run when polled — learn what that means for select!, Send bounds, and the task that silently dies mid-await.
The borrow checker cannot tell you your logic is wrong — proptest, insta, and criterion can, before your users do.
Multi-crate workspaces, feature flags, and clean re-exports keep compile times sane and your public API smaller than your codebase.
Typos in a query become build errors instead of 3am pages, with pools, migrations, and transactions that roll back on ?.
Extractors, tower layers, and IntoResponse give you validation, middleware, and graceful shutdown without fighting the framework.
Tracing spans, OTel export, and a cargo-chef Docker build — plus the OOM, FD, and signal failures no compiler catches.
Complete all modules, then submit the required number of capstone projects. Each must earn a passing rating from an admin reviewer.
Build `hookr`, a webhook delivery service in Rust. Required: axum API for event ingest, sqlx + Postgres for delivery state, a tokio worker that pulls due deliveries and retries with exponential backoff + jitter, a DLQ for permanent failures with a replay endpoint, per-customer HMAC-SHA256 signing of payloads, `tracing` -> OTel exporter, a Dockerfile + docker-compose with Postgres and a fake-receiver. Submit: repo URL, a Loom of the docker-compose start-to-delivery flow, and a load-test under simulated 5% receiver-failure rate showing 99% of deliveries land within 30 seconds.
I'm considering Capstok's "Rust: From Zero to Production Service" course. It covers cargo + toolchain, ownership/lifetimes, traits + generics, errors (thiserror/anyhow), async with tokio, testing, workspaces, sqlx, axum, and a production stack with tracing + OTel + Docker. Capstone is a webhook delivery service. Context: 1. My current language: [e.g. Go, Python, TypeScript] 2. The closest I've come to Rust: [e.g. "never", "tutorial-only", "small CLI"] 3. What I want at the end: [e.g. "ship a Rust service", "contribute to a Rust repo at work", "interview-ready"] Answer: - Which 2 modules will pay back fastest in my next 3 months? - A real Rust pitfall I'll hit in week 2 that this course would catch. - Is 60 hours worth it for me, or should I pick another lang? Honest pick. - What this course will NOT teach (no_std embedded, kernel work, Bevy)?
Read after Module 5. The middle-experience book — bridges intro to expert.