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.
Vichea Nath / Technical notes
Short, practical notes about architecture, backend systems, frontend development, and code that lasts.
Open-source software, developer tools, and full-stack solutions built with modern .NET and React.
Small patterns for building clear, responsive interfaces with React and TypeScript.
Notes and examples for designing predictable, observable backend services.
Practical approaches to persistence, caching, and background processing.
Compact explanations of boundaries, composition, and maintainable system design.
Notes from day-to-day engineering: backend patterns in C# .NET, CQRS, frontend performance, and what holds up in production.
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.
A practical guide to building ASP.NET Core APIs that stay predictable under load, handle failures well, and remain easy to change.
How to use async and await in .NET without creating hidden deadlocks, thread starvation, or unnecessarily complicated code.
A practical EF Core checklist for reducing slow queries, oversized object graphs, and unnecessary database work in production systems.