What would you like to explore?
Actual execution
This guide describes Andrew using his public notes. Source sentences are checked. A generated label can still get the meaning wrong, so open the source to check it.
Build from durable data to the interface, then follow a request through the system.
Select an object. Ask a question. Follow the evidence.
01Software architecture
Get the software
working early.
I like getting changes into a working environment early. A prototype answers some questions. Connecting it to the rest of the system usually raises a few more.
I’d rather find those problems while the work is still easy to change. The dev setup, tests, and everyday tools matter too. They should make it easier to move around the codebase.
How I design systems
I make service boundaries, data ownership, and failure paths explicit. APIs give each part a clear contract; background jobs keep longer work separate from the request.
When I think about scale, I look at the workflow as well as the software. Where does the work run? What becomes a bottleneck as more work happens at once? I’m interested in moving beyond setups that depend on one machine, while keeping the approach practical for what the system actually needs to do.