A good coder writes working code. A good software engineer solves the right problem holistically — owning requirements, design, tradeoffs, maintainability, testing, operations, and the business context around the code. Engineering is code plus judgment plus responsibility over the whole lifecycle.
Where the line really is
Writing code that passes the tests is the easy, learnable part. The harder, more valuable part is everything around it: deciding to build, it should fit the system, and to live with later.
