Have some fun doing it.
.NET, Windows, developer tools, and mistakes included.
Find your starting point
Newest thing / Article / aspnetcore Five DI Anti-Patterns Haunting .NET Apps and how to fix Them Start with these.
One video and one article. They show how I teach, what I care about, and why the answer is usually "it depends."
Read this first / 5 min Tame Configuration in ASP.NET Core with IValidateOptions
Silent misconfiguration is sneaky and expensive. Learn how to validate strongly typed settings in .NET using IValidateOptions, add cross property rules, inject services, support named options, and fail fast at startup with ValidateOnStart.
Read the article →Most watched.
What developers have watched most across the channel, ranked by real YouTube views.
Worth reading.
Practical guides I would hand you when the same problem shows up again.
Tame Configuration in ASP.NET Core with IValidateOptions
Silent misconfiguration is sneaky and expensive. Learn how to validate strongly typed settings in .NET using IValidateOptions, add cross property rules, inject services, support named options, and fail fast at startup with ValidateOnStart.
Read it → data / 4 minRepository Pattern vs DbContext in Entity Framework Core
Tired of arguing about repositories in EF Core? This practical guide compares direct DbContext, thin repositories, and specification style queries with small, runnable C# examples. Learn when each option shines, what to avoid, and how to keep your code clean without hiding EF Core features.
Read it → csharp / 5 minThe Traps of Nullable<T> in C#: a Practical Guide with Tiny Examples
Nullable<T> is not a mini reference type and pretending it is will bite you. This guide walks through how nullable value types work at runtime, how boxing really behaves, and what operator lifting does. You will see small, runnable C# snippets that expose common traps and safe patterns. Learn how to handle equality, pattern matching, and generics without surprises.
Read it → aspnetcore / 4 minFive DI Anti-Patterns Haunting .NET Apps and how to fix Them
Dependency injection is powerful until small mistakes turn into late night outages. This post walks through five common DI anti patterns in .NET, shows why they fail, and gives compact fixes. Learn lifetime rules, avoid hidden dependencies, and make testing easy.
Read it →Choose a rabbit hole.
Start with the thing you need to fix, understand, or finally stop searching for.
Latest.
Videos and articles together, newest first.
Five DI Anti-Patterns Haunting .NET Apps and how to fix Them
Dependency injection is powerful until small mistakes turn into late night outages. This post walks through five common DI anti patterns in .NET, shows why they fail, and gives compact fixes. Learn lifetime rules, avoid hidden dependencies, and make testing easy.
4 min0 likes → Article / csharpMeasure Twice Allocate Once: Faster Lists in .NET
Lists grow by reallocating and copying, which adds hidden cost as data scales. This post shows why setting List capacity up front reduces allocations and improves cache behavior. You will see small runnable examples and practical patterns you can drop into production.
4 min1 like → Article / aspnetcoreTame Configuration in ASP.NET Core with IValidateOptions
Silent misconfiguration is sneaky and expensive. Learn how to validate strongly typed settings in .NET using IValidateOptions, add cross property rules, inject services, support named options, and fail fast at startup with ValidateOnStart.
5 min1 like → Article / csharpVirtual vs Override vs Partial in C# Explained with Small Runnable Examples
Virtual, override and partial are tiny C# keywords with huge impact on design. This post explains how they work, when to use them, and where bugs appear. Learn the difference between override and new, why sealed override matters, and how partial classes and partial methods keep generated and hand written code happy. Every section comes with short, runnable snippets and real project tips.
4 min1 like → Article / dataEF Core Query Performance Tips for Everyone
EF Core does not make queries fast by default. You do. This guide shows how to cut query time by fetching less with projection, turning on AsNoTracking for reads, avoiding N+1, choosing AsSplitQuery for big includes, paginating, indexing and compiling hot queries. Each concept comes with small runnable C# snippets and clear explanations so you can apply them today without rewriting your app.
4 min0 likes → Article / csharpSealed by Default in .NET: when it Shines and when it Bites
Sealed looks like a tiny keyword, but it carries serious weight in modern .NET. This post explains what sealed does at class and member level, why the JIT can make sealed code faster, when you should not seal, and how to keep code testable with interfaces. You will see small, runnable examples and practical patterns that balance performance, clarity, and flexibility.
5 min0 likes →A little .NET in your inbox.
One useful tip, a few links worth your time, and the occasional war story. No inbox flood.