NL

Functional Core, Imperative Shell in C#

A lot of code is hard to test not because the business logic is complex, but because decisions and side effects are woven together. Functional Core, Imperative Shell is a simple rule for separating the two — and I pointed Claude Code at a tangled handler to do the split.

July 14, 2026 · 8 min · René Dekkers

Make illegal states unrepresentable in C#

An order model with a status enum and a handful of nullable fields can represent far more states than are legal. I pointed Claude Code at one, had it count the illegal combinations, and let it redesign the type so they can’t be constructed at all.

July 6, 2026 · 9 min · René Dekkers

Return the proof, not the answer

One method returned a bool; another trusted that you’d called it first. That gap was the root of five separate problems. Here’s the refactor — parse, don’t validate — and how Claude Code did the mechanical work.

July 1, 2026 · 9 min · René Dekkers

From idea to implementation-ready

You get a feature request. Maybe a ticket, maybe just a Slack message. You open your IDE, create a branch, and start building. Claude Code writes the code, you review it, things move fast. Then, three hours in, you discover you’ve made five architectural decisions you never consciously made. The subscription entity is attached to the User because Claude assumed that. The tier check happens in the controller because that’s where it fit. There’s no audit trail because you never said you needed one. ...

June 23, 2026 · 10 min · René Dekkers

Event sourcing was too much work. AI changed that.

Event sourcing has always been a tough sell — powerful, but too much work for most teams. AI coding assistants change the cost side of that equation.

May 15, 2026 · 6 min · René Dekkers
v82