Skip to contentTopicllm
- The Silent-Fail Trap: Why HTTP 200 Doesn't Mean Your LLM Did AnythingJune 9th, 2026
- Benchmark at the Cheapest Point: Go/No-Go Before Full BuildJune 4th, 2026
- The Silent Truncation: What `stop_reason` Taught Me About LLM Token LimitsMay 11th, 2026
- When Your LLM Guardrail Is Too Good at Its JobMay 11th, 2026
- How I Got 12/12 Clean Sections Out of a Batched LLM PipelineApril 22nd, 2026
- What 36 LLM Calls Taught Me About Network Retry and Empty DefaultsApril 22nd, 2026
- Why I Gave Every Section Its Own LLM CallApril 21st, 2026
- How I Hardened Apollo's Scanner Against Prompt Injection (Two Cheap Fixes That Actually Work)April 14th, 2026
- How One Bad Enum Was Silently Killing My Entire Scan BatchApril 14th, 2026
- What Pydantic's `extra='forbid'` Gets Wrong When Your Data Comes From an LLMApril 14th, 2026
- Why I Ended Up with One JSON Parser for Two Different LLM ModelsApril 14th, 2026
- The API Won't Tell You When You're Paying TwiceApril 2nd, 2026