Over-engineering is building for the scale you don't have. The records system designed for a million users serves its actual hundred worse, more moving parts, more failure modes, more to maintain.
The discipline is matching the solution to the problem: a monolith for a small team, a single VPS for a small load, boring tech for a long maintenance horizon. Scale is a good problem to have, and a bad one to assume.
The question that keeps it honest: does this complexity solve a problem we have, or one we might have? Build for the former; design so the latter isn't a rewrite.