Software architecture
Designing systems that stay maintainable as they grow: service boundaries, data flow, and the honest choice between a modular monolith and a distributed system.
Most architecture problems are not technology problems. They are boundary problems: the wrong seam in the wrong place, defended for two years because moving it looks expensive. I work on where the seams go, what each side owns, and what the system does when one side fails.
- Target architecture with the trade-offs written down
- Service and data boundaries, and what crosses them
- A sequenced path from where the system is to where it should be