Code, craft, and the occasional tangent.

Software developer by trade, curious human by nature. I write about the things I build, the places I go, and the ideas that keep me up at night.

Node.js DevOps Architecture Family Travel Opinions
Recent Posts
Coastal cliffside view at golden hour
Travel Life

Three Days on the Oregon Coast with No Laptop

We left the devices at home. No pull requests, no Slack notifications, no status meetings. Just fog, tide pools, and an alarming amount of chowder.

Feb 12, 2026 6 min read
// Retry with exponential backoff
async function retry(fn, opts) {
  for (let i = 0; i < opts.max; i++) {
    try { return await fn(); }
    catch(e) {
      await sleep(2 ** i * 1000);
    }
  }
}
Code Node.js

A Retry Pattern That Actually Works in Production

Most retry implementations I see in the wild are either too naive or too clever. Here is the one I have used in production for five years.

Feb 8, 2026 11 min read
Opinion Architecture

Microservices Are Not the Answer (Usually)

After migrating three monoliths to microservices and then two of them back, I have some thoughts. The industry's obsession with distributed systems as a default starting point is costing teams years of productivity they will never recover.

Jan 24, 2026 14 min read
"The best code is no code at all. Every new line of code you willingly bring into the world is code that has to be debugged, code that has to be read and understood."
Jeff Atwood, Coding Horror
Home office setup with multiple monitors and server rack
Project Infrastructure

My Home Lab Rebuild: From Raspberry Pis to Proxmox

The Pis served me well, but it was time for something with a bit more horsepower. Here is the full parts list, configuration, and what I would do differently.

Jan 18, 2026 18 min read