Notebook

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
  1. 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.

    • Real-Time
    • Backend
    • NestJS
  2. 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.

    • Performance
    • Backend
    • PostgreSQL
  3. 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.

    • Integration
    • Backend
    • GST
  4. 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.

    • Rust
    • Developer Infrastructure
    • Security
  5. 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.

    • AI
    • RAG
    • LLM
  6. 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.

    • Distributed Systems
    • Redis
    • Document AI

Jump to