Pro Track
- rustup, Cargo and continuous integration: Install Rust the way professionals do, build a small command-line crate with Cargo, and keep it clean with rustfmt, clippy and tests that run on every push.
- Git and pull requests: Work the way teams do. Feature branches, pull requests, a real merge conflict in Rust code, undoing mistakes and tagging a release.
- Testing like a team: Write the test suite for a money-handling library yourself. Graded by mutation testing, so every hidden bug must make one of your tests fail.
- A command-line tool with clap: Build a real CLI with subcommands, flags, files, helpful errors and proper exit codes, tested end to end like a user would run it.
- Designing a library crate: Split code into a library and a binary in a Cargo workspace, design a public API with typed errors and full documentation, and prepare it for crates.io.
- Concurrency with threads, channels and rayon: Build a parallel log indexer, first with threads and channels, then with rayon, and prove it gives the same answers as the single-threaded version, faster.
- Async networking with Tokio: Write an async TCP server that handles many clients at once, shares state safely, and shuts down cleanly, tested with real connections.
- A REST API with axum: Build a JSON REST API with routing, validation, proper status codes and error responses, and test every endpoint without opening a port.
- Persistence with SQLx and SQLite: Store data for real. Migrations, typed queries, transactions and a repository layer, tested against an in-memory database.
- Logging, tracing and configuration: Make a service you can operate. Structured logs and spans with tracing, log levels from the environment, and validated configuration.
- Benchmarks and profiling: Measure before you optimize. Benchmark a slow function with criterion, find the hot spot with a profiler, and make it fast enough to pass a time budget.
- Capstone: a production-ready web service: Put it all together in a URL shortener service with a database, structured logging, configuration, tests, a Dockerfile and a CI pipeline, the way it would ship at work.