Writing
Blog.
Notes on building software, running engineering teams, and the parts of those two jobs that overlap more than people admit.
2026
- May 16, 2026 Rate Limits, Retries, and the Hidden Accuracy Killer in LLM Pipelines We spent weeks investigating a 6% accuracy variance in our document extraction benchmarks. The root cause wasn't the model, the prompts, or the routing. →
- May 14, 2026 Why Heuristic Routing Fails on Long Documents When a 120-page insurance policy goes through document extraction, the AI only sees fragments. How those fragments are selected determines everything. →
- May 10, 2026 Benchmarking Document Extraction: How We Measure Accuracy Across 653 Documents Every document extraction vendor claims 95%+ accuracy. None of them publish how they measure it. →
- May 6, 2026 Schema-Driven Extraction: Configuration Over Code for Document AI Most document extraction relies on prompt engineering. Schema-driven extraction replaces hope with a contract. →
- Apr 22, 2026 Documents are a data source. Treat them like one. Most extraction projects fail because teams treat the document as the artifact instead of the schema. →
- Apr 18, 2026 Docs-first development with AI agents Most teams using AI agents do code-first, doc-later. We do the opposite, and it's working better than expected. →
- Apr 8, 2026 We built for flexibility. It caused chaos. Notes from a v1 to v2 rewrite — what happens when you build a system that can do anything and nobody can explain what it does. →
- Mar 12, 2026 Small teams and the monolith An apology to my younger self for splitting an eight-person team across nine services. →
- Feb 20, 2026 The document extraction pipeline: we tried everything AWS Textract, Google Document AI, RAG pipelines, LlamaIndex — a tour of everything we used before deciding to build our own. →
- Jan 6, 2026 Writing more in 2026 New year, new excuse. I'm going to try journaling in public about the work. →