Trails
Ordered paths through the notes, grouped by topic. A note can sit on more than one trail.
Start here
Start here
Understand what this notebook is and how to read it.
C#
The language: types, object-oriented design, collections, LINQ and async.
C# building blocks
Read and write the core C# constructs that everything else is built on.
C# types: class, struct, interface and record
Choose between a class, a struct, an interface and a record, and know what each does when it is copied or compared.
Modern C#
Use the modern C# features that cut boilerplate and null bugs.
Object-oriented programming in C#
Explain the four pillars of OOP in C#, and choose between an interface and an abstract class.
SOLID principles in C#
Apply the five SOLID principles to C# code, and spot when one is being broken.
Design patterns in C#
Recognize the common design patterns in C# code, and use one only when it solves a real problem.
C# collections and Big O
Pick the right C# collection for the job, and judge its cost with Big O.
LINQ in C#
Write LINQ queries, and know when and where they run.
Async in C#
Write async code that does not block threads, and know where it goes wrong.
.NET and ASP.NET Core
The runtime, threads and concurrency, web APIs and EF Core.
.NET platform basics
Explain what .NET is made of, and how a project becomes running code.
.NET memory management
Explain how .NET frees memory, and release resources the right way.
.NET threads and the thread pool
Explain how cores, threads and the thread pool serve a .NET app, and how a single request moves across them.
Concurrency in .NET
Choose between concurrency and parallelism in .NET, and avoid the common failures.
ASP.NET Core fundamentals
Explain how an ASP.NET Core application starts, handles a request, and gets its services and settings.
Web APIs in ASP.NET Core
Design, version and document a web API in ASP.NET Core.
Data access with EF Core
Query and change data with EF Core, and keep it fast.
Event-driven architecture
Events, brokers, reliable messaging, sagas, and building it in .NET.
Event-driven foundations
still growingExplain what event-driven architecture is, and choose between queues, topics and streams for a message.
Reliable messaging
still growingBuild publishers and consumers that stay correct when messages are duplicated, late, out of order or failing.
Event-driven patterns
still growingChoose between thin and fat events, coordinate a workflow across services with a saga, and decide when CQRS, event sourcing or event-driven design is worth its cost.
Event-driven in .NET
still growingBuild event-driven features in .NET, from an in-process queue to a broker with a framework or Dapr, and trace an event across services.
AI agents
Agents, context, RAG, multi-agent patterns, safety and operations.
Agents from first principles
still growingExplain what makes a model an agent, and build the core loops of tool use, planning, ReAct and reflection.
Context engineering
still growingDecide what goes into an agent's context window on every call, and trim, order and scope it when it grows.
Retrieval-augmented generation
still growingExplain how RAG puts fresh and private data in front of a model, and choose between RAG, long context and agentic retrieval.
Multi-agent patterns
still growingChoose between a router, a handoff, a group chat and a swarm, and say what each one costs.
Agent protocols
still growingSay which protocol connects an agent to a tool, to another agent, and to a user, and what one MCP tool call looks like on the wire.
Safety and guardrails for agents
still growingName the risks of an agent that reads text and calls tools, and put the right control in front of each one.
Evaluating and running agents
still growingTest an agent before release, watch it after, and follow the lifecycle that connects the two.