Couldn’t Save a Beach Ball

Couldn't Save a Beach Ball

Holy crap.

One save on the first eight shots. My second save didn’t come until nineteen minutes in, and it took nineteen shots to get my save percentage over .500. I know that because I was counting, because I felt like shit and wanted to know when I’d at least be stopping half of them.

It was shinny, so nobody keeps score, but I feel like we lost, bigly. I try to give up less than a goal every ten minutes, and over 87 minutes I let in 17 on 46 shots, which is about double that.

Read more →

Why Good SREs Feel Like Wall Builders

Why Good SREs Feel Like Wall Builders

Someone pinged me at 4:40 on a Friday: “need a new Postgres instance, going live Monday, should be quick.” I asked what the read/write ratio looked like and what happens to the checkout flow if the instance falls over for ten minutes. But, they hadn’t thought about either one, because nobody had ever asked them to.

Working with a bad SRE team is frustrating for all the obvious reasons: things break, deploys fail, and nobody answers the page.

Read more →

Fumbling Through Loss

Fumbling Through Loss

I got it wrong the first time and probably the second time too. I’ll likely get it wrong again, so here I am writing a reminder to future me.


A beloved colleague died unexpectedly. The email came the same day, evening for me, direct, no euphemisms. The video call was set for the next afternoon, late enough that people had a night to sit with it before they had to be on camera together. Someone senior said her name out loud and then let the silence sit instead of filling it. By every measure I’d use later to judge how this should go, it was done right.

Read more →

Release Discipline in the Age of AI-Accelerated Development

Control room overview Photo by Patrick Konior on Unsplash

A maturity model for shipping fast without breaking customer trust.

I made an earlier argument that deploying code and releasing a feature are not the same event, and that treating them as one causes unnecessary risk. That argument still holds. But the environment it was written for has changed.

AI-assisted development has made writing and shipping code dramatically cheaper. A change that used to take a sprint now takes an afternoon. That’s a genuine gain, but it doesn’t automatically make the judgment around releasing that change any faster or better. When the cost of producing change drops and the discipline around exposing change doesn’t rise to match it, the result is exactly what customers are describing: things move, break, or reappear differently, without warning, more often than they can absorb.

Read more →

The Pass-Through Problem

Someone asks you a question. You don’t know the answer off the top of your head, so you paste it into Claude, copy the response, and send it back.

That’s not a human interaction. That’s a very slow API call with extra steps.

I keep seeing this pattern, at work, on forums, in social communities, and it makes me wonder if we’ve completely missed the point. Not of AI. Of ourselves.

Read more →