* the engineer can work with other developers/engineers
* the engineer writes code that is maintainable
* the engineers code has an architecture
* the engineer can find a solution to problems that don’t have a lib or stackoverflow entry
In other words:
A Developer is more likely to work on smaller codebases, most likely alone, that are comprised of known problems. If you are lucky there will be some sort of rough architecture.
An Engineer is more likely to work on larger codebases, most likely in a team, that has a core of problems that are specific to the product or a domain and need to be implemented by the Engineer. The code architecture exists to facilitate maintainability and cooperation between Engineers.