Software Developer



Typical Job Roles: Web Developer, Application Developer, Mobile App Developer, Games Developer, Software D e v e l op e r. Entry Requirements Individual employers will set the selection criteria, but this is likely to include A levels; a level 3 apprenticeship or other relevant qualification; relevant experience and/or an aptitude test with a. Software developer with experience in e-commerce, enterprise and high-performance web technologies. High-performance technologist skilled at defining, designing and implementing a highly secure, continuous-deployment pipeline to update applications in cloud environments.

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.

Sample of reported job titles:Application Developer, Application Integration Engineer, Developer, Infrastructure Engineer, Network Engineer, Software Architect, Software Developer, Software Development Engineer, Software Engineer, Systems Engineer

Software Developer

This title represents an occupation for which data collection is currently underway.

View report:SummaryDetailsCustomEasy ReadVeteransEspañol

Tasks | Technology Skills | Tools Used | Detailed Work Activities | Credentials | Wages & Employment | Job Openings | Additional Information

Tasks

All 19 displayed
  • 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.
  • Coordinate installation of software system.
  • 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.
  • 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.
  • Prepare reports or correspondence concerning project specifications, activities, or status.
  • Recommend purchase of equipment to control dust, temperature, or humidity in area of system installation.
  • Specify power supply requirements and configuration.
  • Store, retrieve, and manipulate data for analysis of system capabilities and requirements.
  • 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.

Technology Skills

