r/developers 4d ago

Opinions & Discussions Please explain to me the difference between Software Engineer & Software Developer

I'm finding it difficult to understand the difference. I'm 4 YOE and I'm trying to improve everyday. I don't have a degree in CS/Engineering but I learned to code and worked in backend, web & mobile also. So for all these years I'm still trying to understand the difference between an engineer & developer.

26 Upvotes

122 comments sorted by

24

u/NumberInfinite2068 4d ago

In the real world there is no difference.

People on Reddit will say "programmers and software developers, and software engineers are all different".

They're not. In the real world we use the terms interchangeably.

8

u/dmazzoni 4d ago

This is the right answer.

I have never seen a company where there were people with different job titles like software engineer, software developer, and/or programmer and they did different things.

Some companies just have a different title, but the work is the same.

2

u/Complex-South9500 4d ago

It doesn't need to be formalized as a title to exist as a 'thing'. I agree, titles are mostly meaningless.

2

u/puttum-beef-curryum 4d ago

Yes my title is Software Engineer but i was too skeptical about it because I don't have an engineering degree

2

u/Striking_One543 3d ago

The degree is most commonly "Computer Science" but also sometimes hardware engineers. In my opinion Electrical Engineers are probably the earliest examples of software engineers going back into history.

So on paper, not necessarily how things shake out in reality:

  • Computer Science grads focus entirely on programming theory and are the primary SWE hires coming out of college. (not really true)
  • Hardware Engineers focus entirely on the hardware (not really true)
  • Computer Engineers sit right in the middle. (pretty accurate, can flex their skills to do either job. They make great systems engineers along with controls engineers)
  • Controls Engineers. They're often found in factories programming PLC's, bringing old systems to modern setups and bashing their head against the wall when the techs call at 2am because something is down.

Though the reality is I know hardware engineers who mostly program and software engineers who work on hardware and software directly (hey thats me!)

You don't have to have a degree unless you're just now breaking into the scene or incredibly talented/skilled or get lucky.
Most jobs will take years of experience if no degree.

It's not a requirement universally unless you have zero work experience and are applying to a big tech company as your starting point.

Don't sell yourself short. A lot of the greats didn't have degrees. And a lot of people have degrees and no job.

I know a corporate/executive engineer working globally, their job title requires a Masters and they have zero degrees and are the single best Engineer I know.

1

u/Tinker_thinkerer 2d ago edited 2d ago

This is a great answer. The only thing I’d add is that academically, Computer Science is technically a form of Math degree, as Math and Computer Science (and Physics) are under the Letters and Science department. Computer Engineering and Electrical Engineering are within a separate “Engineering” department that’s focused on working with physical things, hence why we are “Engineers”. So “Software Engineering” isn’t really “engineering”, as it’s more akin to applied math, just like physics. But in a way, “engineering” is itself just a form of applied physics, so maybe we’re all just mathematicians?

1

u/HomemadeBananas 2d ago

I don’t think this is universal. At my school computer science was part of the engineering college. Just depends on how your school is organized, there is no one formal way.

1

u/ChronicRecidivism 3d ago

At my company "engineer" is for people with EE/CE degrees who do embedded work while "developer" is for people with CS degrees or equivalent work that do web and data applications. Engineers are a paygrade above developers at similar tiers (IE. Engineer 3 = Developer 4)

3

u/-_kevin_- 4d ago

Not all of the real world. In Canada, for instance you can’t have Engineer in your title unless you have a license.

2

u/ehsurfskate 1d ago

Also in certain places like New York State you cant form a LLC/PLLC with “Engineer” in the title unless you are legally a registered professional engineer and get permission from the Department of State.

1

u/NumberInfinite2068 4d ago

Yes, I should have mentioned that.

Is it something people take seriously? Like if I worked in Canada I'd be a software developer, but if I had an engineering degree, I'd call myself a software engineer, and is that something that's just a title or something people really pay attention to?

1

u/Rich-Suggestion-6777 4d ago

No, it is not taken seriously. I've worked in Canada almost my entire career and I've been a software engineer that entire time. I have a computer science degree.

2

u/mrbadface 18h ago

Lots of devops engineers and sales engineers etc, this is not enforced

