You are right that over and under engineering will be a problem. The sweetspot in a balance.
I assume that my readers are professional devs and are not rookies. They are not underengeneer for sure, they know patters, orms, dependency injects, architecture, etc. For these people on these career level overengeenering becomes an enemy.