Senior .NET Engineer Learning Path — 2026
Goal: Stand out as a mid-senior/senior .NET engineer with system design skills and deep understanding — not just AI-generated code.
The Golden Rule: Don’t move on until you can explain it in your own words and build it without AI.
Learning Method for Each Topic:
- 🧸 Learn — Jeri gives a simple explanation + example code to follow
- 🗣️ Explain — Tell Jeri the concept in your own words; he corrects and fills gaps
- 🔨 Build — Write the code yourself without AI; Jeri gives the spec, not the solution
- 👀 Review — Show Jeri what you built; he gives feedback and improvements
- 🔁 Repeat — Only move on when you can explain it cold
📊 Progress Overview
| Phase | Topic | Status | Started | Completed |
|---|
| 1 | Foundation — .NET Internals | 🟡 In Progress | 2026-07-14 | — |
| 2 | Cloud-Native & DevOps | ⬜ Not Started | — | — |
| 3 | System Design & Architecture | ⬜ Not Started | — | — |
| 4 | Testing & Quality | ⬜ Not Started | — | — |
| 5 | AI/LLM & Modern Stack | ⬜ Not Started | — | — |
📚 Phase 1: Deepen the Foundation (2-3 weeks)
| ⬜ | What to Learn | Build This |
|---|
| ⬜ | .NET Internals — Middleware pipeline, DI container lifetimes, async/await at IL level | NET Internals — How It All Works — Profile POS API with dotnet-trace. Explain each concept aloud |
| ⬜ | EF Core Deep Dive — Change tracker, query compilation, AsNoTracking, N+1 detection | Profile POS API DB queries — find and fix all N+1 queries |
| ⬜ | Dependency Injection — Scoped vs Transient vs Singleton pitfalls, keyed services (.NET 8+) | Refactor a service that has wrong lifetime scoping in POS API |
| ⬜ | ASP.NET Core Pipeline — Custom middleware, minimal API vs controllers tradeoffs | ASP.NET Core Middleware Pipeline Explained — Build a custom middleware: request logging with structured tracing |
📚 Phase 2: Cloud-Native & DevOps (3-4 weeks)
| ⬜ | What to Learn | Build This |
|---|
| ⬜ | Azure Container Apps — Service discovery, scaling, revision management | Deploy Mango Microservices to Azure Container Apps with CI/CD |
| ⬜ | Docker Compose → Production — Multi-stage builds, health checks, secrets | Write docker-compose.yml for Mango: all 6 services + SQL Server |
| ⬜ | GitHub Actions CI/CD — Matrix builds, NuGet caching, deploy to Azure | Pipeline for POS API: build → test → publish Docker → deploy |
| ⬜ | Infrastructure as Code — Bicep for Azure resources | Bicep templates for Mango: Container Apps + SQL + Service Bus |
| ⬜ | OpenTelemetry — Traces, metrics, structured logging | Add OTel to POS API — trace every HTTP request + DB call |
📚 Phase 3: System Design & Architecture ⭐ (Highest Impact, 4-6 weeks)
| ⬜ | What to Learn | Build This |
|---|
| ⬜ | System Design Fundamentals — CAP theorem, caching strategies, API Gateway patterns | Design a URL shortener. Design a chat system. Explain aloud like in an interview |
| ⬜ | Event-Driven Architecture — Events vs Commands, Event Sourcing, eventual consistency | Add OrderPlaced event to Mango: Email service sends confirmation, Coupon service validates. Handle retries + idempotency |
| ⬜ | CQRS + MediatR — Command/Query separation, validation pipeline behaviors | Refactor POS API to CQRS: split orders into Commands (place, cancel) and Queries (get history) |
| ⬜ | Domain-Driven Design — Aggregates, Entities, Value Objects, Bounded Contexts | Model a “restaurant ordering” domain — draw bounded context map first, then code one context |
| ⬜ | Clean Architecture — Domain → Application → Infrastructure → Presentation layers | Refactor one POS module to Clean Architecture — note the tradeoffs you made |
| ⬜ | Resilience Patterns — Retry with backoff, Circuit Breaker, Bulkhead, Timeout (Polly) | Add Polly resilience to all Mango service-to-service calls |
📚 Phase 4: Testing & Quality (2-3 weeks)
| ⬜ | What to Learn | Build This |
|---|
| ⬜ | Unit Testing — xUnit, Moq, AAA pattern, test naming conventions | Unit tests for POS API business logic — target 80%+ coverage |
| ⬜ | Integration Testing — WebApplicationFactory, Testcontainers (real SQL in Docker) | Integration tests for POS API endpoints against a real PostgreSQL container |
| ⬜ | Contract Testing — Pact, API contract verification between services | Contract tests between Mango Order service and Coupon service |
| ⬜ | Architecture Testing — NetArchTest, enforce layer dependencies | Test that fails if someone puts EF Core imports in the Domain layer |
| ⬜ | Performance Testing — BenchmarkDotNet, k6 load testing | Benchmark EF Core: tracked vs no-tracking, split queries, compiled queries |
📚 Phase 5: AI/LLM & Modern Stack (1-2 weeks)
| ⬜ | What to Learn | Build This |
|---|
| ⬜ | Semantic Kernel — Microsoft AI orchestration, plugins, planners, RAG | Internal “Smart Docs” bot answering questions from API docs using RAG |
| ⬜ | Vector Search — Embeddings, Azure AI Search / pgvector | Add vector search to a documentation search feature |
| ⬜ | Native AOT — .NET native compilation for cold-start gains | Convert a small service to Native AOT and measure cold-start improvement |
🎤 Interview Readiness
| ⬜ | Question — Can I answer this cold? |
|---|
| ⬜ | “Design a notification system that sends email, SMS, and push — handle failures gracefully.” |
| ⬜ | “How does async/await actually work under the hood? What’s a SynchronizationContext?” |
| ⬜ | “Explain zero-downtime deployment of a .NET app behind a load balancer.” |
| ⬜ | “PostgreSQL vs SQL Server — when would you choose which?” |
| ⬜ | “When is CQRS overkill? What’s a real scenario where it saved a project?” |
| ⬜ | “Your API suddenly takes 5 seconds to respond. Walk me through your investigation.” |
| ⬜ | “Describe a time you disagreed with a technical decision from your lead. What happened?” |
📖 Resources
| Resource | Link | Read? |
|---|
| ”Designing Data-Intensive Applications” — Kleppmann | Book | ⬜ |
| “Architecture Modernization” — Nick Tune | Book | ⬜ |
| Milan Jovanović (YouTube) | Channel | ⬜ |
| Nick Chapsas (YouTube) | Channel | ⬜ |
| Azure Architecture Center | Docs | ⬜ |
| .NET Roadmap | roadmap.sh | ⬜ |
Last updated: 2026-07-14