1) Problem identification. They don't simple problem solve. They solve the right problems.
2) Intentional. An engineer is intentional about decisions about and implementation of solutions. Below the engineering level solitions are random or simply the first thing that comes to mind.
3) Humility. Paraphrasing and supplementing a comment in another HN thread (about junior devs): "Dunning Kruger as a spectrum within engineering. The less self awareness the dev has, the more jr they are." Engineers understand they have blindspots, and what those blindspots are.
4) What is vs what will be. Engineers understand there is a future and that biz needs can and do evolve. Budget might restrict them from a more future-proof solution but they are at least aware it will happen. Devs are far more short sighted about such things.