Archives
All the articles I've archived.
20265
August2
BenchmarkGate, Part 4: benchmark-gate compare, and Why Order Matters
Splitting 'what changed' from 'is that acceptable' into two commands — and why compare has to run first.
BenchmarkGate, Part 3: benchmark-gate validate
Six validators, three file types, one command — catching a broken policy file before it breaks check.
July3
BenchmarkGate, Part 2: Why a Baseline Isn't Enough
A policy file, a stability gate, and 21 benchmarks that correctly refused to give an answer.
BenchmarkDotNet Measures Performance—But Who Enforces the Budget?
BenchmarkDotNet gives you excellent performance measurements — but no opinion on whether a number is acceptable, no memory of yesterday's baseline, and no way to fail a build. Here's the gap, and what I'm building to close it.
From dictionary to columnar: how we made a .NET financial reconciliation engine 2x faster
How CedarRecon's exception classifier went from 1,368ms to 646ms per million transactions, and the four optimizations that made things worse before it got better.