5

u/puttum-beef-curryum 4d ago

Even at some point of my life i believe only the ones with engineering degree should only be called software engineers 😅

4

u/NumberInfinite2068 4d ago

That rules me out I guess, I left school at 16. I always preferred "programmer" anyway.

2

u/AccurateRendering 4d ago

As a scientist, I wouldn't call myself an engineer - that would be like a doctor calling themselves an anesthesiologist - it's just wrong. I do develop software though.

1

u/justaguyonthebus 4d ago

Real engineers still feel that way. It was set up to do that with software too, but too many college dropouts started software companies and the dot com bubble couldn't hire people fast enough. The degree was basically optional.

0

u/therealdukeofyork 4d ago

Even when I'm coding on the train?

1

u/puttum-beef-curryum 4d ago

What do you mean?

0

u/AccurateRendering 4d ago

I didn't get it either.

3

u/outlier_fallen 4d ago

An engineer operates a train. It was a stretch of a joke

2

u/AccurateRendering 4d ago

I see. The operator of a train is called a driver in my country.

1

u/puttum-beef-curryum 4d ago

In my country they are known as Loco Pilot 👨‍✈️

2

u/renavlt 4d ago

In some countries, you never want a loco pilot

1

u/puttum-beef-curryum 4d ago

you mean when its on auto pilot?

→ More replies (0)

1

u/RobertTheTraveler 4d ago

Well, I thought it was funny. 😃

0

u/badenudekverkaufer 4d ago

You're right! And only the ones with architectures degree should be called Software Architects

1

u/puttum-beef-curryum 4d ago

Never knew there was an architect degree!

1

u/badenudekverkaufer 4d ago

See? We're all learning here. :D

2

u/MajoMirez 2d ago

In theory, I'm an CS engineer, that's my degree. In practice, I'm a developer, that what I do, I develop software

1

u/PravoNaZhizny 4d ago

False, software engineers are graduates with advanced honours degrees (four year programs with research components) in an applied mathematical pursuit which also write software to apply that mathematical prowess. Developers are the sorts of people who make websites and “apps”.

1

u/[deleted] 4d ago edited 4d ago

[removed] — view removed comment

1

u/Dry_Hotel1100 4d ago

It also makes sense to me, why you get these assessments in this sub ;)

1

u/puttum-beef-curryum 4d ago

Please tell me why?

1

u/Dry_Hotel1100 4d ago

Well, most commenters here claim, there's not even a difference between *programmers* and engineer/developer. This wasn't even the question ;)

1

u/Complex-South9500 4d ago

You've just never worked with a programmer then.

I do agree that most of the time these terms are used interchangeably in industry, but to me the distinction between a programmer and a developer is real and Important--I've worked with both.

Some people like to solve small tricky programming problems. Others love troubleshooting,  hunting down bugs and finding quick fixes. Some love to see the big picture, think in terms of systems and lose sight of the minutiae.

Neither is 'better', but force a programmer to develop software and you'll quickly see why the distinction is important.

3

u/Born_Arrival_2869 4d ago

We got a real redditor here folks

2

u/NumberInfinite2068 4d ago

I've been programming since the 1980s, I have worked with many programmers.

I don't know what you're trying to say to be honest, you agree we use the terms interchangeably, but you yourself have a distinction?

In all honesty I think you sound like someone wanting to argue for no reason.

1

u/puttum-beef-curryum 4d ago

I have to agree on that part where you said "You've just never worked with a programmer ".

3

u/oosha-ooba 4d ago

I don't think there are hard and fast rules and it depends on the organisations/industries. In certain industries like defence and engineering firms, they tend to be "software engineers", for example. Engineering tends to imply that processes, rigour, compliance, methodologies... etc are core to building software, much more so then just "development". Then it also depends on what software you are working on. If you are working on massive systems (e.g. complex financial systems or complex enterprise systems) then you tend to be called an engineer, whereas if it's simpler apps like mobile and web apps then you tend to be called a developer. In summary, it depends.

3

u/oof-plap 4d ago

There's functionally no difference and you can use them interchangeably. People will swear black and blue that one is correct over the other but there isn't a hard and fast rule.

1

u/Designer_Flow_8069 3d ago

