One company's developer is another company's engineer. Most companies name them one or another and don't have both positions in house. This is because they tend to do the same thing regardless of title, its more about what the company wants to call them.
Edit: other than that, what you seem to be speaking of is more about experience. An experienced "developer" will have a better time at architecting a solution than an inexperienced "engineer".