

Vuong Nguyen
3.2K posts

@vuong
JavaScript enthusiast, web developer.



For people asking what to build to really learn Rust, here’s a progression that maps well to how Rust actually teaches you systems thinking. Simple (start here, learn ownership & basics) 1. Build a CLI tool (argument parsing, file I/O, error handling) 2. Build a log parser (iterators, lifetimes, zero-copy parsing) 3. Build a small HTTP client (reqwest + async basics) 4. Build a basic TCP server (std::net, threading) 5. Build an LRU cache (HashMap + linked list, ownership pain included) 6. Build a file watcher (inotify-style logic, channels) 7. Build a config loader (serde, enums, validation) 8. Build a simple thread pool (Mutex, Arc, Condvar) --- Medium (where Rust really clicks better) 9. Build an async web server (tokio, hyper, backpressure) 10. Build a key-value store (LSM-style, WAL, file layouts) 11. Build a job scheduler (work queues, cancellation, timeouts) 12. Build a reverse proxy (async I/O, connection pooling) 13. Build a mini database index (B-tree or skip list) 14. Build a parser + AST (nom or handwritten parser) 15. Build a WASM runtime toy (wasmtime concepts) 16. Build an auth service (JWT, crypto crates, zero-copy serialization) 17. Build a search engine (inverted index, mmap, ranking) --- Hard (deep Rust + systems mastery) 18. Build a memory allocator (unsafe, layout, alignment) 19. Build a container runtime (namespaces, cgroups concepts) 20. Build a distributed cache (networking, consistency trade-offs) 21. Build a Raft implementation (ownership + state machines) 22. Build a storage engine (MVCC, snapshots, compaction) 23. Build a network protocol (custom framing, async streams) 24. Build a compiler backend (IR, borrow checker inspiration) 25. Build an OS kernel module or toy kernel (no_std, bare metal) 26. Build a database from scratch (query planner + execution engine) --- Rust rewards building, not watching tutorials. So keep building too. Each project forces you to confront ownership, lifetimes, concurrency, and performance head-on. If it hurts a little(especially those borrow checkers errors), you’re doing it right.






Announcing Genkit Go 1.0 ✨ The SDK is now stable and production-ready. This release introduces the genkit init:ai-tools command for seamless integration with AI coding tools, plus built-in support for tool calling, RAG, and more. Read the blog →goo.gle/3Kep4D6








