Software engineers design, develop, and test application or system software — the instructions that tell computers how to work.
The Bureau of Labor Statistics (BLS) projects a faster-than-average 22% job growth rate for software developers, analysts, and testers from 2019-29.
In an age where nearly every industry uses software technology to achieve rapid growth, software engineers enjoy exceptionally strong employment prospects. The Bureau of Labor Statistics (BLS) projects a faster-than-average 22% job growth rate for software developers, analysts, and testers from 2019-29.
Most software engineers hold degrees in software engineering or computer science. However, employers occasionally hire candidates without any official academic credentials.
This guide explores available careers and salaries for software engineers.
Software engineering is a branch of applied computer science. Theoretical computer science studies the formal aspects of algorithms, programs, and languages. Applied computer science, by contrast, considers the development of algorithms, programs, and software. A software engineer typically specializes in an aspect of software development, like programming or user interface design.
People commonly conflate software engineering roles with computer engineering and information technology (IT) roles. Unlike software engineers, however, computer engineers design and construct hardware such as microchips, circuit boards, and routers. IT professionals manage networks and databases or install and service software, computers, and networks.
As a rapidly evolving profession, software engineering attracts individuals interested in virtual reality, blockchain technology, and other software applications. Software engineering may be an excellent career choice for individuals with strengths in calculus, formal semantics, and logic.
Earnings for software engineers vary with experience, location, industry, specialty area, and education. PayScale data indicates an average annual salary of $77,000 for entry-level software engineers and $106,090 for experienced professionals as of August 2021.
Software engineer salaries vary significantly with years of experience in the field. As you acquire more experience over time and become harder to replace, employers typically provide higher compensation. Job offers from competitors can help speed up salary growth.
The table below lists the average median salary at different experience levels. The figures represent only the base salary. Additional earnings from employers such as benefits, commissions, profit sharing, and bonuses may result in higher total compensation.
Annual Salaries by Experience for Software Engineer, 2021
Software engineers’ average earnings vary with location. For example, a smaller pool of eligible job applicants in a sparsely populated area can increase demand for qualified employees. Employers typically pay higher salaries to match demand and attract the best candidates.
The higher cost of living in larger cities and metropolitan areas can also result in more lucrative salaries. For instance, software engineers make an average of $123,040 annually in San Francisco but only $82,620 in Atlanta as of August 2021.
The additional $40,420 in average earnings in San Francisco likely reflects the stark difference in the cost of living between the two cities. The cost of living in San Francisco towers above the national average by 80%, while the cost of living in Atlanta lags by 1%, according to PayScale.
Below, you can explore average salaries for different locations. The first table includes the top-paying cities for software engineers, according to PayScale. The second set of figures specifies the top-paying metropolitan areas for relevant careers, including software developers, testers, and analysts, according to the BLS.
Software Engineers’ Job Outlook and Career Prospects
Software engineers enjoy overall strong job prospects. BLS projections indicate a 22% nationwide growth for common software engineering roles from 2019-2029 — considerably faster than the 4% national average for all occupations. Several factors can affect a software engineer’s employability in the coming years, including economic growth, inflation, and tech advances.
Personal priorities concerning industry, concentration, and job location can also influence career options. Specializing in an emerging tech area like blockchain technology, artificial intelligence, or virtual reality can boost an applicant’s competitiveness in the job market.
In the next section, we explore how location may affect a software engineer’s job opportunities and career prospects.
Change in Projected Employment for Software Developers, Quality Assurance Analysts, and Testers
Job location can affect a software engineer’s career prospects, along with salary potential, job prospects, and job satisfaction. As different locations may affect these aspects in various ways, no single location ranks as the best overall for software engineers. The best states and cities depend on the employment factors you prioritize.
Top States for Software Engineers
The top-paying states for software engineering roles are Washington, California, New York, and Massachusetts, along with the District of Columbia. Software engineers earned an average annual salary of $138,400 in Washington but only $85,570 in North Dakota as of 2020, according to the BLS.
Job prospects for software engineers also vary with state and region. O*NET Online projects the greatest employment growth for software developers, analysts, and testers in Utah, Nevada, Colorado, South Carolina, and Florida from 2018-2028. Reports indicate a 62% projected increase in these roles for Utah but only 10% for Washington for 2018-28.
The top-paying states for software engineering roles are Washington, California, New York, and Massachusetts, along with the District of Columbia.
Projected employment growth does not always align with projected job openings. For example, projections point to an average of 41,090 annual job openings in Washington but only 1,340 in Utah.
The tables below include data for the states with the highest number of employed software engineers, plus projected job growth and job openings.
Top-Employing States for Software Developers, Quality Assurance Analysts, and Testers, 2020
Major tech cities often make great job locations for software engineers. Some areas feature more diverse job opportunities and provide a thriving work environment for software engineers to nurture their talents and passions.
Other elements that can make a city or region attractive for software engineers include earning potential, cost of living, and job prospects. According to PayScale, San Francisco ranks as the highest-paying city for software developers, analysts, and testers, which is unsurprising given that the South San Francisco Bay Area is home to Silicon Valley.
The famed global tech hub includes cities like San Jose, Sunnyvale, and Santa Clara. Together, these cities rank as the nation’s highest-paying metropolitan area for the profession. Software engineers made an average annual salary of $157,480 in this region as of 2020, according to the BLS.
Software engineers may also find metropolitan areas with high employment figures appealing. With 104,470 software engineers employed in key software engineering roles, the New York-Newark-Jersey City northeastern region ranked as the highest-employing metropolitan area for software engineers as of 2020.
The table below covers the nation’s top-employing metropolitan areas for software developers, analysts, and testers.
Top-Employing Metropolitan Areas for Software Developers, Quality Assurance Analysts, and Testers, 2020
The computer systems design sector employed the highest number of software engineers nationwide as of 2020. Other top-paying industries include software publishers and management companies. Software engineers working in different sectors perform many similar tasks, like designing algorithms and writing programs for computer and network applications.
For example, a software engineer in the self-driving car industry may work on software that can track other vehicles and change the car’s speed and direction in response to tracking data. By contrast, a software engineer working on a layer-2 blockchain project may design software to create tokens and track their ownership.
The highest-paying industries do not always provide the greatest employment opportunities. For example, according to the BLS, inland water transportation ranked as the highest-paying industry for software engineers as of 2020 but only employed 40 software engineers in 2020.
Employment by Industry for Software Developers, Quality Assurance Analysts, and Testers, 2020
Industries with Highest Employment
Annual Mean Salary
Computer Systems Design and Related Services
Management of Companies and Enterprises
Data Processing, Hosting, and Related Services
Management, Scientific, and Technical Consulting Services
After several years in the field, software engineers may want to advance to higher roles like systems manager or technical project manager. Rather than devising algorithms and programs, these professionals oversee computer and IT departments within businesses and organizations.
Further education in business administration can help software engineers qualify for managerial and leadership roles. Yet, several years of relevant work experience usually suffices for software engineers to advance to technical leadership positions.
Some experienced software engineers may shift to careers in systems design or consulting.
Learn More About Software Engineers
What Is a Software Engineer?
This guide provides an overview of the history of software engineering, career opportunities in the field, and common software engineer responsibilities.
Many factors can influence how much a software engineer makes, including specialization, job location, and industry. However, the BLS reports an annual median salary of $110,140 for software developers, quality assurance analysts, and testers as of 2020.
Which country pays the highest salary for software engineers?
According to PayScale data, the U.S. ranks as the highest-paying country for senior software engineers.
What is the typical software engineer career trajectory?
Most software engineers start in entry-level programming jobs. After a few years, they may advance to senior software engineer roles. Over time, many software engineers transition into managerial and leadership roles.
Is it hard to become a software engineer?
If your academic strengths lie in STEM disciplines, you may not find it hard to become a software engineer. However, the level of difficulty increases as you progress to more advanced software engineering courses.