Hacker News new | comments | show | ask | jobs | submit login
Ask HN: Do you call yourself a software engineer or software developer?
12 points by WoodenChair on June 3, 2015 | hide | past | web | favorite | 26 comments
I've never understood why so many people in the industry insist on calling themselves software engineers. Do you have formal training in engineering? Do you employ engineering techniques? Doesn't "software developer" better describe your role if you're not using actual "engineering" techniques? Sure, some of us have taken software engineering classes, but does that make us engineers?



Computer Programmer = Software Developer = Software Engineeer.

The people that really try to make a distinction may have spent quite a lot of money on a degree or may be trying to justify a higher salary.

Any programming job requires engineering. The amount of skills and sophistication of techniques varies, but if you are programming without doing software engineering then you're not doing it right.

In the context of computer programming, 'engineering' is applied broadly to pretty much any activity beyond typing in a single script.

I believe engineering is an appropriate term because most computer programs are very complex systems are require the application of a range of knowledge and skills. And most of these systems are novel in certain ways often requiring more problem solving ability than some other types of engineers may ever need to apply.


I just say "I write code" in casual conversation. Otherwise I use whatever term my company uses. That has mostly been 'engineer'.

I did CS/EE in college. Can't say I elevate one over the other. I knew plenty of people that were good at one but not the other. In general we optimize our behavior - if you have to send a chip to fab you spend a ton of time on simulation and validation before going physical. In software we can just fire up our debugger and inject values in by hand. Neither is fundamentally 'better' than the other. However, I think you can get away with poor techniques much easier in SW. Bosses notice really quickly when a CPU fab run turn out chips that don't work and the cost (money) of that mistake is detrimental to your career.


All non-software engineers employ complex (often mathematical) techniques to analyse their design in terms of reliability, performance, safety, robustness to external conditions etc. We, except maybe for the area of critical embedded software, barely do any of these things. What's more, with the rise of the agile methods, we actually make a point to not spend time on those (see "Move fast and break things"). That's why IMO most of us aren't engineers.


Over the course of my career I've held both the "developer and "engineer" titles in different parts of the US. While some of the differences are simply regional, I have noticed one significant difference between being called an "engineer" versus a "developer".

I've found the term to closely correlate with how the organization thinks about building software and how responsibilities and decision making around what to build are broken down.

Companies that call programmers "engineers" often employ a number of other people to determine what to build. Product Managers, Business Analysts, UX specialists, etc are more commonly filing this role, while programmers simply write the code, test it, deploy, and fix it.

Companies that call programmers "developers" usually have only limited supporting staff like Customer Support and Ops to supplement the actual programming work. Programmers are often experts in an industry (like Healthcare or Finance) and often determine what to build as well as actually building it. These responsibilities are sometimes clearly stated, but more often the decision making is going on behind the scenes.


I largely don't care about titles, my current one is Software Engineer, I self describe as a software developer.

In the US the title of Engineer is not reserved except in a few very specific instances and the argument about whether software creation is engineering needs to first agree on what engineering is, a very open question and one that seems largely uninteresting to me.

In my own head I think of myself much more as a logician/mathematician than I do an engineer, but I bet you couldn't guess/interpret that from the output.


Wikipedia says engineering's original meaning is from latin:

  >meaning "cleverness" and ingeniare
  >meaning "tocontrive, devise"


> "Sure, some of us have taken software engineering classes"

Are you assuming that most of us do not have CS degrees? I assume that most do.

That being said, I consider the terms to be interchangeable. I lean towards "software engineer", but certainly don't mind the "software developer" label.


In Canada at least the title "engineer" is professionally regulated, so the terms "CS classes" and "software engineering classes" are non-interchangeable as with the titles "software developer" and "software engineer". The second requires an accredited software engineering degree and a license to practice engineering professionally.


same in many Scandinavian countries, I believe. You can get in trouble for calling yourself an engineer without the proper education (CS degree does not count, unless its computer engineering)


IMO it's pedantic to call yourself a 'software engineer'. I also feel that people who do it are trying to elevate themselves from the rest.

If you feel you are a better developer just prove it with code and great architectures. We don't need titles.


I call myself whatever the job is asking for if I'm applying for jobs and I've the skills. Other than that I tend to call myself by my name, or if I'm really pushed to describe my job to others as a 'programmer.'


For the final year of my degree, I got to choose a number of specialisations. Choosing a certain combination would mean that my degree title would read "BSc Computer Science", a different combination would mean that the title would read "BSc Software Engineering". I chose the latter and now I have a magic piece of paper that I can wave at recruiters to convince them to pay me more.


When my company was acquired, all of our "software developers" received the title of "software engineer", so yes I refer to myself as a software engineer. My title is trivial to me, but I would consider my day-to-day activities to be a form of engineering. I apply my software knowledge in order to design, build, maintain, research, and improve systems and/or processes.


I think in the case of large scale, high-availability systems it goes a bit beyond development. I'd consider development writing the code.


I like this distinction. Software engineering feels like you are building a system, considering infrastructure, optimization, caching layers, etc., versus just writing the code that runs on such a system. That distinction may be a subtle one, but that's how I see it.

Source: I am director of engineering at a 35 person startup


I'm in Canada, so I currently call myself a software developer, but I expect to be awarded my professional engineering license soon (P. Eng.), after which I can legally call myself a software engineer. The title signals that I have a certain level of technical education and have been vetted through a licensing process.


My company does not allow anyone to have the title of "Engineer" unless they actually have a P.E. license.


In my country it is pretty regulated, you need to get certified and do 5 years after high-school to become an engineer. Or a basic "CS degree" would only require 3 years. This is why if you get to call yourself engineer you pretty much stick with that. + It gets you paid a lot more.


I typically go by software developer but at my current company I'm a software engineer. From my perspective, they're fairly interchangeable, but Engineer does elude to working on more advanced projects.

On the flip side of things, I think developer is a better buzzword.


While I agree on the former, I do get most buzz off of the word "engineer" though.


In my opinion, a Soft Developer is one who mainly just writes code. Whereas, a Soft Engineer is somebody who looks after the project end-to-end (requirements gathering, coming up with a solution and then coding it)


I would call those "programmer" and "developer" respectively, but to each his own.


I just call myself a technology consultant that specializes in web programming and application security, or simply consultant for short.

My actual title is Chief Development Officer, but meh.


Yes. Yes. Maybe. No.

TBH, while I do have a degree in Software Engineering, and do practice actual software engineering in the day job, I could give a rats ass what my actual title is.


professionally: i agree they are interchangeable

personally: Engineers encapsulate architecture, infrastructure, development, planning, research, dev-ops, provide leadership and lead the execution. Where developers are responsible for specific execution of a project.

my boss: having "Engineer" in your title is offensive to the Engineers who went to school for it, so we'll call you a developer now that you've been a software engineer here for a while.


I'm both: SDE = Software Development Engineer

So there's that.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: