Software Engineer Salary: Tips and Tricks for Maximum Compensation
Even entry-level software engineers can earn extremely lucrative compensation, a fact that drives many people to pursue software engineering as a profession. Those who progress up the software-engineering career ladder can unlock not only higher salaries, but (depending on the company) stock options and other benefits.
What do you actually need to know about software engineer salaries? And how can you unlock the best possible compensation? Let’s dig into some data, tips, and tricks.
What does a software engineer do?
Software engineers must figure out how to design and implement entire systems, from simple apps all the way up to complex, cloud-based services. In order to carry out that mission, they must not only understand the technical aspects of software, but also use their “soft skills” (such as empathy and communication) to secure buy-in from stakeholders throughout an organization, from other team members all the way up through senior management. (This stands in contrast to software developers, who are usually more focused on the technical implementation of software products.)
Many software engineers start out as software developers, where they focus on mastering coding. From there, they may take on additional management-centric responsibilities. Here’s a software engineer resume template that shows a “typical” career progression along with the necessary skills.
What’s a software engineer’s average salary?
According to Lightcast (formerly Emsi Burning Glass), which collects and analyzes millions of job postings from across the country, the median salary for a software engineer is $98,783 per year. Over the past 12 months, there have been more than a million open job postings for software engineers, and the average time to fill a position is 43 days, indicating a high level of demand.
Dice’s latest Tech Salary Report suggests that software engineers can receive generous compensation, especially if they specialize. For example, a principal software engineer can earn $153,288, while a cloud engineer can pull down $145,416. Back-end software engineers earn slightly lower ($129,150), just ahead of data engineers ($122,811) and systems engineers ($120,800). As with other tech professions, specialization can translate into a notable increase in salary, in addition to other benefits such as bonuses and stock options.
The Tech Salary Report puts the average tech salary at $111,348 in 2022, up 2.3 percent from the previous year. With the right mix of skills and experience, many software engineers can easily surpass that number.
Are software engineers in demand?
Software engineering is a profession with a lot of potential. Lightcast predicts that software engineer jobs will grow 17.3 percent over the next 10 years. That’s a lot of opportunity, along with a lot of potential competition from other engineers. In order to stand out, you should consider learning the in-demand skills that distinguish you in a crowded market.
But which skills? At the moment, employers are very interested in software engineers who’ve mastered the intricacies of GitHub, Amazon Web Services (AWS), the principles of test-driven development (TDD), and JavaScript Object Notation (JSON). There’s also quite a bit of interest building around TypeScript, jQuery, and PostgreSQL.
As mentioned above, those with the right skills and experience can easily unlock six-figure salaries, particularly at tech giants such as Google and Microsoft.
What skills do you need as a software engineer?
Naggi Asmar is now chief engineering officer at Matillion. Throughout his career, he’s seen organizations value full-stack engineering skills over pure back- or front-end skills. “There are currently engineering specializations around security, performance/scale, and site reliability that are also highly sought-after,” he said. “I think it’s important that engineers expand their skills by intentionally seeking out projects that take them outside of their technical comfort zone and by using training resources available at their company to deepen their expertise.”
Deedy Das, software engineer at Glean, a startup that develops an assistive search tool for the enterprise, thinks there’s a significant difference between the three highest-earning areas: startups, Big Tech and finance (HFT).
“Finance firms have the most individually achievable upside opportunity, big tech has high but plateauing salaries, and startups have high risk but large potential,” he said.
Relatively few software engineers might know the latest specialty skills, Das added, which creates an opportunity for anyone looking to distinguish themselves. “By and large, the best way to earn a high salary is to either have a deep skillset that’s indispensable to modern tech companies—like scaling infrastructure, systems, machine learning, mobile or low-level code,” he said. “Another route is to have a really valuable understanding of a niche application like finance platforms, search technology or geo-mapping technology.”
How do you negotiate a software engineer salary?
Beyond passing whatever technical challenge is involved in the interview process, you have to show how you can add to the culture and work as part of a team. Once you have a job offer, you can begin to actually negotiate for the best possible salary.
“Once the job offer is extended and salary negotiations begin, it’s important for engineers to state clearly what they’re looking for, with the assumption that this is going to be their pay level for at least 12-18 months,” Asmar said. “Engineers should think not just about how much they want to make now, but how much they will be satisfied with for that entire duration. Having said that, good companies reward their best employees, so starting salary should not be as important as looking for opportunities for growth and learning.”
Das added that, when negotiating for a higher salary, the number one tip is to have a competing offer. “That’s your best alternative to a negotiated agreement and that’s what all recruiters are trained to respond to,” he said. “Otherwise, a good recruiter typically will not budge more than a little, if that. I would hold off signing with a company if you’re not a fan of the compensation.”
Offers are almost never rescinded; as long as your comp demands are “reasonable” and you have a competing offer, you should be able to negotiate. “Depending on the company, salaries are adjusted based on your remote location, so it might be useful to pick a company that doesn’t adjust to market rates if you’re living in a low cost of living area,” Das added.
In an environment where salaries are changing fast, engineers should accept that their cohort of friends may not be a good indicator of the current state of the market. “They need to decide for themselves what level they will be satisfied with that adequately reflects their years of experience and specialized skills,” Asmar said. “State clearly what you expect and cut down on the back-and-forth negotiating. Employers want to cut to the chase and get a candidate on board as quickly as possible and compensate them fairly.”
Sometimes indecisiveness can be seen as an indicator of how the engineer will behave in difficult situations, so it’s better to be direct and decisive when discussing salary. From Das’s perspective, the tight labor market and the widespread shift towards digitalization mean software engineers have never been more in-demand.
“[Unemployment] in software engineering is at an all-time low and colleges have burgeoning computer science programs,” he said. “Using the circumstances to their advantage really depends on the person—for some, it means utilizing remote work options, becoming a digital nomad (nomadlist.com), having a great work-life balance at a Big Tech job, building a startup, or much more.”
These choices center around whether you’re looking for more freedom, more money, or more fulfilling work. “Of course, it’s a good time to shop around if you’re not getting compensated appropriately,” he added.
Will automation impact my job prospects?
With the rise of ChatGPT-3 and other A.I.-powered chatbots that are capable of writing code, some software engineers and developers fear their jobs will be taken away by machines. While it’s true that automation could take over some lower-level coding tasks, the fact remains that software engineers have many other skills that software can’t replicate, including intuition, creativity, project management, team building, and more.
While it’s key to master coding, adopting other skills will help future-proof your career. On Dice’s “Tech Connects” podcast, we sat down with Nick Durkin, field CTO of harness.io, to discuss how automation and A.I. could affect developer and engineering jobs over the next several years:
Fortunately, these skills that will future-proof your job will also lead to more opportunities, including management (should you want it), that come with higher salaries. To succeed and prosper as a software engineer, you should never stop learning.