// Writing

Thinking out loud.

Writing on AI infrastructure, developer tooling, and technical content strategy. Practitioner-level posts from someone who builds the systems and writes about them.

From 4 Minutes to 12 Seconds: A Quantitative Audit of the uv Package Manager
I benchmarked Astral uv against Poetry and pip on a 2026 AI dependency stack. Here is how Rust-native tooling reduces build times by 20x.
6 min read python devtools benchmarking
100ms Vector Search in the Browser: PGlite vs. SQLite-vec Head-to-Head
I benchmarked PGlite and SQLite-vec on a MacBook Air M2 to find the fastest WASM vector database for local-first AI applications.
9 min read vector-search wasm pglite
Beyond the Chatbox: Benchmarking Claude Code vs. Gemini CLI for Autonomous Repository Refactoring
I ran a head-to-head benchmark of Claude Code and Gemini CLI on an M2 Air (16GB), testing their ability to autonomously refactor legacy code and resolve race conditions.
6 min read agentic-cli benchmarking developer-productivity
Quantifying the Engineering Velocity Impact of Technical Documentation
I analyze the structural correlation between documentation quality and engineering throughput, using DORA metrics and Accelerate research to quantify the ROI of technical writing.
8 min read engineering-velocity developer-productivity dora-metrics
The Developer Trust Hierarchy: Why Practitioner Writing Outranks Marketing Content
I analyze the structural reasons why engineers filter for technical depth and verify-ability, creating a 5-tier hierarchy of developer trust.
6 min read technical-writing developer-experience content-strategy
Technical Content as a Moat: the Long Game for Developer Tools
I explain why durable technical content compounds for developer tools, how strong docs and tutorials create distribution, and where teams usually waste the opportunity.
8 min read technical-writing developer-tools content-strategy
How Stripe's Technical Blog Became a Competitive Moat
I think Stripe’s technical blog compounds into a moat because it teaches, documents, and shapes developer trust long before a sales conversation starts.
8 min read technical-writing developer-marketing developer-experience
Why Devtools Startups Lose Deals Over Bad Docs
DevTools startups lose deals long before sales hears the objection. I explain how weak docs break evaluation, trials, and rollout confidence.
9 min read technical-writing devtools documentation
From Engineer to Technical Writer: What I Kept and What I Left Behind
I explain which engineering habits still make me better at technical writing, which ones I had to drop, and how the day-to-day work changed.
10 min read technical-writing career developer-experience
The Case for Shorter Technical Documentation
I think technical docs are often too long for the wrong reasons. Here’s why shorter docs usually work better, and where longer docs still earn their keep.
8 min read technical-writing documentation developer-experience
Writing Release Notes That Developers Trust
Developers trust release notes when they can make upgrade decisions fast. I explain the format, level of detail, and disclosure standard that earns that trust.
9 min read technical-writing developer-experience releases
How to Write a Technical Tutorial That Actually Teaches
I explain how I structure technical tutorials so readers finish with a working result, fewer hidden assumptions, and less time wasted on broken examples.
11 min read technical-writing tutorials developer-experience
Developer Onboarding Docs: What Works, What Doesn't
I’ve seen developer onboarding docs fail for the same reasons over and over. Here’s what actually helps a new engineer ship useful code in week one.
10 min read technical-writing developer-experience documentation
Technical Writing for Ai Products: the New Rules
AI product docs now need prompts, schemas, evals, and version boundaries. I explain the rules I would use to judge a technical writer for an AI company.
11 min read technical-writing ai developer-experience
How to Write a Changelog That Developers Actually Read
Most changelogs exist to satisfy a checkbox. Here's what makes developers actually read them, and how to structure entries so breaking changes land before they cause incidents.
9 min read technical-writing developer-experience devtools
Hybrid Search: Combining Bm25 and Vector Search for Better Retrieval
Hybrid search combines BM25 sparse retrieval with dense vector search. Here's how reciprocal rank fusion works, what it costs, and when the combination actually beats either method alone.
9 min read ai rag vector-search
Semantic Caching: the Rag Optimization Nobody Talks About
Semantic caching returns cached LLM responses for semantically similar queries, cutting API costs by 40-70% on the right workloads. Here's how the mechanism works and where it fails.
9 min read ai rag infrastructure
Structured Outputs with Llms: Json Mode, Function Calling, and When to Use Each
JSON mode, function calling, and structured outputs solve different problems. Here's when each one actually makes sense and what they cost you.
9 min read ai llm infrastructure
How Anthropic's Contextual Retrieval Changes Rag Architecture
Anthropic says Contextual Retrieval cut top-20 retrieval failure by 49% with contextual embeddings plus contextual BM25. I walk through the mechanism, the benchmark, and the part of the RAG pipeline it changes.
9 min read ai rag infrastructure
Token Counting Isn't Optional: a Practical Guide to Llm Cost Control
I explain the mechanics of LLM tokenization, why JSON burns your API budget, and how to architect systems for strict token efficiency.
5 min read llm infrastructure ai