All 57 displayed Show 9 tools used
  • Access software — Citrix ; PuTTY
  • Administration software — Software distribution management software
  • Analytical or scientific software — IBM SPSS Statistics ; Minitab ; SAS ; The MathWorks MATLAB (see all 9 examples)
  • Application server software — Docker ; Red Hat OpenShift ; Red Hat WildFly ; Spring Boot (see all 7 examples)
  • Backup or archival software — Backup and archival software; Veritas NetBackup
  • Business intelligence and data analysis software — IBM Cognos Impromptu ; MicroStrategy ; Oracle Business Intelligence Enterprise Edition ; Qlik Tech QlikView (see all 5 examples)
  • Communications server software — IBM Domino
  • Computer based training software — Moodle
  • Configuration management software — Perforce Helix software; Puppet ; Visible Razor; VMWare (see all 10 examples)
  • Content workflow software — Atlassian JIRA ; Emerald Software Group Emerald Green Office
  • Customer relationship management CRM software — Blackbaud The Raiser's Edge; Oracle Eloqua; Salesforce software
  • Data base management system software — Amazon DynamoDB ; Elasticsearch ; MongoDB ; NoSQL (see all 24 examples)
  • Data base reporting software — Microsoft SQL Server Reporting Services ; Oracle Business Intelligence Discoverer; SAP Business Intelligence; SAP Crystal Reports (see all 7 examples)
  • Data base user interface and query software — Airtable; Apache Hive ; Blackboard software; MySQL (see all 18 examples)
  • Data mining software — Google Analytics
  • Desktop communications software — Skype
  • Desktop publishing software — Adobe Systems Adobe InDesign ; Microsoft Publisher
  • Development environment software — Advanced business application programming ABAP ; Apache Ant ; Common business oriented language COBOL ; Go (see all 60 examples)
  • Device drivers or system software — Microsoft DirectX
  • Document management software — Adobe Systems Adobe Acrobat ; Document management system software; Dropbox
  • Electronic mail software — Google Gmail; IBM Notes ; Microsoft Exchange ; Microsoft Outlook
  • Enterprise application integration software — Atlassian Bamboo ; IBM WebSphere ; Microsoft SQL Server Integration Services SSIS ; Oracle Fusion Middleware (see all 8 examples)
  • Enterprise resource planning ERP software — Microsoft Dynamics GP ; NetSuite ERP ; Oracle Hyperion ; Oracle JD Edwards EnterpriseOne (see all 10 examples)
  • Enterprise system management software — IBM Power Systems software; Splunk Enterprise
  • Expert system software — Ansible software
  • File versioning software — Apache Subversion SVN ; Git ; Version control software
  • Filesystem software — File server software
  • Financial analysis software — Delphi Technology; Oracle E-Business Suite Financials
  • Graphical user interface development software — Graphical user interface GUI builder software; Graphical user interface GUI design software; Salesforce Visualforce
  • Graphics or photo imaging software — Adobe Systems Adobe Creative Cloud ; JamBoard; SmugMug Flickr ; Trimble SketchUp Pro (see all 11 examples)
  • Information retrieval or search software — Apache Avro; LexisNexis
  • Instant messaging software — Blink; GroupMe
  • Internet protocol IP multimedia subsystem software — Voice over internet protocol VoiP system software
  • Metadata management software — CA Erwin Data Modeler; Talend Data Fabric
  • Network conferencing software — LogMeIn GoToWebinar
  • Network monitoring software — Nagios ; Wireshark
  • Network operation system software — IBM z/OS operating systems
  • Network security and virtual private network VPN equipment software — Virtual private networking VPN software
  • Object or component oriented development software — Apache Spark ; jQuery ; Objective C ; Scala (see all 33 examples)
  • Object oriented data base management software — Hibernate ORM; PostgreSQL
  • Office suite software — Google Drive ; LibreOffice; Microsoft Office
  • Operating system software — Bash ; Microsoft Windows Server ; Red Hat Enterprise Linux ; UNIX Shell (see all 23 examples)
  • Platform interconnectivity software — Amazon Web Services AWS CloudFormation ; Migration software
  • Portal server software — Apache HTTP Server
  • Presentation software — Google Slides; Microsoft PowerPoint
  • Program testing software — Fault testing software; Hewlett Packard LoadRunner; JUnit ; Selenium (see all 24 examples)
  • Project management software — Confluence ; Microsoft Teams; Oracle Primavera Enterprise Project Portfolio Management ; Slack (see all 6 examples)
  • Requirements analysis and system architecture software — IBM Rational Requisite Pro; Requirements management software; Unified modeling language UML
  • Spreadsheet software — Google Sheets; Microsoft Excel
  • Storage networking software — Amazon Simple Storage Service S3 ; Storage area network SAN software
  • Transaction security and virus protection software — Encryption software; McAfee; Symantec
  • Transaction server software — Customer information control system CICS; IBM Middleware; Microsoft Internet Information Service IIS; Object Management Group Object Request Broker (see all 5 examples)
  • Video conferencing software — Cisco Systems Webex; FaceTime; Google Meet; LogMeIn GoToMeeting (see all 5 examples)
  • Video creation and editing software — Adobe Systems Adobe AfterEffects ; Flipgrid; Screencastify; YouTube (see all 5 examples)
  • Web page creation and editing software — Adobe Systems Adobe Dreamweaver; Google Sites; LinkedIn ; Social media sites
  • Web platform development software — Backbone.js ; Google AngularJS ; Microsoft ASP.NET Core MVC ; React (see all 28 examples)
  • Word processing software — 3M Post-it App; Google Docs ; Microsoft OneNote; Microsoft Word (see all 5 examples)

Hot Technology — a technology requirement frequently included in employer job postings.

Tools Used

All 9 displayed Show 57 technology skills
  • Central processing unit CPU processors — Graphics processing unit GPU; Multi-core central processing unit CPU
  • Computer servers — Application servers
  • Desktop computers
  • Digital cameras
  • Flash memory storage card — Flash disks
  • High end computer servers — Directory servers
  • Integrated circuit testers — In circuit emulators ICE; Logic analyzers
  • Mainframe computers
  • Notebook computers

Detailed Work Activities

