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
-
Mar 30 2026
C# scripting in .NET 10: stop context-switching to your AI agent's scripts
You're debugging an issue and ask your AI agent to write a quick script that checks your database state. It hands you Python or JavaScript. You can read it, sure, but you can't review it at a glance the way you can with C. With .NET 10's dotnet run file.cs, there's no reason to leave your main coding language anymore for the utility scripts your agent writes during development.
-
Mar 23 2026
Agentic (.NET) developer workflow
How to turn your AI coding tool into a real development partner. A workflow system with persistent memory, session rituals, and stack-aware skills for .NET and Angular projects.
- Turning your AI tool into your pair programming companion
- Dependency updates that understand your code
- Teaching your AI how to write tests with you
- Quality gates that actually run: verification and security in the agentic workflow
- Documentation as a first-class concern in your agentic workflow
- AI-driven usability testing: a think-aloud study with a team of AI testers
- Building and evolving your own AI development skills
- Don't let your AI agent delegate the debug work to you: manage, monitor, and test your app with Aspire 13.2's CLI overhaul and new agent skills
-
Aug 11 2025
TimeProvider in .NET8, the solution to flaky tests with DateTime.Now issues
If you're still using DateTime.Now in your .NET tests, you're building on quicksand. Flaky time-dependent tests are some of the most frustrating issues—they pass locally, fail randomly in CI/CD, and destroy confidence in your deployment pipeline. Good news, .NET 8 brings us TimeProvider to solve this problem. This isn't just another abstraction—it's Microsoft's answer to a problem and baked directly into the framework to make time-dependent code reliably testable.