Hello there, I’m Martin, software architect and developer from the Stuttgart region. Right from the start of my professional career, I decided in favor of .NET and Microsoft technologies and tools and have always incorporated them into my work. With more than 15 years of experience in the field of software architecture and development with .NET, my focus is particularly on increasing the quality and performance of development teams, the interaction of the software solution with the target environment and the actual application down to the last byte.
In my position as Director Consulting Services @ CGI, I act as enterprise architect and developer for cloud native and .NET solutions. I am also a trainer for cloud and software architecture. In addition to my professional life, I am involved in the open source communities and currently provide them with various NuGet packages with different focuses and functionalities.
A strong willingness to learn and develop is also part of my everyday life. This was taken to a new level for me in 2021 after I successfully completed my IHK trainer and my Microsoft certified trainer this year. In addition, I was able to qualify as a trainer for CGI’s Risk and Cost Driven Architecture program in 2022.
Let’s be honest: health checks are the broccoli of .NET projects. Everyone says they have them, but nobody’s excited to eat their greens. What starts as a humble SELECT 1 in a try/catch quickly explodes into a wild jungle of scripts, copy-pasted connection strings, and endpoints that only half the team remembers. Sure, it works—until it doesn’t. And when it breaks, it’s never at a good time.
Every time you call string.Format() with the same format string, .NET parses it again. And again. And again. CompositeFormat changes that: parse once, reuse forever. The result? Up to 30% faster formatting, fewer allocations, and a one-line code change. Here’s why this matters and how to use it.
While you’re busy optimizing database queries and adding cache layers, thousands of string searches per second are quietly eating your CPU budget. The problem isn’t visible in your APM dashboard because it’s distributed across every request. But it’s there. Compounding. Scaling linearly with load.
I discovered this the hard way when a log processing API started choking under production traffic. The bottleneck? String validation and sanitization. The fix? A .NET 8 feature that delivered a 5x performance improvement and let us shut down servers instead of adding them. And it’s gotten even better in .NET 9 and 10.
Clean Code is often praised but rarely practiced effectively. This article explores how misunderstood ideals and over-engineering harm .NET systems, how to recognize such failures early, and which C# best practices and official guidelines truly support maintainable software.
The ConstantExpectedAttribute, introduced in .NET 7, provides a powerful mechanism to signal compiler expectations about constant values. This enables better performance optimizations, enhanced IDE tooling, and clearer API contracts. Learn how to leverage this attribute to build more efficient and maintainable .NET applications.