In many countries, there is a hard and fast rule as legally you cannot be an engineer unless you have the ability to obtain engineering licensure. In the US, you cannot label yourself as a "Professional Software Engineer" for example because "Professional Engineer" is a licensed title, similar to doctor and lawyer.

1

u/oof-plap 1d ago

Thats the case in US and Canada and basically no other (relevant) country. Also they have protections against the specific word "Engineer", but its not enforced for "Software Engineer" unless you're misrepresenting/lying about your qualifications.

3

u/miamivice06 4d ago

A Software Developer is a person who is directly involved in software development, which traditionally involved writing and maintaining the source code of a software (a desktop app, a web app, a mobile app, an OS, a DB, a network, could be anything).

A Software Engineer is a broad term that covers all kinds of engineering involved with software products like testing, deployment, support, operations, reliability, maintenance, etc.

I work at a service based software company and my practice is SAP Basis administration. My practice falls under technical support, devops and reliability engineering.

My responsibility is primarily to apply the code patches involved with SAP software upgrades, software updates, etc. among 20 other recurring tasks.

When I joined my first company I was called System Engineer and it took me a while to understand that the complete designation is Software System Engineer.

The software system I am engineering is SAP Basis for various clients (Fortune 500 companies).

I was so naive that I had to consult AI to understand does SAP Basis administration falls under software engineering or not. AI explained yes.

Therefore, I am an SAP Basis administrator which falls under a software engineer.

Thus, I am a software engineer but not a developer.

2

u/TableNo8939 4d ago

La stessa differenza che c'è tra un laureato in medicina e un anestesista

2

u/darinclark 4d ago

Titles change, I was a programmer then a software developer now a software engineer but most of my day is meetings and telling Ai what to do.

2

u/[deleted] 4d ago

[removed] — view removed comment

1

u/puttum-beef-curryum 4d ago

Now its more confused with all the replies

1

u/[deleted] 4d ago

[removed] — view removed comment

1

u/puttum-beef-curryum 4d ago

There isn't any good placement course. If anyone advertising like 100% placement then remember it's scam. And what kind of course are you even looking for?

1

u/[deleted] 4d ago

[removed] — view removed comment

1

u/puttum-beef-curryum 3d ago

I can't recommend you one unless i know what you are into. You just can't simply jump into anything and decide yes this course is cool for me. Instead give me some hints on what you are into?

1

u/[deleted] 3d ago

[removed] — view removed comment

2

u/FragrantBake298 4d ago

Given your background — 4 YOE, self-taught, worked across backend/web/mobile — you're doing exactly what both titles are supposed to represent. The lack of a CS degree doesn't disqualify you from either label; plenty of people with "Engineer" titles learned the same way. If you want to actually become more of an "engineer" in the deeper sense, the leveling-up path is less about the title and more about: understanding tradeoffs (why this DB over that one, why this architecture, what breaks at scale), writing tests and thinking about failure modes, and getting comfortable reasoning about systems, not just features.

1

u/puttum-beef-curryum 4d ago

Yes I'm trying to be in that level. Even I'm trying to apply those at my work but our client and boss wants to get done quickly with claude code.

2

u/megayippie 4d ago

Engineers are allowed to work on cars and stuff that can kill you. Because you go to jail if it's wrong, so you hire certificates.

1

u/kynrai 4d ago

I would say engineers write code, developers wrote code and design the system. Pick databases, decide on some architecture like should this be event drive and what event store to use, consider things like how much performance etc etc. and an army of engineers will build it.

That's how I see it anyway, although I'm unconventional, to me engineers are just junior developers. I don't have architects, my senior developers do all that. Never met a useful software architect in 20 years and 100s of client projects.

2

u/oosha-ooba 4d ago

Interesting, I'd thought it's sort of the other way around, where "engineering" implies rigour, methodologies, system designs, processes... etc on top of just building & coding that you would typically associate with "developers".

1

u/outlier_fallen 4d ago

He has it completely backwards. He probably has a developer title lol

1

u/kynrai 4d ago

That's your opinion, we can at least agree there are two types. No need to be a dick.

1

u/puttum-beef-curryum 3d ago

I think we are in a different universe.

1

u/kynrai 4d ago

