Hi, I'm zak.
Writing about distributed systems, building teams, and how software actually gets built.
Senior distributed systems engineer at Ably. Writing about distributed systems, realtime infrastructure, and how software actually gets built. Sometimes about phones and other things.
Recent writing
everything →Advanced features for AI chatbots on SSE
Agents used to be a thing you talked to synchronously. Now they’re a thing that runs in the background while you work. When you make that change, the …
All your agents are going async
Agents used to be a thing you talked to synchronously. Now they’re a thing that runs in the background while you work. When you make that change, the …
You are the bottleneck
The agent can produce code faster than you can review it. Your job isn't to write anymore. It's to judge, direct, and decide what's next.
If code is cheap, intent is the currency
Generating code is cheap now, so the intent behind it matters more than ever. The commit message is where that intent lives.
A chatbot's worst enemy is page refresh
Models have got dramatically better. The infrastructure transporting their responses hasn't. Refreshing the page still kills your in-flight chat.
Only use agents for tasks you already know how to do
If you don't understand the task, don't hand it to an agent. You still have to review the output, and you can't review what you don't understand.
SSE sucks for transporting LLM tokens
A dropped SSE connection means re-running the entire model inference from scratch. When inference is your most expensive operation, that's a terrible failure …
So you want to build AI agent group chat?
Building OpenAI-style group chat on HTTP post-and-wait is a mess. Pub/Sub channels handle the fan-out, history, and reconnection without you having to stitch it …
Patterns for building realtime features
Realtime features make apps feel modern, collaborative, and up-to-date. The features predominantly require sharing changes triggered by one user to other users, …
Phone call asymmetry
You get a phone call, but you’re away from your phone or you can’t answer it right at that moment. You call the number back and hear an automated …