-
Stuck at “Preparing… 0/0” Forever. My State Machine Had No Exit.
Some books stayed at “Preparing… 0/0” forever. The status Indexing had no way out: not Failed, so no retry; not Ready, so no answers. The fix: 202 early, an atomic claim, and a sweep that gives every state an exit. — read more
-
Nothing Crashed. Nothing Errored. My CPU Sat at 390% for an Hour.
A user PDF stuck at “Preparing… 0/0”, a CPU-only container at 390%, and zero traffic to OpenAI. The bug: a silent fallback after a reliability fix. The fix: one config block. — read more
-
Your RAG Eval Isn’t Flaky. Your Retrieval Is Non-Deterministic.
Same query.Same documents.Same model.And the RAG eval can still hand back a different Recall@8. Not because the model is flaky. Because of an ORDER BY clause. I didn’t find this by watching a metric wobble. I found it reading the retrieval code, and realized the score would drift run to run even if the model… — read more
-
AI Wrote a Thread-Safe Counter. The CPU Made It 5x Slower.
Four threads, no locks, no shared state, no bugs — and still 5x slower than it should be. The code was correct. The memory layout was not. A 30-line C# demo of false sharing, and why AI-generated code makes this knowledge more valuable, not less. — read more
-
An AI Feature Has No “Tests Pass” Moment. So I Write the Eval First.
A reader on chapter 3 must never get spoilers from chapter 30. That one rule taught me why, for AI features, the eval is the spec — and why I write it before the feature. — read more
-
The AI Engineer Interview Is a Backend Interview: 18 Real Questions, Answered for .NET Developers
Open any “AI engineer interview prep” guide and you’ll find the same thing: prompting tricks, model trivia, and Python code. Here’s what the guides miss. When you look at what companies actually ask in 2026 — design a RAG system, debug retrieval failures, keep latency under 800ms, build LLM-as-judge evals — these are not prompt… — read more
-
From a Number to a Gate: Evals in CI and Production
Part 5, the finale, of a series on building production AI on .NET. We’ve built the pieces — what evals are, error analysis, golden datasets, and a trustworthy judge. Now we make them earn their keep. By now you can produce a defensible quality score for an AI feature. But a score you only look… — read more
-
LLM-as-Judge, Done Right
Part 4 of a series on building production AI on .NET. We’ve covered what evals are, error analysis, and golden datasets. Now: how do you turn a paragraph into a number you can trust? You have a golden dataset and your feature’s real output for each case. Now you need a score. But you can’t… — read more
-
Golden Datasets That Don’t Lie
Part 3 of a series on building production AI on .NET. Part 1 was the overview; Part 2 was error analysis. Now we turn the failure taxonomy you built into something you can measure against — without quietly fooling yourself. A golden dataset is a set of representative inputs, each paired with a reference answer… — read more
-
Error Analysis: The Unglamorous Superpower Behind Good Evals
Part 2 of a series on building production AI on .NET. Part 1 covered what evals are and the Analyze → Measure → Improve lifecycle. This post is about the step everyone wants to skip: Analyze. When a team decides to “take evals seriously,” the first thing they usually do is wrong. They open a… — read more