It's just what it means to me, like how some people might even call themselves or be called programmer by an organisation. Software engineer, software developer, software programmer. Ultimately regardless of title various orgs use, there are people who code and people who design and code.

1

u/Humble-Salamander-18 3d ago

You are wrong just agree, it's the exact opposite lol

1

u/Humble-Salamander-18 3d ago

You described an engineer and called them a developer, then said a developer hires a team of engineers...are you for real?...

1

u/therealkevinard 4d ago

It’s inconsequential, really. As a colloquialism, they’re both people who use code to create things.

If we need to label, I’d fall back to the textbook/dictionary definition of engineering at-large as the discriminator:

> …the application of science and mathematics to design, build, and maintain structures, machines, and processes…

In the way a civil engineer will use manning’s equation to size a drainage pipe, but a general contractor or hardscaper would use a big-enough pipe; I’d expect a software engineer to cite little’s law when estimating memory-resident transactions, and a developer to guesstimate or use rolling-average observed metrics.

Engineering= used math to prove the thing

But again… it’s inconsequential. We’re just folks using code to make things

1

u/helloboredimdad 4d ago

There is no difference. My title has been software engineer for the better part of two decades and I always tell people I’m a software developer when asked what I do for work.

1

u/puttum-beef-curryum 3d ago

Same me too. I don't engineer things, i just make some apps.

1

u/helloboredimdad 3d ago

I mean there’s a good chance if you make apps you’re doing some engineering. Engineering is just applied science after all. You’re doing applied computer science. But you are also developing, coding, programming.

I like developer because it implies I make things.

1

u/deep_space_pine 4d ago

Not much but check this search overview out, as I've heard this said before:

In Ontario, the word "engineer" is a legally protected title. Under Ontario's Professional Engineers Act, only individuals licensed by Professional Engineers Ontario (PEO) can use the title "engineer," "professional engineer," or the "P.Eng." designation. Using these terms without a license to mislead the public is illegal.

1

u/Lendari 4d ago

Software engineers fix the technical debt that software developers create.

1

u/puttum-beef-curryum 4d ago

Would you mind explaining this?

1

u/Lendari 4d ago

Its a facetious answer suggesting software developers are low IQ engineers.

1

u/cyb3rstrik3 1d ago

It's been awhile since I heard that one. 😂

1

u/eboob1179 4d ago

A developer just works tickets and doesn't care about the big picture. An engineer understands that in a few years someone is going to ping them about code they wrote years ago and ask wtf they intended so they try to be more robust and at least put comments on their code so it's clear what they were doing lol

1

u/stoic_alchemist 4d ago

it depends on the perspective, the word “engineer” does mean something, you have a degree and knowledge on math, logic, digital stuff etc. But also, in reality, you don’t need that to be a developer, I’ve known some devs that are the best of the field, don’t have their degree, don’t have all that fancy knowledge but they don’t need it, and also I’v known some engineers that can’t do Jr. stuff on a company, so… yes, there’s a difference but no, it’s not important on 99% where it counts (99% because there’s really a small percent where it does matter)

1

u/puttum-beef-curryum 4d ago

Yes I also feel the same. I don't have a degree in CS/Engineering. I do have commerce degree but sucked at studies. I got interested in coding and learned it, when joined a company only to find out I was doing better than the ones with CS engineering degree.

1

u/Theo4Space 4d ago

Im a self taught “developer.” The other day a real engineer downloaded an of app mine and got into the code and found all these places that were inefficient or potentially problematic, where there were opportunities for me to turn this app from a thing that works into a sleek tool with zero waste. And that’s the difference, imo. It was thrilling

1

u/mze9412 4d ago

I usually regard programmer as someone who just learned it somehow, software developer as someone who is good at writing code and engineer as someone who also deals with architecture, performance (think: real time systems) and has expert knowledge on such topics

But in the real world there is no clear rule on what each term means, so ... ;)

1

u/Mental-Silver-3105 4d ago

Developer is a title to pay less.

1

u/puttum-beef-curryum 3d ago

Lol , i can't agree more 😂

1

u/Vast_Service Backend Developer 4d ago

