Occupation · SOC 15-1252
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.
Median wage
$133,080
$79,850–$211,450
Projected growth
+15.8%
Faster than average
Annual openings
26,770
per year
Employed (US)
1,654,440
Job Zone 4
Typical preparation
Considerable preparation
Stackable credential programs
2,291 mapped
Core skills
ProgrammingCritical ThinkingJudgment and Decision MakingReading ComprehensionSystems AnalysisActive LearningSystems EvaluationComplex Problem Solving
Knowledge areas
Computers and ElectronicsMathematicsCustomer and Personal ServiceEnglish Language
Technology & tools
Word processing softwareDevelopment environment softwareObject or component oriented development softwareData base user interface and query softwareDocument management software
Representative tasks
Analyze user needs and software requirements to determine feasibility of design within time and cost constraints.Develop or direct software system testing or validation procedures, programming, or documentation.Confer with systems analysts, engineers, programrs and others to design systems and to obtain information on project limitations and capabilities, performance requirements and interfaces.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.Analyze information to determine, recommend, and plan installation of a new system or modification of an existing system.Store, retrieve, and manipulate data for analysis of system capabilities and requirements.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.Consult with customers or other departments on project status, proposals, or technical issues, such as software system design or maintenance.Confer with data processing or project managers to obtain information on limitations or capabilities for data processing projects.Monitor functioning of equipment to ensure system operates in conformance with specifications.Coordinate installation of software system.Supervise the work of programrs, technologists and technicians and other engineering and scientific personnel.Supervise and assign work to programrs, designers, technologists, technicians, or other engineering or scientific personnel.Obtain and evaluate information on factors such as reporting formats required, costs, or security needs to determine hardware configuration.Train users to use new or modified equipment.
Competency framework
Skill expectations by proficiency level.
emerging
Well-defined coding tasks — implement under code review on an established codebase.Version control basics (branch, commit, pull request) — use correctly on a team's repository.Local development environment — set up and run reliably for an existing service.Unit tests for new code — write to coverage standards on assigned features.Bug reports with clear reproduction steps — diagnose and fix on isolated components.Code-review feedback — incorporate accurately on submitted pull requests.Existing system documentation — read and apply when implementing assigned tasks.Standard logging and error handling — add to new code following team conventions.Build and CI/CD outputs — interpret and respond to on individual changes.Standup updates and ticket hygiene — communicate consistently in a sprint team.
developing
Multi-file features — design and implement end-to-end within an existing service.Integration points (APIs, queues, databases) — work across confidently in a familiar stack.Test strategy (unit, integration, end-to-end) — apply appropriately to assigned features.Production incidents on owned components — investigate and resolve with reduced guidance.Performance and scalability concerns in code — recognize and address in routine work.Code reviews for peers — provide substantive feedback on a team's pull requests.Estimates and breakdowns for medium tasks — produce reliably in sprint planning.Refactoring of legacy code — execute safely in well-tested areas of the codebase.Cloud services and platform tooling — use correctly in standard team workflows.Junior developers on routine work — guide on patterns and conventions during onboarding.
proficient
Service-level designs — propose, document, and lead implementation across a team's domain.Cross-cutting concerns (auth, observability, data modeling) — own across one or more services.Production reliability and on-call response — handle autonomously across a team's services.Performance, security, and cost trade-offs — analyze and decide on within a service or feature area.Technical specs and design docs — author and shepherd through review for non-trivial changes.Cross-team integrations — negotiate and deliver across organizational boundaries.Architectural debt and migrations — plan and execute incrementally on an owned service.Hiring loops and technical interviews — conduct competently across leveling guidelines.Mentorship across the team — provide on design, code quality, and career growth.Roadmap input from a technical perspective — contribute consistently in product planning.
advanced
System architecture across multiple services — design, evolve, and defend across the org.Engineering standards and platform direction — set, document, and uphold across teams.High-stakes incidents and recovery — lead response, root-cause, and structural follow-up.Technical strategy multi-quarter — define and align with product, leadership, and adjacent teams.Engineering hiring and leveling — shape rubrics, calibrate decisions, and grow the bar org-wide.Senior engineer development — mentor, sponsor, and grow across the engineering organization.Critical build-vs-buy and platform decisions — frame, evaluate, and drive to closure.External technical representation — speak credibly in customer, partner, and community contexts.Cross-functional initiatives — lead with product, design, and operations on company-level outcomes.Engineering culture and practices — shape through patterns, rituals, and standards across teams.
Also known as
207 alternate job titles map to this occupation.
Developmental Engineer, Trainer (Air Force 62E4Q)Certified Internetwork ExpertInternet ConsultantSolution ArchitectCyber Capabilities Development Officer (Army 17D)Developmental Engineer, RPA (Air Force 62E1M)Publishing Systems AnalystCommercial Drone Software DeveloperDevelopmental Engineer, C2ISREW (Air Force 62E3Z)Computer Systems Software EngineerSoftware Application EngineerUI Designer (User Interface Designer)Operating System Specialist (OS Specialist)Developmental Engineer, Bomber (Air Force 62E3R)Drone Software Development EngineerComputer Systems Software ArchitectDevelopmental Engineer, Tanker (Air Force 62E1S)Developmental Engineer, Flight Test (Air Force 62E3F)Developmental Engineer, General (Air Force 62E1W)Developmental Engineer, Systems/Industrial/Human Factors (Air Force 62E3I)Software Development Officer, Product Designer (Air Force 16K3D)Cyber RandD Specialist (Navy 002775)Missile And Space Systems Maintenance Apprentice (Air Force 2M032)Software Design EngineerDevelopmental Engineer, RPA (Air Force 62E3M)Systems Integration EngineerMissile And Space Systems Maintenance Helper (Air Force 2M012)Systems Support EngineerBeta TesterApplication Integration EngineerComputer Programmer AnalystVideo Game EngineerDevelopmental Engineer, Tanker (Air Force 62E4S)Game DeveloperDevelopmental Engineer, RPA (Air Force 62E4M)Solution EngineerSOA Developer (Service Oriented Architecture Developer)Software EngineerBusiness Application DeveloperFull Stack Software Engineer