2026-02-14
DevOps
8 min read
A practical walkthrough of blue-green deployments on a single VPS. No Kubernetes required. Just Compose, Nginx, and a bit of shell scripting that would make your ops team uncomfortable.
Read post →
2026-02-03
Infrastructure
12 min read
Fourteen services scattered across three VPS instances, each with its own .env file managed by "whoever deployed it last." Here's how I centralized secrets without losing my mind.
Read post →
2026-01-22
TypeScript
15 min read
After three failed attempts at monorepo setups, I found a pattern using Turborepo and pnpm workspaces that survives past the five-developer threshold without becoming a build-time nightmare.
Read post →
2026-01-09
Rust
10 min read
First impressions from someone who has spent two decades in dynamic languages. The borrow checker is not your enemy; your assumptions about memory are.
Read post →
2025-12-18
Architecture
11 min read
Event sourcing sounded elegant in the architecture meeting. Six months later, with 40 million events and a projection pipeline that occasionally disagreed with reality, here is what I learned.
Read post →
2025-12-02
DevOps
7 min read
Before you spin up another VPN or expose another port, consider whether a simple SSH tunnel solves the problem in thirty seconds flat.
Read post →
February 12, 2026
Family
There is a specific frequency at which a child's laughter reaches through noise-cancelling headphones. I have confirmed this experimentally.
Read story →
January 28, 2026
Projects
Woodworking is like software: the first version ships with bugs, the second version is over-engineered, and the third version is the one your spouse finally approves.
Read story →
January 15, 2026
Family
My kid now says things like "the seasoning is a bit restrained, Dad" and I am not sure whether to be proud or offended.
Read story →
January 3, 2026
Reflection
Every January I write a list. Every March I find it under a coffee cup. This year I am publishing it so the internet can hold me accountable.
Read story →
December 14, 2025
Travel
We covered 1.3 miles in four hours. We found six interesting rocks, two frogs, and one existential question about why mountains exist.
Read story →