FrameworkSoftware engineering
Complexity is what you must hold in your head to make a safe change
Judge a design by how much a reader must understand to change it safely, and prefer deep modules behind small interfaces.
Code review, design discussions, and software engineering interviews that ask what good code is.