When I started to learn how to code, I only wanted to build web apps and other cool stuff with what I'd learn. When I checked job posts in different job sites, I often saw two different roles which made me think what are the differences in terms of responsibilities of those two roles. Researching a little bit more, I learned that when hiring managers and job seekers are confused on what a software developer and a software engineer is with its responsibilities.
I try to explain in this article what those two different roles are. I've been a lead backend engineer at a HIPAA compliant startup, a freelance django/shopify/webflow developer in the past 5 years.
Software Developer Responsibilities
- advanced insight
- create, test, refine apps, update, debug
- targets consumer markets
- collaborates w/ testers and QA
- works with computer design companies
- understands user needs
Software Engineer Responsibilities
- logic-based and process-based concepts
- product and system development
- apply engineering principles to create apps
- testability and maintainability of functions
- design, verify and assure processes
Didn't include all that I experienced and read in some websites like salary, education, skills and programming languages.
Top comments (2)
Sounds just like two different skill-levels to me.
"Engineer" is quite a generic term in the US. In Germany, you're not allowed to call yourself an Engineer ("Ingenieur") unless you have a specific education that qualifies you for that title.
My levels would be "Developer", "Senior Developer", "Architect" and I would assume that each level includes all the skills required for the preceding levels.
I would only reserve "Engineer" for people who are skilled and reputably/officially certified to follow specific requirements, like someone who programs spacecraft, nuclear powerplants or highly mission-critical real-time embedded systems such as safety electronics in vehicles.
The title "Engineer" is used to liberally in the US IMHO. Inflation of titles is the result.