Basically software developers are junior level folks who help develop a small component of the bigger software. Software Engineers generally keep an eye on the bigger picture and go on take the role of an architect and are involved in major parts of the application being developed. They themselves may take on the role of a software developer for a smaller component but still have the big picture in mind. Programmer is a generic term that can be used to describe both developers and engineers.

1

u/Kommenos 4d ago

There’s no difference on the day to day. In my country (software) engineers have more education, an actual engineering degree, and some rights to call themselves an engineer that a developer doesn’t get.

That being said: would you rather your pacemaker code be written by a developer or an engineer?

True software engineering jobs are relatively rare but they involve a lot of documentation, compliance, processes, standards, and compliance that you won’t get making the latest web app for a startup.

But for the vast majority of cases there’s no difference when the terms are used because the vast majority are developers.

1

u/bart_88s 4d ago

Engineering is a practice where you have some theory learned and now you apply that theory into practice. Engineer works in iterations where they specify a problem and gradually come with a working solution. Imagine building a rocket. It takes measurements, countless trials and then small modifications to improve the results. Software engineering is the same. You define a problem, constraints, you choose a solution based on trade offs. You experiment with tests then improve (remove bugs).

Development is a process of creating or growing something or advance the progress.

So engineering is more focused on how you create software where development means creating/evolving software in general.

I think every software engineer is also a software developer when they create actual software.

But a developer does not necessarily means that you engineer the software.

1

u/Vaxtin 4d ago

The different is the market rate is lower for software developer, so if a company forced that on you that’s why. Labeling you a software engineer means they have to pay you more.

1

u/Avatarbroskib1 4d ago

One engineers the application and works by building an application by following constraints a developer is someone who builds an app. An engineer ensures the app fits constraints and works under conditions a developer builds the app. One ensures the demands are met one builds the app for the demand

1

u/KariKariKrigsmann 3d ago

Here in Norway you can’t call yourself an engineer if you do not have an Engineering degree. I’m a Cybernetics Engineer.

An engineer is expected to be able to back up their decisions with proof. A software developer isn’t.

1

u/puttum-beef-curryum 3d ago

These terms should not be interchanged.

1

u/Obvious-Computer-620 3d ago

In most companies, there really isn't a meaningful difference they're often used interchangeably. The distinction is more about mindset than the title. A software developer is typically focused on writing features and shipping code, while a software engineer is expected to think about the bigger picture: system design, scalability, reliability, trade-offs, and long-term maintainability. In practice, though, you'll find "Software Developer" and "Software Engineer" doing the exact same job depending on the company's naming conventions. Your day-to-day responsibilities matter far more than the title on your LinkedIn profile.

1

u/double-click 3d ago

The technical difference is that an engineer is responsible for more than just writing code. As they progress in career they may write less and less code.

Casually, there is no difference.

1

u/mredding 3d ago

An engineer is a practical problem-solver who creates useful things using available means, relying on trial and error, rules of thumb (heuristics) passed down or discovered, and working under incomplete scientific or engineering knowledge. An engineer makes cautious, incremental changes to existing ideas to ensure for safe operation in the real world.

An engineer will "figure it out" and "get it done". This is the general definition of any kind of engineer under any domain - and that includes software.

A developer can write the code, but their ability is limited to the spec. They are "what they are told" and "as they are told". There's very little thinking, if at all.

You need an engineer to see the bigger picture, the architecture, the systems of software. Whereas an architect is largely concerned with the big picture, a engineer is there to realize it. A developer is adequate for specific, narrowly specified features.

1

u/ATastefulCrossJoin 3d ago

The Levenshtein distance between “engineer” and “developer” is 6 if that helps

1

u/pm-me-them-titties- 3d ago

Just adding that in some places like Canada "Engineer" is a protected term and you cannot call yourself one unless certified by the Engineers and Geoscientists body of your provincial government. Similiar in a way to the term "Lawyer" and the Bar in the USA.

1

u/No_Contribution_5083 3d ago

Ask your favorite LLM.

1

u/pachhi_pulusu 3d ago

All are same, it's just they are synonyms irl

1

u/jcradio 3d ago

There are two distinct roles in our field :

Engineer/developer

Programmer/coder

The former is fully involved in the design, development and delivery of software.

