Writing
I write about development techniques, project insights, and lessons learned building software.
2026
Why 'AI Will Replace Coders' Is the Wrong Conversation
Everyone's arguing about who's ngmi because of AI. The real question is simpler and a lot less comfortable.
Jun 14, 2026
From 342MB to 37MB: The Go Image I Was Shipping Wrong
I'm new to Go. Our backend image was 342 MB and I had no idea what to do about it. This is the story of learning what each line of the production Dockerfile actually does — multi-stage builds, distroless, CGO_ENABLED=0, and stripping symbols — by getting the size down to 37 MB.
Jun 4, 2026
How Nixpacks, buildctl, and BuildKit Actually Fit Together
Three tools, one deploy pipeline. What Nixpacks plans, what buildctl sends, what buildkitd executes — and why you need two registry hostnames, a Unix socket, and a Dockerfile you never wrote by hand.
May 24, 2026
Phase 2: I Rebuilt the Build Pipeline, Hardened Everything, and Broke It Again
After the first working preview URL, I threw away the MinIO artifact pipeline, switched to Nixpacks + BuildKit + a local registry, ran a security audit, and spent an evening fixing permission errors that only show up on real projects.
May 24, 2026
I Built a Mini Vercel like Clone in Rust in One Day. Here's Every Mistake I Made.
57 commits. One day. A working local Vercel clone with GitHub webhooks, a NATS build queue, MinIO artifact storage, and isolated Node containers serving preview URLs — the full story and every bug I fixed.
May 17, 2026
Terminal Sharing Over WebRTC: Building Term Bridge with Cloudflare Workers and PTY Multiplexing
Building a real-time terminal sharing tool that uses WebRTC DataChannels for peer-to-peer PTY streaming, Cloudflare Workers + Durable Objects for signaling, and a 6-digit pairing code to connect two machines in seconds. Line-by-line breakdown of signaling, bidirectional data flow, and the control protocol underneath.
May 3, 2026
I Tried Apple's Native Container CLI So You Don't Have To (Yet)
Apple shipped a native container CLI with macOS 26 Tahoe. VM-per-container isolation, sub-second starts, no Docker Desktop. I spent a weekend with it and here's what actually works, what doesn't, and whether you should care.
May 2, 2026
Building a FinTech Platform with Go Microservices as a Beginner
A deep dive into building a local fintech platform with Go, Chi, Kafka, and PostgreSQL — covering the transaction saga pattern, event-driven pipelines, and the subtle bugs that only show up end-to-end.
Apr 25, 2026
Popular Reads
Why 'AI Will Replace Coders' Is the Wrong Conversation
Jun 14, 2026
From 342MB to 37MB: The Go Image I Was Shipping Wrong
Jun 4, 2026
How Nixpacks, buildctl, and BuildKit Actually Fit Together
May 24, 2026
Phase 2: I Rebuilt the Build Pipeline, Hardened Everything, and Broke It Again
May 24, 2026
I Built a Mini Vercel like Clone in Rust in One Day. Here's Every Mistake I Made.
May 17, 2026