Musings, mostly.
Some of them useful.
Essays on systems that must stay honest—and on names, traffic, suya, and the lives built around the work. About Ipeluwa
Agents can pay now. That was the easy half.
A payments engineer reads the x402 spec: idempotency is an optional extension whose own guidance says to charge again when the cache fails, the documented refund is the seller voluntarily sending money back, and reversal only becomes possible where settlement stops being instant.
the archive
All writing
26 essays
Explore
2026
-
I read more code than I write now Agents inverted the ratio between writing and reviewing, and reviewing is a different job with a different failure mode: human bugs look like mistakes, generated bugs look like decisions, and vigilance decays across a day in ways skill does not fix. -
The arithmetic of proving it The part everyone leaves out of the story: what it costs, in money, to keep proving yourself to someone, and why the humiliation is never the amount. -
I deleted ten thousand lines of my own tool rx became a good tool by subtraction: forty commands removed, the cleverest feature deleted for being quietly wrong, and an artifact cache that ships switched off because its fingerprint is incomplete. -
Do not disturb is not about you A ringing phone is a synchronous interrupt with no agenda and no end time. Why mine has been silent for years, why caring about you makes it worse rather than better, and what that has cost. -
Reassembling Postgres from the wire Decoding a protocol as a passive observer rather than an endpoint: userspace TCP reassembly with holes you can never fill, a decoder that has to be a state machine, and a typed filter language that evaluates without allocating. -
Nobody tells you that growing up is mostly rewriting the future We build futures in our heads without noticing, and then life edits them. On losing a future that had already started to feel like a memory. -
Almost 25, and apparently I should know what I am doing On the peculiar expectations of the mid-twenties, and the discovery that confidence and clarity are not the same thing. -
The people who make our ambition possible We tell stories about solitary ambition. Almost nobody builds anything alone, and the ones holding you up rarely appear in the telling. -
Why some endings do not need a villain Anger gives an ending a clean explanation. Incompatibility does not. On the harder kind of goodbye, the one with nobody to blame. -
Why markdown files over a CMS Fourth in the Why this over that series: this blog is a folder of text files in git, and that is a feature list, not an absence of one. -
Why Go for the service, Rust for the tool Third in the Why this over that series: I write both daily. The split that emerged isn't about language quality, it's about what each artifact is for. -
Why SSE over WebSockets Second in the Why this over that series: most realtime features are one-way, and server-sent events give you reconnection, proxy-friendliness, and plain HTTP for free. -
Why SQLite over Postgres (sometimes) First in the Why this over that series: for single-user and single-box systems, the world's most deployed database in one copyable file is not the compromise. It's the correct choice. -
What I actually let coding agents do A working engineer's division of labour with AI coding agents: where they genuinely excel, where they quietly rot a codebase, and the practices that keep the difference visible. -
The correct way to eat suya Suya is not a meal, it is an event with meat in it. Eight rules, held with more conviction than any technical opinion I have. -
A flight recorder for Postgres Why database incidents stay unexplained, what aviation figured out about that decades ago, and the design thinking behind Tracegres: incidents should be reconstructable, not anecdotal. -
Traffic is a personality test Nobody is themselves in a go-slow. Everybody is themselves in a go-slow. A field guide to the people you become when the road stops moving. -
Prepared statements vs connection pools Part three of speaking fluent PostgreSQL: why the query that works locally dies behind pgbouncer, explained from the wire up, and every fix ranked.
2025
-
Faking pg_catalog Part two of speaking fluent PostgreSQL: the system catalog is the real compatibility surface. What psql and every GUI tool actually ask, the five tables that carry the load, and how to build a catalog shim from captured traffic instead of guesswork. -
Speaking fluent PostgreSQL What implementing the Postgres wire protocol from three directions taught me: the startup dance, the two protocols hiding inside it, why transactions are the hard part, and the compatibility lies every Postgres-compatible database must tell. -
On having a name people can't say Six syllables, one inhale of hesitation, and a lifetime of small negotiations. What I have learned from watching people meet my name. -
The engineering behind Aevu How a calm, comment-free social app gets built: interest-first ranking, a media pipeline that is really a state machine, and moderation that fails closed. -
In praise of the aimless walk A walk with a destination is transport. A walk without one is something else entirely, and the first ten minutes are the toll you pay for it. -
In defence of boring technology The most productive stack is the one you stop thinking about. -
My notes app graveyard A tour of every system I built to remember things, and why I remember none of them. -
Hello, world. Again. Every blog starts with a post like this. Mine is no different, except it is shorter.
Nothing matched that search. Try a technology, topic, or shorter phrase.