Software engineers design, develop and improve upon the computer programs we use every day, including business apps, operating systems, network control systems and social networks. Software engineers can be divided into two main classifications: Applications Software Engineers and Systems Software Engineers.
Applications software engineers analyze an end-user's needs and develop a custom program to meet those needs. They use a range of programming languages depending on the application's parameters and the platform on which the program runs. Modern languages used by applications software engineers include Java, C, C++, PHP, Objective-C, Perl and Python. Mobile app developers are specialized applications software engineers who create apps for smartphones and tablets.
Systems software engineers coordinate the creation, maintenance and expansion of an organization's internal computer systems. They organize the computing needs of each department, such as sales, inventory, billing & payroll, and control the technical direction of the computer system's development. Systems software engineers may also be responsible for developing a company's intranet and ensuring system security.
Universities and private tech schools offer software engineering courses and accredited degrees. Compare the top-rated software development degrees and software engineering bootcamps in the U.S. and online.
a.k.a. Software Developer | Applications Engineer | Systems Engineer
Find Software Engineer Training
Software Engineer Skills & Responsibilities
Typical day-to-day activities and in-demand skill sets for software engineers may include the following:
- Software engineers analyze end-users' needs and develop software solutions within time and cost constraints.
- Software engineers are fluent in object-oriented programming languages such as Java, C, C++, Perl & Python.
- Software engineers program, test, debug, monitor and document changes to computer systems & applications.
- Specialized software engineers, known as mobile app developers, create applications for smartphones & tablets.
- Systems software engineers examine departmental goals and develop custom computer systems for organizations.
- Systems software engineers develop can a corporate intranet to help streamline interdepartmental communication.
- Applications software engineers upgrade existing computer programs to updated platforms with new specifications.
- Software engineers recommend changes and enhancements to existing software systems and computer applications.
- Software engineers coordinate system installation and monitor equipment functioning to ensure project specs are met.
- Software engineers are responsible for system security and data assurance across the systems that they're developing.
Software Engineer Salary
The median annual wage for software engineers is $105,000, according to the latest data from the U.S. Bureau of Labor Statistics.
Software Engineer Salary $105,000 |
Average starting salaries for software engineers and related positions:
- Software QA Engineer: $95,000
- Software Systems Engineer: $96,000
- Software Applications Engineer: $101,000
- Java Software Engineer: $101,000
- PHP Software Engineer: $103,000
- Mobile Application Developer: $103,000
- Web UI Software Developer: 104,000
- Software Engineer: $105,000
- Firmware Engineer: $108,000
- C++ Software Developer: $114,000
- Python Software Engineer: $114,000
- Senior Java Engineer: $117,000
- Senior Software Engineer: $118,000
- Ruby on Rails Software Developer: $123,000
Top paying U.S. cities and metropolitan areas for software engineers:
- San Jose, California: $157,000
- San Francisco, California: $145,000
- Seattle, Washington: $141,000
- Washington DC Metro Area: $120,000
- Boulder, Colorado: $117,000
- Huntsville, Alabama: $112,000
- Cedar Rapids, Iowa: $110,000
The hourly wage for software engineers ranges widely, from $30 to $100 or more per hour, depending on geographic location, experience level, and current industry demand for the worker's known programming skills and languages.
Explore a deep dive comparison of software engineer salary ranges.
Sources: U.S. Bureau of Labor Statistics | Indeed.com
Software Engineer Education Requirements
Most employers require software engineers to hold at least a bachelor degree in software engineering, software development, computer programming, computer science or a similar programming-centric field of study. Hiring managers for software engineering positions may also require a portfolio with documented samples or live links to your best applications and software development projects.
Marketable skills to look for in a software engineer education program include object-oriented programming in Java, C, Objective-C, C++, Perl & Python, user-interface (UI) design, human-computer interaction, web development, project management, network & database fundamentals, systems analysis, game development, interpersonal communication and technical writing. The subject matter in software engineer training programs works very well in the online learning format.
Research and compare software engineering courses and degree programs online and your area.
Software Engineer Certifications
Highly desirable certifications for software engineers include:
- IBM Full Stack Software Developer Professional Certificate
- CIW Web Foundations Associate
- CIW Web Design Professional
- CIW Web & Mobile Design Professional
- CIW Web Development Professional
Find Software Development Degrees
Software Engineer Jobs
Your software engineering education & experience qualifies you for a variety of in-demand positions including:
- Software Engineer jobs
- Systems Software Engineer jobs
- Applications Software Engineer jobs
- Web Application Developer jobs
- Mobile App Developer jobs
- Java Application jobs
- PHP Software Developer jobs
- Cloud Engineer jobs
Software Engineer Job Outlook
Employment for software engineers is expected to increase by 22% from 2020 through 2030, dwarfing the 8% average for all occupations and placing it among the nation's fastest growing IT careers. Demand for software engineers will rise along with technological advancements in computing, for example the increased adoption of cloud solutions will drive demand for Applications Engineers to develop effective and secure cloud-based apps. Likewise, as the adoption and sophistication of electronic data-processing systems in business, government, health care, telecommunications and other industries continues to grow, the responsibility of designing, safeguarding and updating these computer systems will fuel demand for Systems Engineers.
The proliferation of wireless and mobile technologies will play a big part in software engineer job growth. As mobile devices continue to become increasingly powerful and ubiquitous, the demand for new and innovative mobile apps – and talented software engineers to create them – will continue to rise. Mobile application development represents one of the largest skills gaps in the global job market, meaning there are more software development job opportunities in this niche than skilled engineers to fill them. Also, as virtual reality (VR) and augmented reality (AR) continue to penetrate the business environment, software engineers will be required to develop these cutting-edge apps and integrate them with existing computer systems.
Source: U.S. Bureau of Labor Statistics' Occupational Outlook Handbook