Hi,
I am Erik
Software developer with nearly two decades of experience. Writing code for a living, writing about code for learning.
Community
I organize dotnet.amsterdam, a user group for .NET developers in the Amsterdam area. Follow us on LinkedIn or join us on Meetup.
Recent writing
-
Sep 21 2026
The two questions code coverage can't answer: property-based and mutation testing for .NET and Angular
Code coverage tells you a line ran. It doesn't tell you whether you tried the inputs that matter, or whether anything would notice if the line were wrong. Those are two separate gaps, and there's an old technique for each: property-based testing generates the inputs you didn't think of, mutation testing breaks your code to see if a test complains. Both are decades older than my interest in them, and what changed isn't the techniques. It's that generating code got cheap while checking it didn't. Here's how they work on .NET and Angular, what they cost, and why each one is the check on the other.
-
Sep 15 2026
Build an AI software factory (an experiment in .NET)
A series about handing software work to AI coding agents without handing off your judgement. I'm building a factory around them in .NET: where the work comes from, where agents run, how their output gets checked, what it costs, what they remember, and how people stay in charge of what ships. Each part takes one piece and describes what I learn while building it.
-
May 26 2026
What's new in Aspire 13.3
Aspire 13.3 lands WithBrowserLogs — a tracked Chromium browser as a child resource, streaming console and network events into the same dashboard timeline as your backend traces, with first-party commands for opening it, configuring it, and capturing screenshots. More on the rest of 13.3 to follow in upcoming parts.