Design systems that can evolve
I consider how a system will change, which teams own it and what it will cost to operate.
Architecture and trade-offs
Assess where services or modules belong by looking at ownership, dependencies and how often parts of the system change together.
Distributed and event-driven systems
Define message contracts, consistency requirements and how workflows handle retries, delays and failures.
A design the team can explain, maintain and change.