Zero to Production in Rust by Luca Palmieri is genuinely one of the best "build a real thing" books in any language. It does for Rust what Michael Hartl's Rails Tutorial did for Rails -- takes you from "I know the syntax" to "I can ship software." The difference is that Palmieri assumes you already know how web services work, which after years of Rails, you absolutely do. This is the rare technical book where your experience is an advantage, not baggage.
After building REST APIs in Rails (for years), Go (Module 3), and now Rust, you will have a perspective that very few engineers possess: the same problem solved in three paradigms. Garbage-collected dynamic typing. Garbage-collected static typing. Ownership-based static typing. You will have opinions that are grounded in experience rather than tribal loyalty. That is rare and valuable.
The deployment comparison is eye-opening and worth sitting with. A Rails app needs Ruby, Bundler, probably Node.js for assets, and a process manager like Puma. A Go app is a single binary with a runtime baked in. A Rust app is a single binary with no runtime at all. 500MB Docker image vs 50MB vs 10MB. The operational simplicity difference is staggering. And yet -- Rails is still the right choice for most web applications, because developer velocity matters more than deployment size for 95% of companies.
The Discord blog post about switching from Go to Rust is required reading. It is the best real-world, data-backed comparison of Go vs Rust in production. Not benchmarks, not toy examples -- a real service handling real traffic where the Go GC pauses were measurable and the Rust rewrite eliminated them. Read it carefully and note what they did NOT say: they did not say Go was bad. They said Go was not sufficient for their specific latency requirements.
Be honest with yourself here: most companies do not need Rust's performance. Go or even Ruby is fine for 95% of web services. Rust's value is for the 5% where latency, safety, or memory control actually matters -- game engines, embedded systems, databases, high-frequency networking. Learning Rust is not about replacing Rails in your career. It is about understanding the full stack deeply enough to make the right tool choice when it matters, and to debug performance problems in any language because you understand what the machine is actually doing.
That understanding is what makes a staff engineer.