
I Slimmed a Docker Image from 2GB to 50MB: A Hands-on Postmortem
The real steps and trade-offs I took to cut a Docker image from 2GB down to 50MB — pitfalls, decisions, and practical takeaways without the fluff.
25 posts

The real steps and trade-offs I took to cut a Docker image from 2GB down to 50MB — pitfalls, decisions, and practical takeaways without the fluff.

Learn how to build reliable, scalable WebSocket communication using Rust’s channels and per-peer task pattern, completely solving concurrency issues and message loss problems

A hands-on guide to building a usable mini Actor framework in Rust from scratch: Actor, Addr, spawn, supervise, a simple registry, message passing, and HTTP interaction.

When traffic surges like a flood, equip your Rust microservices with four gates—rate limiting, backpressure, batching, and middleware—using Tokio + Tower. Keep P99 steady and make speed happen in order.
Build a production-ready async microservice with Rust and Axum: job queue, background workers, exponential backoff retries, and graceful shutdown. Includes full project structure and Docker example.

Master graceful shutdown for Rust Axum services: listen for SIGINT/SIGTERM, refuse new connections with with_graceful_shutdown, stop background tasks via CancellationToken, set timeouts, and integrate with Docker/Kubernetes termination — protect data integrity and user experience.

A step‑by‑step Axum guide to build a modern high‑performance Web service: routing, path and query parameters, JSON, shared state, and middleware (tracing, CORS) with complete code samples and best practices.
Don’t treat unsafe like a get-out-of-jail-free card. With practical examples, this article dissects 6 common unsafe pitfalls: silencing the compiler with duct tape, dereferencing random raw pointers, violating borrow rules inside unsafe, reinventing wheels, abusing unsafe impl, and skipping Safety comments — helping you build the right risk mindset and usage patterns.

tokio::spawn is not a thread but a lightweight task. Under Tokio’s scheduler you build highly concurrent services with sleep, timeout and select — 1000 tasks in 2 seconds with negligible overhead.

A practical deep dive into Rust async: why calling an async function doesn’t run it, how the compiler turns async into a state machine, and how executors drive tasks forward with poll and Waker. Understand the real mechanics behind async/await.