14 Sep 2026
A single search screen that works for customers, invoices, orders and every other entity in the app — one interface, many behaviours, and the keyed dependency injection that picks the right one. The Strategy pattern, in real code.
More …
09 Sep 2026
Fifteen years ago I got asked about design patterns in an interview and didn't have a clue. Then I read the book and realised I'd been using them every day. Here's the reframe that finally made them make sense.
More …
24 Aug 2026
LEN ignores trailing spaces but RIGHT doesn't, and the mismatch quietly corrupted a subset of our data during a system merge. A SQL Server gotcha that only showed up when the totals didn't add up.
More …
20 Jul 2026
The single most common thing people get wrong about async/await in .NET, explained with a trip to the garage. Second in a short series on .NET performance problems.
More …
17 Jul 2026
Why filtering one list against another grinds to a halt on real-world data, and how a HashSet or Dictionary fixes it — explained with a child's birthday party. First in a short series on .NET performance problems.
More …