Software that works, and writing about how it got that way.

Senior engineer with 15+ years of shipping. I write about the craft, the trade-offs, and the parts of the job that don't fit on a résumé. New posts monthly; opinions formed slowly and held loosely.

2026-11-01rails

IP-Based Route Restrictions on Heroku with Rails

Learn how to restrict admin routes to VPN IP addresses on Heroku using Rails Advanced Route Constraints.

2026-10-01javascript

When a Site Blocks Text Selection

A DevTools console snippet to restore text selection, copy, and right-click on a site that blocks them.

2026-09-06health

What I Want for My Birthday

If you're facing a cancer diagnosis, or caring for someone who is, cancer may have a metabolic root cause, and that could change how it's treated.

2026-07-19productivity

How I Stopped Running out of Tokens

A practical rundown of tools, settings, and habits that reduce token consumption when using Claude Code as your daily AI coding assistant.

2026-07-05rails

Audit a Rails Project with the Thoughtbot Audit Skill

Turning a Claude skill audit report into a labelled, severity-tiered GitHub backlog, and what the skill found in a small Rails 8 app.

2026-02-21productivity

Building an AI Blog Editor with Claude Skills

Creating an AI blog editor with Claude Skills—like having a code reviewer for your writing when you don't have a human editor.