Incremental improvement - implement a small version that works in a basic use case, then extend. Don't build it all in once.
Reuse code. Don't reinvent the wheel
Five whys - get to the root cause of why something should be done by asking yourself why many times. Understand the problem well before acting.
Keep the solution as simple as possible. Minimization.
Perfection can't be reached, so don't aim there. Be as good as necessary.
Postpone complexity and introduce it only when really needed.
Structurizr - Software architecture documentation hub.
Krste Asanović Teaching - Great courses on software architecture.
Increment - Print and digital magazine about how teams build and operate software systems at scale..
Ladders and Tar Pits - Using concepts from the papers “Out of the Tar Pit” and “Ladder of Abstraction”, we’ll examine what it means to build robust abstractions.
The C4 model for visualising software architecture - Context, Containers, Components and Code.
The System Design Manual - Learn how to design, build and operate large scale distributed systems.
Clouddraw - Create cloud architecture diagrams in minutes.