Senior .NET Developer
From C# basics to the architecture of large systems. Every lesson is simple, with pictures and live examples.
C# and .NET basics
Modern C#
Records, pattern matching, nullable types and new language features
✓ Doneasync/await and the thread pool
How Task works and why we must not block
✓ DoneDependency Injection
Service lifetimes and common mistakes
✓ DoneMemory and the Garbage Collector
Stack and heap, GC generations, memory leaks
✓ DoneLINQ and collections
IEnumerable or IQueryable, choosing the right collection
✓ DonePerformance and Span
Fewer allocations, BenchmarkDotNet, hot paths
✓ DoneASP.NET Core
Middleware and the pipeline
The path of a request from start to end
✓ DoneAuthentication and authorization
JWT, OAuth2, OpenID Connect and policies
✓ DoneBackground services
Background work, scopes and graceful shutdown
✓ DoneMinimal APIs and controllers
Which one to use where
✓ DoneRate limiting
Limiting requests on one or many servers
✓ DonegRPC and SignalR
Fast service-to-service calls and live updates to users
✓ DoneData and storage
Entity Framework Core
Tracking, N+1, migrations and performance
✓ DoneSQL and indexes
Query plans, the right index, paging on big tables
✓ DoneTransactions and isolation levels
Lost updates, deadlocks and locks
✓ DoneRedis
Data structures, cluster, distributed locks
✓ DoneCaching patterns
Cache-aside, cache invalidation, stampede
✓ DoneNoSQL
MongoDB and when to use it instead of SQL
✓ DoneCode design
Clean Code
Good names, small functions, readable code
✓ DoneSOLID
Five basic object-oriented design rules, with examples
✓ DoneDesign patterns
Strategy, Decorator, Factory, Mediator and more
✓ DoneClean Architecture
Onion layers and the direction of dependencies
✓ DoneDomain-Driven Design
Shared language, Bounded Context, Aggregate
✓ DoneCQRS and Mediator
Separating reads and writes, the MediatR library
✓ DoneVertical Slice
Organizing code by feature
✓ DoneTesting
Distributed systems
Microservices
Service boundaries, data per service, costs
✓ DoneOutbox and Inbox
Sending messages safely together with database changes
✓ DoneIdempotency
One request, any number of times, one result
✓ DoneResilience with Polly
Retry, circuit breaker, timeout and retry storms
✓ DoneThe Saga pattern
Transactions across services with compensation
✓ DoneConsistency and CAP
Eventual consistency and hard choices
✓ DoneEvent Sourcing
Storing events instead of the final state
✓ Done