Should You Use UseRouting()
or MapGet()
First?
Learn why UseRouting() must always come before MapGet() in ASP.NET Core and how the middleware order impacts your request pipeline.
SaaS Middleware Anti-Patterns: What Not to Do in ASP.NET Core
Bad middleware doesn鈥檛 just break requests, it breaks entire tenants. Learn the anti-patterns to avoid in your ASP.NET Core SaaS architecture and how to fix them.
Code Reviews That Grow Developers
TL;DR Code reviews should teach, not just catch bugs. Stop nitpicking syntax and start building autonomous developers. Focus on architectural patterns, ask guiding questions instead of giving orders, and eliminate multi-team approval bottlenecks that delay delivery. Good reviews create learning opportunities that scale your team鈥檚 expertise. Code reviews shouldn鈥檛 be about catching syntax errors or enforcing personal preferences. They鈥檙e your best tool for spreading architectural knowledge and building stronger development teams. But most teams get this wrong, creating bureaucratic bottlenecks instead of learning opportunities. ...
ASP.NET Core: Auth with Middleware or Filters?
Discover how using custom middleware for authentication in ASP.NET Core SaaS APIs leads to cleaner, faster, and more maintainable code compared to traditional authorization filters.
12 SOLID Interview Questions for Experienced Developers
Master SOLID principles with real C# examples, interview questions, common pitfalls, and clean architecture tips for maintainable, testable code.
JS Closures: Real Production Use Cases Beyond Interviews
TL;DR: Most developers only encounter closures during interview prep or basic counter examples. This post dives into how closures power real-world frontend scenarios: event listeners, encapsulation, memoization, and reactive programming. Walk away with patterns you can use today. Every JavaScript developer has seen the classic closure examples: counters that increment, multiplier functions that return other functions. These textbook cases teach the concept but leave you wondering when you鈥檇 actually reach for closures in real frontend work. ...
From Code Contributor to System Thinker: The Senior Developer’s Shift
A senior developer鈥檚 perspective on writing less code, focusing on architecture, mentorship, and team productivity.
Why Middleware Beats DI for SaaS Extension Points
In multi-tenant SaaS applications, custom middleware gives you the earliest hook in the request pipeline, even before dependency injection kicks in. Middleware runs at the very beginning of your pipeline, providing access to raw request data before any transformations occur.
3 Signs Your Code Needs Middleware
TL;DR Repeating logic across controllers (like logging or header checks)? Move it to middleware. Modifying requests/responses in controllers? Middleware handles that cleanly and early. Your services use HttpContext? Extract that logic into middleware for cleaner, testable code. If your services are bloated or you鈥檙e duplicating logic across controllers, middleware might be the extension point you actually need. Many developers reach for filters or services first, when middleware would鈥檝e been faster, simpler, and more maintainable. ...
Why Constructor Injection Matters in Clean Architecture
Constructor injection is your first clean architecture decision. Learn how to write testable, decoupled ASP.NET Core code using built-in DI, scoped lifetimes, and mocking techniques.