Writing
Each piece starts from something that happened in a system I worked on: what broke or was slow, what constrained the fix, and what I would keep from it.
RSS feed-
Why Long-Running Workflow Updates Moved to a Durable SSE Stream
Replacing several ephemeral SSE channels with one table-backed notification stream — 25-second heartbeats, Last-Event-ID replay and runId correlation across async workflows. A walkthrough from the wire up.
-
How a GST Returns Dashboard Became a Sub-15ms Read
GST return status queries went from 3,000ms+ to sub-15ms at peak load by reading a precomputed projection that filing writers keep fresh through domain events. Requirements, options and the update path.
-
When HTTP 200 Still Means Your Integration Failed
Four ways a GST portal integration lost or corrupted data while every request succeeded — a case-sensitive parameter, an unechoed field, a delegated rule and an over-broad sum — and how each was closed.
-
How I Built a PR Reviewer That Cannot Modify the Main Branch
A threat model for Antigravity, an unattended PR reviewer — per-PR worktrees, an AST-level ban on mutation paths, an evidence gate, and the risk a worktree does not remove.
-
Why RAG Shouldn't Retrieve Everything
In BARA, retrieval is three separate decisions — whether, from where and how much, then which chunks — made by deterministic rules before a vector is ever compared. A research note with the code.
-
The Redis Namespace Bug Behind a Broken Processing Pipeline
Two services used the same BullMQ queue name under different Redis key prefixes, so every OCR extraction result was enqueued where nothing would ever read it. An incident write-up.