Concepts & practices
Once by the book.
Once in the choices you make.
Understand an idea once, then recognize it wherever it matters. Explore how languages run, how we model and store data, how we handle failure and coordinate work, and how we check that it all behaves as intended.
Work in progress. Lessons and examples are still being refined.
Ready articles Showing lessons that are ready to explore. Choose Drafting articles for works in progress, or All topics for the full catalog.
Design principles and language mechanisms
The ideas underneath the patterns and the tools each language gives you.
Language and runtime models
What a value means, where state lives, and what happens when the code runs.
Data modeling and type design
Make the shape of the data carry part of the argument.
Errors, results, and recovery
What failure looks like, how it travels, and what a caller can do next.
Concurrency, scheduling, and delivery
Work happening over time, and the bugs each execution model lets through.
Boundaries and contracts
What crosses a line, in what shape, and who checks it.
Testing, debugging, and measurement
Make a claim about behavior, check it, and investigate what the evidence shows.
Data and persistence
Keep stored state useful and correct as reads, writes, and failures overlap.