WRITING / HOW I THINK
Writing
Engineering stories, decisions, and lessons with the context left in.
W-017 min readWhy 80% of Enterprise RAG Pipelines Fail Before They Reach the Vector Database
Scrambled tables, dirty OCR, and orphan chunks quietly poison vector search β here's the four-stage pipeline I use to stop it.
W-026 min readI Gave My LinkedIn Posts a Memory β Hereβs What Happened
How Model Context Protocol, a local SQLite second brain, and the official LinkedIn API let any AI client draft, remember, and publish posts.
W-034 min readWhy Direct Text-to-SQL Is Broken in Production
The pattern works great on ten rows of mock data. Here's why it falls apart the moment real users touch it.
W-045 min readThe LLM Wasn't Hallucinating: The Subtle SSE Streaming Bug That Broke Our AI Planner
Why your AI streaming parser silently drops tokens across TCP packet boundaries β and how to fix it with a line accumulator.
W-053 min readWhy defer Saved My Go Concurrency Code From a Silent Deadlock
Any function with error handling has multiple exit paths that can skip cleanup. Here's how Go's defer prevents silent goroutine deadlocks.
W-066 min readWhy We Ditched Prisma for Go + sqlc: Cut Memory Footprint by 90% and Reclaimed Query Control
Why SQL-First code generation is outperforming ORM magic in high-performance microservices.
W-074 min read9 Hard Truths About Building SaaS in 2026
What separates SaaS products people actually pay for from the ones that quietly fade out.