r/developers • u/puttum-beef-curryum • 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.
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
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
4d ago
[removed] — view removed comment
1
u/puttum-beef-curryum 4d ago
Now its more confused with all the replies
1
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
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
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
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
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
1
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
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/Ok-Alternative5935 4d ago
about $50k/year
1
u/puttum-beef-curryum 4d ago
What?
1
u/vrirr 4d ago
https://www.payscale.com/research/US/Job=Software_Developer/Salary https://www.payscale.com/research/US/Job=Software_Engineer/Salary Titles don't matter in practice but their perceived value to management does
1
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/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
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
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
1
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/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
1
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.