Is a software engineer the same as a software developer?
It’s an understandable question. When you’re on the outside looking into the software industry, it can seem like we programmers (software engineers, software developers, etc) have a dizzying array of titles. And we do.
So what does it all mean? What’s the difference? Is “software engineer” just a synonym for “software developer”?
Is a Software Engineer the Same As a Software Developer?
Yes. Full stop. These are the same. Different companies have different title preferences, but the titles describe the same thing: people who write code for a living.
Sure, being a software developer at one company will always be slightly different than being a software developer at another company. But that’s true in any line of work. Similar jobs vary from company to company because the companies are different, not because of the titles.
Now if you look around the internet, you’ll see that there isn’t necessarily a consensus about this question. You’ve heard my answer, so for the rest of this post, I’m going to elaborate on why I think this is the case by responding to arguments I heard on the contrary.
How Can I Say They’re the Same When the Pay is Different?
First, you might go looking at a site like Glassdoor for these positions, wanting to get the lowdown on pay. Well, don’t worry. I’ll save you the effort.
Here is a comparison of “software engineer,” “software developer,” and “programmer” as searches on Glassdoor:
At first blush, this seems pretty contrary to what I’m saying.
You don’t pay $50K more per year for the same job. Do you?
Well, let’s consider two things here. First, these titles are self-reported and with a lot of variance. I mean, look at the “programmer” one. Being a “Java programmer” apparently somehow earns $10K more per year than a regular programmer. Or something. So this is a helpful, if not scientific guide.
Now, consider something else. Let’s take accuracy here at face value. It still doesn’t mean that these jobs are different.
Different Average Pay for Job Titles Doesn’t Mean That People With Those Titles Do Different Things
Any logical fallacy buffs out there might be familiar with post hoc ergo propter hoc, which describes mistaking correlation and causation. For instance, Wiki cites the statement, “the rooster crows immediately before sunrise; therefore, the rooster causes the sun to rise.”
In our case, we’re assuming that the titles cause the pay differences. But, in reality, it might be (and, is, I would argue) a result of the fact that companies who pay more like the software engineer title better.
Silicon Valley, for instance, loves to call programmers engineers. You hear it out there way more than you do at enterprise companies in the U.S. Midwest.
Silicon Valley also has a higher standard of living and pays more. So the real cause of higher pay is the geographic location and the company. The title is a byproduct.
People who program for a living in Silicon Valley do the same basic thing on a day-to-day basis as people who program for a living in rural Missouri. The latter will probably make more money than the former and might well have a different job title.
But they’re performing the same kind of work.
How Can I Say They’re the Same When Hiring Authorities in Companies Say They’re Different?
The next argument I can imagine is that people with experience—sometimes in hiring positions—disagree with me. If you go google around on the topic, you’ll find more takes than I can count. They’ll offer nuance, and it will sound subtle and convincing.
You’ll hear things like this:
- “Software engineers are more technically focused, whereas software developers will typically have more to do with design and user experience.”
- “Programmers just turn specs into code, whereas software developers interact with users and business stakeholders.”
- “You need a computer science degree to be an engineer—programmers are self-taught.” (By the way, not true).
The list goes on. Throw other titles, like “architect” or “tech lead” into the mix, and you’ll get dizzy. There are countless takes on this, and most of them are in disagreement or even contradictory. If you rounded up the authors of all of these different takes and put them in a room, they’d probably start arguing with each other.
Here’s the thing. People like for the universe to make sense. And people in STEM fields in particular like to put things into neat, orderly, sorted buckets.
If we have all of these different titles, there must be a reason. It can’t possibly be that the industry is just pretty young and there’s historically never been enough organization to form a consensus on what to call ourselves. It can’t be that, can it?
Yep. It can. And it is.
Software Engineer, Software Developer, Programmer… All of These Vary by Company and Industry
Look. Let’s just generically call all of these titles “software people” for the moment. Titles aside, the responsibilities of software people vary wildly by company. And this happens for lots of different reasons.
As one hypothetical example, consider a startup with just a few people building a phone app. The person they hire to build the app will have a lot more responsibilities than just coming in from 9-5 and banging out code. She’ll sit in on meetings with the executives, talk to clients, work crazy hours, pitch in with customer support, and lots of other things.
As a second example, consider a software person working for a Fortune 50 company with tens of hundreds of employees and thousands of software people. This person will go to work each day in a building filled with nothing but other software people. He will do nothing but code up specs about a very, very narrow part of some much larger piece of internal business software. He’ll never go anywhere near an executive, a customer, or a user.
Do these jobs sound similar to you? Well, in a sense. Both of these people spend a lot of time writing code.
But the similarities end there. And the similarities end there whether you give them the same job title or not.
Don’t Worry About the Title. Worry About the Job and the Company
Even if, as an industry, we could agree on a way to differentiate among these titles, it wouldn’t cover all available nuance. There are just too many variables. Maybe you talk to customers or maybe you don’t. Maybe you’re plugged in with executives, or possibly not. Perhaps you use one language or another, or at least do web development versus mobile.
I could go on, but you can probably already see that coming up with different titles for these combinations would quickly get ridiculous. So let’s not bother trying. They’re all software people.
When contemplating a career in programming, there are roughly 74,993 things more important than trying to make sense of the random mess of software people job titles. So don’t bother.
In the end, is a software engineer the same as a software developer? Well, no two software jobs are the same. But they’re not different because of the title.