With the growth of new technologies, companies are increasingly seeking out software developers and engineers. That is why both of these in-demand positions made Glassdoor’s list of the 50 Best Jobs in America for 2020.
Here, we will answer your most pressing questions about software engineers and developers, and bring you exclusive hiring tips from company executives and software experts.
What Is The Difference Between A Software Engineer And A Software Developer?
Opinions vary widely on what makes someone a software engineer vs. a software developer.
The most common definition is that:
Engineers look at projects from a big-picture perspective, applying engineering principles and methods.
Developers focus mainly on the hands-on work of building software.
In some countries, “software engineer” is a title that requires an accredited engineering degree. Software developers may have a degree in a field such as computer science, have learned through a coding “bootcamp”, or be self-taught.
Gabriel Richards, founder of software development company Endertech in Los Angeles, compares the two professions to a tradesman and an architect. “The good tradesman (developer) will be able to build whatever you've planned out for him to build, [while] the good architect (engineer) will be [able] to create that plan from first principles, and probably has some trade experience himself.”
In practice, however, the two terms are often used interchangeably. According to Rob Blackburn, CEO of software engineering firm BlackBurn Labs in Rhode Island, “The truth is, the difference between a "Software Developer" and a "Software Engineer" is largely semantic. There is no real official distinction… more often than not, [companies] will just use one nomenclature over the other, resulting in almost no difference at all.”
Which is Better: Software Engineer or Software Developer?
There is no clear answer, of course, as to whether a software engineer or developer is “better” for your project. However, there are certain factors that you can take into account when deciding whom to hire. If you are looking to fill a senior position requiring high-level problem solving and planning skills, or if you are operating in an industry where having licensed engineers on board may be advantageous, hiring a software engineer may be your best bet.
On the other hand, if your needs are flexible, you want access to a broader hiring pool, or you are concerned about budget, hiring a developer might make sense for you. Many organizations choose to hire a combination of both developers and engineers.
Software engineers may be good candidates for leading your team, as well as planning and documenting projects. You can then hire junior software developers to focus on coding, and the hands-on work of building your product. However, it is important to remember that “developer” and “engineer” are often used interchangeably in the industry.
Therefore, it makes sense to focus on each candidate’s individual education and experience, rather than the specific job titles that appear on his or her resume.
What Do Software Developers Do?
The US Bureau of Labor Statistics offers some useful insights into what software developers do on an everyday basis. The primary goal of software developers is to create software, which could mean anything from a simple phone application to an enterprise-level software system. Besides coding, this also involves analyzing user needs, planning the software, testing it, “debugging” (removing errors), and writing documentation.
According to the Bureau, the development process usually looks something like this:
1. First, developers must understand which functionalities the software needs, and how customers plan to use it. In larger companies, this information may be gathered by a UX (user experience) research team.
2. Second, the software needs to be designed. Some organizations may hire UX designers or web designers to help with this phase.
3. Third, developers build, document, and test the software.
4. Fourth, any bugs found in initial testing are fixed.
5. Fifth, the software is released to customers.
6. Sixth, developers continue to provide updates and maintenance, addressing any bugs found by users and adding new features to the product.
A software developer or engineer’s specific responsibilities depend heavily on the size and structure of your organization—some companies have a small team that manages most of the process on their own, while in larger companies, individual employees may take care of a narrower range of tasks.
What Skills Do Software Developers Need?
It is useful for developers to have an in-depth knowledge of one or several coding languages. If they are working in-house, it is also helpful for them to understand the industry their company is operating in (for example, online education, banking, or logistics). Google has released a list of technical skills they expect their software engineers to master. These include:
Knowledge of at least one object-oriented programming language, plus additional languages
A background in abstract mathematics, and an understanding of algorithms and data structures
Familiarity with different operating systems
The ability to test code
An understanding of artificial intelligence
Knowledge of parallel programming, cryptography, and how to build compilers
Along with these “hard skills,” software developers also need “soft skills” to work well as part of a team. These include the ability to communicate well, manage their own time, and collaborate with colleagues and managers.
Are Software Engineers and Software Developers in Demand?
As previously mentioned, software engineering and software development are both highly in-demand professions, and the demand continues to increase with the rapid growth of the technology industry.
According to the Bureau of Labor Statistics, employment for software developers is projected to grow 21% in the period between 2018 and 2028, which is much faster than the average for other occupations. Like developers, software engineers are similarly sought-after in today’s economy. Al Mithani, COO of Montreal-based startup SmartHalo, explains: “There’s never been a higher demand for skilled software creators than there is now. Since the industry usually doesn’t make a distinction between engineers and developers, both are equally in demand.”
What Is The Salary Of A Software Engineer?
If you decide that a software engineer is the best fit for your project, what should you expect to pay them? The salary of a software engineer depends on many factors. These include experience, location, benefits package, and more.
With its “Best Jobs in America” list, Glassdoor offers some insights into the average salary of a software engineer: according to their data, the median base salary for a US-based software engineer in 2020 is $105,563. Meanwhile, in the UK, the median base salary for the same position is £45,590 (around $59,293 USD).
Payscale.com has some slightly different findings. According to them, the average software engineer salary in the US is $84,762. Software engineers in large US cities earn significantly more, however: the average salary in New York City is $100,637, while in San Francisco it reaches $118,274.
In general, software developers earn lower salaries than software engineers. Payscale’s data shows the average yearly software developer salary in the US to be $70,868, while Glassdoor reports an average of $80,429 for the same position. Web developer salaries can be lower still, with a median average of $69,430 per year, according to the Bureau of Labor Statistics.
Things To Think About When Hiring a Software Developer or Engineer
Whether you’ve decided to hire a software developer or engineer, there are plenty of important factors to keep in mind. Both of these professions require a high level of technical knowledge, but they also require other skills and qualities.
Al Mithani recommends prioritizing adaptability and a willingness to learn. “The workplace today is overflowing with potential technology solutions. By hiring someone with a proven aptitude for learning, you can ensure your organization is able to keep up.”
He also reminds employers to look for soft skills, such as communication abilities. “Software development is a team sport; strong communicators can increase the value of the entire team, while toxic communicators can derail an otherwise productive team.”
Ryan Shriver, CTO of SingleStone Consulting in Virginia, adds that a software engineer should be a proactive problem solver. “They should have a bias for action and fall in love with the problem, and not the first solution that comes to their mind.”
In addition, the successful candidate should care strongly about quality. “[They should] take pride in the code they produce to ensure it’s clear for others who will read it later… [and think] not just about quality at the code level, but at the end-to-end system level.”
Conclusion: Think About The Candidate, Not The Title
You should now be well-equipped to understand the differences between a software engineer vs. a software developer. Although there is plenty of gray area and overlap when discussing these two professions, some employers still have a preference for one over the other. The title of “engineer” represents a mindset that is attractive to many companies.
As Ryan Shriver puts it, “I prefer holistic problem solvers over people who can simply sling good code. Good code is important, don’t get me wrong, but writing code is often just one piece of solving problems—not the only one.”
Regardless of whether you choose to hire a software engineer, software developer, or both, the most important thing to think about is the candidate: his or her attributes, skills, and experience.
Best Sites to Hire Developers by Programming Language
Data Science engineers
Machine Learning engineers
Ruby on Rails developers