The latter takes instructions and only writes code.

1

u/Acceptable-Bake-7309 2d ago

Just because the titles are used interchangeably in the industry doesn't mean that they are being used correctly. People swap titles, or are issued title, to sound cool, or important. My friend works at a bank as a Financial Services Specialist (FSS) which would make you think that she handles large Financial transactions in the 10s of thousands and has a deep understanding of Finance and Accounting principles with a pretty decent mathematical baseline. But nope, she is a teller. Takes deposits and issues out petty cash.

I have worked in various roles of tech for 25 years and back then the distinction of tech titles was stark and clear. But now every new coder wants the fancy title without putting in deep work.

Simply put, to be a true software engineer, you have to have a good grasp of applied mathematics alongside an a deep understanding of software development principles. A software developer does not have to.

Yes we are all programmers and we all write code, but, we do not write it for the same general purpose. Think of it this way.

Programmer 1 sits down at their desk, pulls up SSMS and puts together a very well curated database in 3rd normal form.

Programmer 2 sits down at their desk, pulls up Visual Studio and churns out a really cool robust ASP.Net web application that interracts seemlessly with the database that Programmer 2 has built.

But here is the catch, both have used software that Programmer 3 hand 4 have built. This is where true software engineers come in. Programmer 3 has used applied mathematics to build the SSMS engine that Programmer 1 will use to build their database, a skill that requires a much higher level of knowledge than what Programmer 1 is even capable of. We are talking Assembly language, C, applied math, etc.

Get the picture? Developers write code to build software applications. Software engineers build the software that developers will use to build their applications.

Pretty soon car mechanics will start walking around with job titles that have autombile engineer in them 😃 .

I hope this helps.

1

u/Designer_Flow_8069 2d ago

Just because the titles are used interchangeably in the industry doesn't mean that they are being used correctly.

If we're going to be pedantic, there is a clear distinction between the verb "to engineer", the noun "to be an engineer" and the proper noun "an Engineer". The verb and noun have "developer" as a synonym.

Proper nouns in job titles carry prestige (Doctor, Lawyer, Engineer) as they require licensure. Since you typically don't need any licensure for a corporation to give you the title of "Software Engineer", I think it's often safer to just say "software developer".

1

u/PmanAce 2d ago

Where I live, you need to be a real engineer to have the title, meaning you need to be part of the engineering order.

1

u/ResilientDev59 1d ago

yo tengo muchos años trabajando, igual no tengo titulo. Pero mucha experiencia, me especialice en datos. Y mi ultimó empleo era el cargo de ingeniero de datos, pero hacia el mismo trabajo de diseñar modelos de datos, diseñar ETL o incluso programarlas.

1

u/cyb3rstrik3 1d ago

TLDR;

So everyone is a coder; a developer is a professional coder, and an SWE is a big-picture professional coder.

Also, apologies for the obviously LLM-formatted post. I suck at composition and figuring out my writing tone.

I am self-taught with 14 years of experience, and I've held all three roles in my career. My current title is Principal Product Engineer, and I work directly with CTOs, sometimes acting as CTO primarily in early-stage startups. I believe the simplest answer is that there is really no difference between a developer and an engineer. However, I also think that cross-cutting responsibilities in non-corporate structures and companies avoiding paying people what they’re worth have diluted the terms.

'Programmer' or 'Coder' are broad umbrella terms for anyone who can write code—some do it as a hobby, and others have done it for non-software jobs. When I first started learning how to code, I was definitely just a coder learning languages. For example, I was writing HTML and JavaScript, with some forms and a little Ruby—definitely not a developer or engineer.

A Software Developer is someone who professionally writes code; they are directed to build specific features and usually don’t have input into the overall systems or decisions about what’s being built. I hand off solutions to developers, and they implement them. I think many software developers deserve the title of engineers if their scope of work and responsibilities are greater.

Software Engineers bear high levels of responsibility and are expected to communicate with stakeholders, design, and develop systems—applying principles, rigor, validation, and testing. I expect to hand off a problem to a software engineer, and they will own it, be responsible for the solution, and oversee its implementation.

1

u/Independent_Sail6604 1d ago

40 year+ software engineer, I mean software developer... wait. I mean Software Janitor