Software Developers
Research, design, and develop computer and network software or specialized utility programs. Analyze user needs and develop software solutions, applying principles and techniques of computer science, engineering, and mathematical analysis. Update software or enhance existing software capabilities. May work with computer hardware engineers to integrate hardware and software systems, and develop specifications and performance requirements. May maintain databases within an application area, working individually or coordinating database development as part of a team.
Also known as: AI Specialist (Artificial Intelligence Specialist), Application Analyst, Application Architect, Application Developer, Application Engineer, Application Integration Engineer, Application Integrator, Application Programmer, ...
Annual Salary
Median annual wage (May 2024)
Job Outlook
Projected growth, 2024–2034 (Much faster than average)
What You'd Do
- Analyze information to determine, recommend, and plan installation of a new system or modification of an existing system.
- Analyze user needs and software requirements to determine feasibility of design within time and cost constraints.
- Confer with data processing or project managers to obtain information on limitations or capabilities for data processing projects.
- Confer with systems analysts, engineers, programmers and others to design systems and to obtain information on project limitations and capabilities, performance requirements and interfaces.
- Consult with customers or other departments on project status, proposals, or technical issues, such as software system design or maintenance.
- Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcomes and consequences of design.
- Determine system performance standards.
- Develop or direct software system testing or validation procedures, programming, or documentation.
- Modify existing software to correct errors, adapt it to new hardware, or upgrade interfaces and improve performance.
- Prepare reports or correspondence concerning project specifications, activities, or status.
- Store, retrieve, and manipulate data for analysis of system capabilities and requirements.
- Coordinate installation of software system.
- Monitor functioning of equipment to ensure system operates in conformance with specifications.
- Obtain and evaluate information on factors such as reporting formats required, costs, or security needs to determine hardware configuration.
- Supervise and assign work to programmers, designers, technologists, technicians, or other engineering or scientific personnel.
- Supervise the work of programmers, technologists and technicians and other engineering and scientific personnel.
- Train users to use new or modified equipment.
Top Skills
Importance scale: 1 (low) – 5 (high)
Knowledge Areas
Importance scale: 1 (low) – 5 (high)
Education Level Distribution
Percentage of workers in this occupation by education level
Technology & Tools
Software and tools commonly used in this role
In-Demand Technologies
Work Styles
Personality traits and work styles important for this career
Key Abilities
Cognitive, physical, and sensory abilities important for this role
Importance scale: 1 (low) – 5 (high)
Work Activities
General types of job behaviors occurring on this job
Importance scale: 1 (low) – 5 (high)
Work Environment
Physical and social factors that influence the nature of work
Related Careers
Is Software Developers right for you?
Take our free career quiz to see how you match with this and 900+ other careers.
Salary data: BLS Occupational Employment and Wage Statistics, May 2024. Outlook data: BLS Employment Projections, 2024–2034.
This page includes information from the O*NET 30.2 Database by the U.S. Department of Labor, Employment and Training Administration (USDOL/ETA). Used under the CC BY 4.0 license.