The title is a play off of a book named To Engineer is Human and it seems especially true among software developers.
As an example of over-engineering, imagine a civil engineer, who needing to build a bridge, builds a bridge-building machine, and then being unsatisfied that the bridge-building machine can only build one type of bridge, then sets out to build a bridge-building machine generator (i.e. a machine that produces bridge-building machines).
I did that recently; not the bridge builder, but the software equivalent.
What I came up with is hideously complex and it took me hours to code and debug.
Hopefully I can keep from over-engineering this thing again. I’m going for simplicity and minimalism this time.