Technical Bulletins & Architecture Notes
In-depth notes on distributed .NET systems, Clean Architecture, CQRS, reactive React frontend performance, and production battle-testing.
Composition Over Inheritance: Refactoring a .NET Class Hierarchy
A realistic inheritance hierarchy that rots under new requirements, and a step-by-step refactor into composed behaviours that stay easy to change and test.
- Composition Over Inheritance: Refactoring a .NET Class Hierarchy
A realistic inheritance hierarchy that rots under new requirements, and a step-by-step refactor into composed behaviours that stay easy to change and test.
.NETArchitectureRefactoring - Building Reliable ASP.NET Core APIs
A practical guide to building ASP.NET Core APIs that stay predictable under load, handle failures well, and remain easy to change.
ASP.NET CoreAPIsReliability - Async and Await Best Practices in .NET
How to use async and await in .NET without creating hidden deadlocks, thread starvation, or unnecessarily complicated code.
.NETAsyncPerformance - EF Core Performance Checklist for Production
A practical EF Core checklist for reducing slow queries, oversized object graphs, and unnecessary database work in production systems.
EF CorePerformanceDatabases - A Testing Strategy for .NET Teams
How to balance unit, integration, and end-to-end tests in .NET so teams catch regressions without creating a brittle test suite.
.NETTestingTeam Practices - Background Jobs in .NET with Hosted Services
How to implement background processing in .NET with hosted services without turning your web app into an unreliable job runner.
.NETBackground JobsReliability - When a Modular Monolith Beats Microservices in .NET
Why many .NET teams move faster with a modular monolith first, and how to structure modules so the codebase stays clean as the product grows.
.NETArchitectureModular Monolith - Observability in .NET with OpenTelemetry
How to make .NET services easier to operate with logs, metrics, and traces that explain what the system is doing under real production load.
.NETObservabilityOpenTelemetry - Securing ASP.NET Core APIs with Authentication and Authorization
A practical approach to securing ASP.NET Core APIs with clear identity boundaries, policy-based authorization, and safer defaults.
ASP.NET CoreSecurityAPIs - Caching Strategies for High-Traffic .NET Applications
How to use in-memory and distributed caching in .NET without serving stale data blindly or hiding deeper design problems.
.NETCachingPerformance - Refactoring Legacy .NET Systems Without Stopping Delivery
A pragmatic approach to improving legacy .NET systems while still shipping features, reducing risk through seams, tests, and incremental change.
.NETRefactoringLegacy Code - Domain-Driven Design and Clean Architecture in .NET Core
A deep dive into DDD tactical patterns, Clean Architecture layers, and how to implement them in .NET Core with a clear dependency rule.
.NETDDDArchitecture - DDD, CQRS, and Vertical Slice Architecture
Low-context structure for features: one slice per use case, CQRS, and a thin domain. Easy for humans and AI to navigate and implement.
DDDCQRSArchitecture - CQRS in .NET Core with Clean Architecture
A deep dive into CQRS: when to use it, how to implement commands and queries, read models, and how it fits with DDD and Clean Architecture.
.NETCQRSArchitecture