Writing
Essays, poems and short entries from the boat. Subscribe via RSS.
Essays
Longer prose that takes a side — on engineering, leadership, the machines we are now building with, and the water.
- Was This Different Two Years Ago?
LLMs are getting the blame for slop, bad reviews, bad architecture and even bad leadership. None of those problems are new. The rate of output changed, and every weakness an organisation already had now shows up ten times as often.
- Fifteen Years of Bullet Points
Extraction and generation look identical from the outside. Forty-six of my field notes share a publication date, and the difference between the two is the only thing worth arguing about.
- Nobody Reviews the Assembly
Nobody reviews the assembly a compiler emits. Increasingly nobody reads the code a model writes either, so the specification becomes the thing you review.
- Proof of Transfer: Billing Signup Abuse by the Gigabyte
Residential proxies killed IP reputation — but they're billed per gigabyte, and that's the crack. Make a client move a large block of unforgeable bytes and you've built a control that costs an honest user seconds and costs an abuser a real invoice, on every attempt. Here's how to enforce it, and everywhere it hurts.
- Engineering Field Notes: Writing Down What I'd Otherwise Just Say
Most of what I know about building software lives in my head and in scattered Slack threads. Field Notes are my attempt to write it down once, carefully — numbered, dated, status-tracked notes on the practices I keep reaching for, published openly so I can point at them instead of retyping them.
- Sign the Request, Not the Session: Announcing httpsig
A bearer token is a password you mail to everyone you talk to. HTTP Message Signatures (RFC 9421) sign the request itself instead — provable, per-request, tamper-evident. I built httpsig, a library for it in five languages, and a jwt.io-style playground you can sign and verify in right now, in your browser.
- Let the Machine Draw It: Using AI to Visualize Algorithms
I had a rolling-canary routing algorithm sketched on a whiteboard. Twenty minutes of conversation later I had an interactive emulator I could scrub through. Why building throwaway visualizations is one of the highest-leverage things you can do with an LLM.
- Context Is King: Human Language in Code Matters More Than Ever
Code is the what; comments, commit messages, and PR descriptions are the why. Why the LLM era makes writing down context non-negotiable.
- Understanding Navionics Accuracy and Limitations in Marine Navigation
Why "Navionics is inaccurate" usually isn't the app or the charts — it's your GPS source. Reading chart data quality (ZOC) and getting reliable positioning in the Inside Passage.
Poetry
The interior register — what the technical writing has no room for.
- After the Ledger14 poems
Fourteen poems on caretaking, leaving, the lightness after, and the long way back to feeling alive.
Logbook
Short entries from the boat: where we are, what the water did, what it taught.
- Comox — Low Water
Logbook: tied up at low tide in Comox Harbour.