All 21 displayed
  • Analyze project data to determine specifications or requirements.
  • Modify software programs to improve performance.
  • Supervise information technology personnel.
  • Apply mathematical principles or statistical approaches to solve problems in scientific or applied fields.
  • Assess database performance.
  • Assign duties or work schedules to employees.
  • Collaborate with others to determine design specifications or details.
  • Collaborate with others to resolve information technology issues.
  • Communicate project information to others.
  • Coordinate software or hardware installation.
  • Design software applications.
  • Develop performance metrics or standards related to information technology.
  • Develop testing routines or procedures.
  • Document technical specifications or requirements.
  • Identify information technology project resource requirements.
  • Manage information technology projects or system activities.
  • Monitor computer system performance to ensure proper operation.
  • Prepare data for analysis.
  • Provide recommendations to others about computer hardware.
  • Provide technical support for software maintenance or use.
  • Teach others to use computer equipment or hardware.

Credentials

Wages & Employment Trends

Median wage data for Software Developers and Software Quality Assurance Analysts and Testers.
Employment data for Software Developers and Software Quality Assurance Analysts and Testers.
Industry data for Software Developers and Software Quality Assurance Analysts and Testers.

Software Developer Language

Median wages (2020)$52.95 hourly, $110,140 annual
State wages
Local wages
Employment (2019)1,469,200 employees
Projected growth (2019-2029)Much faster than average (8% or higher)
Projected job openings (2019-2029)131,400
State trends
Top industries (2019)

App Developer Software

Source: Bureau of Labor Statistics 2020 wage data and 2019-2029 employment projections.'Projected growth' represents the estimated change in total employment over the projections period (2019-2029). 'Projected job openings' represent openings due to growth and replacement.

Job Openings on the Web

Sources of Additional Information

Disclaimer:Sources are listed to provide additional information on related jobs, specialties, and/or industries.Links to non-DOL Internet sites are provided for your convenience and do not constitute an endorsement.

According to IBM Research: “Software development refers to a set of computer science activities dedicated to the process of creating, designing, deploying and supporting software.”

Software itself is the set of instructions or programs that tell a computer what to do. It is independent of hardware and makes computers programmable. There are three basic types:

System software to provide core functions such as operating systems, disk management, utilities, hardware management and other operational necessities.

Programming software to give programmers tools such as text editors, compilers, linkers, debuggers and other tools to create code.

Application software (applications or apps) to help users perform tasks. Office productivity suites, data management software, media players and security programs are examples. Applications also refers to web and mobile applications like those used to shop on Amazon.com, socialize with Facebook or post pictures to Instagram.1

A possible fourth type is embedded software. Embedded systems software is used to control machines and devices not typically considered computers — telecommunications networks, cars, industrial robots and more. These devices, and their software, can be connected as part of the Internet of Things (IoT).2

Software development is primarily conducted by programmers, software engineers and software developers. These roles interact and overlap, and the dynamics between them vary greatly across development departments and communities.

Programmers, or coders, write source code to program computers for specific tasks like merging databases, processing online orders, routing communications, conducting searches or displaying text and graphics. Programmers typically interpret instructions from software developers and engineers and use programming languages like C++ or Java to carry them out.

Software engineers apply engineering principles to build software and systems to solve problems. They use modeling language and other tools to devise solutions that can often be applied to problems in a general way, as opposed to merely solving for a specific instance or client. Software engineering solutions adhere to the scientific method and must work in the real world, as with bridges or elevators.

Software developers have a less formal role than engineers and can be closely involved with specific project areas — including writing code. At the same time, they drive the overall software development lifecycle — including working across functional teams to transform requirements into features, managing development teams and processes, and conducting software testing and maintenance.3

Software Developer Salary

The work of software development isn’t confined to coders or development teams. Professionals such as scientists, device fabricators and hardware makers also create software code even though they are not primarily software developers. Nor is it confined to traditional information technology industries such as software or semiconductor businesses. In fact, according to the Brookings Institute, those businesses “account for less than half of the companies performing software development.”

Software Developer Interview Questions

An important distinction is custom software development as opposed to commercial software development. Custom software development is the process of designing, creating, deploying and maintaining software for a specific set of users, functions or organizations. In contrast, commercial off-the-shelf software (COTS) is designed for a broad set of requirements, allowing it to be packaged and commercially marketed and distributed.