Writing on backend systems, AI agents, and designing software that lasts.

Long-form notes on what I build and teach: services, remote desktops for HPC, agent tooling, migrations and debugging, collected in chronological order.

Where the memory goes in a Tokio service

An async Rust service that grows to gigabytes rarely has a single leak. The four places I look: future sizes, queues without backpressure, the allocator, and tasks that never finish.