-
“Productionize This”: a Review Checklist for Unknown Code (a 5-Minute Refresh)
One endpoint that works on my machine, twelve problems found in review, the fixed version, and a checklist for making unknown code production-ready. — read more
-
Resilience in .NET: Timeouts, Retries, Circuit Breaker, Idempotency (a 5-Minute Refresh)
Why the default 100-second HttpClient timeout hurts, retries with backoff and jitter, the circuit breaker, and idempotency keys so a retry never charges twice. — read more
-
Caching in .NET: In-Memory vs Distributed, TTL, Invalidation (a 5-Minute Refresh)
Cache-aside with IMemoryCache, Redis, and HybridCache, the cache stampede, absolute vs sliding TTL, and the traps of invalidation. — read more
-
Deployment Strategies: Rolling, Blue-Green, Canary, Strangler Fig (a 5-Minute Refresh)
Four ways to ship a new version without downtime, how fast each one rolls back, and why the database is the real problem. — read more
-
Thread Safety and Async in ASP.NET Core: a 5-Minute Refresh
Shared state in singletons, a StringBuilder that mixes two customers, .Result and thread pool starvation, and why Task.Run in a controller does not help. — read more
-
Observability in .NET: Logs vs Metrics vs Traces (and Why p99 Matters)
Logs, metrics and traces answer different questions. A short refactoring with OpenTelemetry, why the average latency lies, and the four golden signals. — read more
-
Feature Flags and Gradual Rollout in .NET: a 5-Minute Refresh
Deploy and release are two different things. A short refactoring with Microsoft.FeatureManagement, sticky rollout with targeting, a rollout plan, and the traps. — read more
-
Dependency Injection in C#: a 5-Minute Refresh
DI is about loose coupling and testability, not performance. A short refactoring, the three lifetimes, captive dependency, and a 30-second summary. — read more