Recent
April 22, 2026 · 7 min read
When I first dialed into a BBS in the early 90s, the thing I remember most clearly was the hush of the modem and a feeling of unreasonable hope. The premise of the network back then was almost embarrassingly simple: any two people, anywhere, could exchange a message. That was it. That was the whole pitch.
I've been thinking lately about how much of that original premise survives. Not in a mournful way — I don't believe in cyberspace nostalgia — but as a practical question. What's the durable part? What was the pose, and what was the substance?
Read on →
April 8, 2026 · 5 min read
Designers spend their careers reducing friction. Make it one click. Make it tap-to-pay. Make the form auto-fill. And mostly this is good — the costs of small inconveniences add up.
But I keep noticing places where friction is what made the thing work. Letters were better when you had to handwrite them. Photographs were dearer when you had thirty-six per roll. The arguments I had on dial-up forums were more careful than the ones I have on Twitter, and I don't think it's because I was younger.
Maybe friction is sometimes the thing.
Read on →
March 30, 2026 · 9 min read
For the last six months I've been slowly migrating off platforms I don't control. RSS instead of Twitter. A small static site instead of Medium. Photos in a folder instead of Instagram. It's a project that began as paranoia and ended up being mostly about taste.
The funny thing is that almost everyone I describe this to assumes the motivation is political. It isn't, particularly. It's that the tools I rent feel less like mine, and the things I make in them feel less like mine, and after a while that compounds into something noticeable.
Read on →
Earlier
March 11, 2026 · 4 min read
I started keeping a journal again last year, and I've noticed something strange: the entries written for nobody are often better than the things I write for an audience. Less performative. More honest. Slower.
February 24, 2026 · 6 min read
The page you're reading is a single file. No frameworks, no build step, no JavaScript. There are excellent reasons to use modern tooling, but there are also reasons not to, and the longer I do this the more weight I give to the second list.
February 5, 2026 · 8 min read
Twelve books, two abandoned, three I'd read again. Notes on each, with rough rankings by how often I'm still thinking about them now.
January 18, 2026 · 12 min read
A decade with Python and last summer I forced myself to learn Rust by rewriting a small side project. Here's what surprised me, what frustrated me, and where I landed.