Any technical recruiter worth their salt should be able to tell the difference between a coder vs programmer or even a programmer vs developer. Identifying the difference between software developer vs software engineer is a bit more difficult.
Software engineers and software developers are both highly skilled professionals who can build software from the ground up. That said, there are important differences between the two that you need to remember. Get them right and it could help you make an incredibly valuable technical hire. Get them wrong and you may end up hiring the completely wrong person for the position.
Software Developer Vs Software Engineer
I have to confess, this is a complex issue. Is there a difference between a software engineer vs software developer? It is a point that is up for debate. Luckily there are some broadly accepted roles that each of these types of technical employees fills.
So why is it important to know the difference between a software developer vs software engineer? For one thing, these positions have different scopes and responsibilities. Importantly for a recruiter, they might also have different salary expectations. A quick glance of PayScale research suggests that at the time of writing, the average salary of a software engineer in the United States is $83,060, while the average for a software developer job is $69,560.
You also find that candidates for these roles should have different sets of skills. More importantly, candidates should also be taking different approaches to their work. We’ll go into the details below but suffice it to say, developers tend to be more creative while engineers tend to be more precise. Why is that? Well, first you need to understand what both of these roles do.
What does a software developer do?
In our post “Programmer vs developer: a recruiter’s guide to telling them apart,” we established that a developer is like a professional chef. They can cook to a high standard and take a creative approach to making new dishes. They start by understanding the taste of their target customers and then create dishes that suit those taste. A software developer’s job is essentially to take the same approach to create high-quality software as the chef takes to creating mouth-watering dishes.
A developer usually starts the application development process by speaking to customers and figuring out what their software needs are. With these criteria in hand, they go on to design and develop the different components in the application that will need to work together. To get the job done, a big part of what they do is managing the project from start to finish, making sure that they stay in constant contact with key stakeholders.
According to Bureau of Labor Statistics, a developer will often work closely with programmers who might actually execute on the design of the developer. But oftentimes, developers will use a variety of skills including good communication, project management, and domain-specific technical expertise. In fact, this last point is crucial to understanding the difference between a software developer and software engineer. As Felim O’Donnell, director of operations at Liberty IT says,
The difference between engineers and developers is that a developer takes functional specification and delivers the code required within tight parameters, essentially completing the task in isolation
Developers tend to do everything that Engineers do but on a limited scale. This allows them to be more creative than an engineer, coming up with solutions to problems as they occur. But engineers tend to solve issues on a much larger scale. There’s less room for creative solutions and instead, they need to be more systematic and they’re thinking.
What does a software engineer do?
A developer should be able to build an application form start to finish. In the same way, any chef worth their salt should be able to come up with a menu that appeals to customers and is well-executed. And for most restaurants, this is just fine. But in larger facilities like hotels, you might have one kitchen which services five different restaurants. The head chef of this kitchen needs to be able to deliver that same level of quality as a chef running one restaurant while meeting the needs of 5. This means they need to be more systematic in their approach.
The term engineer is a contentious one. While some countries require specific qualifications, others question its applicability to computer science. Despite these objections, there is still a large body of opinion that has a specific understanding of what a software engineer is.
A software engineer should be able to do everything that a software developer does, but with a different design philosophy. Engineers take a bigger picture view than developers. This means that they need to be more focused on structure design and eliminating technical debt. Rather than being interested in solving the immediate problem at hand, they are interested in solving that problem at hand while minimizing the trade-offs to other parts of the system and its architecture.
You often find software engineers divided into two categories. application engineers are somewhat similar to developers. They tend to design, build, install, and maintain applications, usually on a large scale. system engineers, on the other hand, maintain the IT infrastructure of a company. Rather than working on a specific application, engineers design, build, and maintain the systems that support applications with the consideration of all stakeholders involved.
- A software developer usually starts the application development process by speaking to customers and figuring out what their software needs are.
- Software developers tend to do everything that software engineers do but on a limited scale. This allows them to be more creative than an engineer, coming up with solutions to problems as they occur.
- A software engineer should be able to do everything that a software developer does, but with a different design philosophy.
- Software engineers take a bigger picture view than software developers, meaning they’re more focused on structure design and eliminating technical debt.
- Software engineers are interested in solving immediate problems while minimizing trade-offs to other parts of the system and its architecture.
So if you recruiting for these positions it’s important to understand the difference, but it does beg another question:
What is the difference between seeing software engineer vs software developer on a resume?
In a lot of ways, a software engineer and software developer can do similar things. But what you’ll find is that a software developer tends to focus on solving the problems of one user or set of users while an engineer will focus on the issues of all users. This video does a great job of explaining the differences:
What’s important to remember when hiring for one of these positions is not to rely too heavily on the specific job title. These can vary from company to company. As Reddit user SwabTheDeck says,
My acceptance letter said “Software Developer”, but one day, I decided to change my job title on our website to “Engineer”. That was like 2 years ago and nobody has noticed and/or cared.
Instead, it’s a good idea to look at the skills the candidate possesses. A software developer will tend to have domain-specific knowledge. For instance, you’ll see a lot of Java or Ruby developers. Engineers tend to have a much wider experience. Similar to what you would see with a full stack developer, you might see a back-end engineer or systems engineer. They’ll be expected to have experience in a number of different domains.
When hiring as well, the attitude and traits you look for in a software engineer vs developer are different. For an engineering role, look for someone who has high-level math and approaches problems in a very logical manner. Don’t look for someone who accepts ambiguity. An engineer should be able to see how their actions could create problems down the line.
When looking for a developer, you want to see a greater emphasis on creatively solving problems. The technical scope of developers tends to be more focused so you want somebody who’s more interested in coming up with solutions then worrying about long-term technical debt.
How can I test the skills of a software engineer vs developer?
It’s actually pretty easy to test a software engineer and a developer. You can give them the same types of tasks and work sample tests. What you want to see is how they approach the problem and make decisions about the solution.
As Aaron Sempf, Head of Tech at Tribal Melbourne says,
The traits I look for in individuals when filling either an engineer role or a developer role can be quite different, however, the tasks or tests I give to both are the same, but evaluated in different ways.
Using a platform like DevSkiller, you can easily give a task which mirrors the type of work the candidate will do when they start working for you. Depending on the candidate, the same task can be approached in different ways. When looking for an engineer, you want someone who produces a clean and efficient solution which doesn’t clash with the rest of the system. When looking for a developer, look for somebody who can problem solve efficiently using all of the resources available to them.
The differences between a software engineer vs software developer mainly come down to the way they approach tasks and the scope that they manage. Learning these terms will help you understand what skills you should look for to hire the right people.
Before you go
Check out our other comprehensive resources devoted to differences between various job positions:
- Difference between a coder vs. programmer