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.
ProgrammingCritical ThinkingJudgment and Decision MakingReading ComprehensionSystems AnalysisActive LearningSystems EvaluationComplex Problem Solving
Knowledge areas
Computers and ElectronicsMathematicsCustomer and Personal ServiceEnglish Language
Technology & tools
3M Post-it AppA programming language APLABC CompilerABC: the AspectBench Compiler for AspectJADO.NETAJAXAWKAdaAdobe AcrobatAdobe ActionScriptAdobe After EffectsAdobe Creative Cloud softwareAdobe DreamweaverAdobe FlexAdobe IllustratorAdobe InDesignAdobe PhotoshopAdvanced business application programming ABAPAirtableAlgorithmic language ALGOLAllaire ColdFusionAlteryx softwareAmazon DynamoDBAmazon Elastic Compute Cloud EC2Amazon KinesisAmazon RedshiftAmazon Simple Storage Service S3Amazon Web Services AWS CloudFormationAmazon Web Services AWS softwareAmerican National Standards Institute ANSI CAnsible softwareApache AntApache AvroApache CassandraApache FlumeApache GroovyApache HBaseApache HTTP ServerApache HadoopApache Hive
Representative tasks
Analyze user needs and software requirements to determine feasibility of design within time and costDevelop or direct software system testing or validation procedures, programming, or documentation.Confer with systems analysts, engineers, programmers and others to design systems and to obtain info
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
93 alternate job titles map to this occupation.
AI Specialist (Artificial Intelligence Specialist)Application AnalystApplication ArchitectApplication DeveloperApplication EngineerApplication Integration EngineerApplication IntegratorApplication ProgrammerApplication Software Engineering IT Specialist (Application Software Engineering Information Technology Specialist)Application Support EngineerApplication Systems AnalystApplication Systems ArchitectBeta TesterBusiness Application DeveloperCertified Internetwork ExpertCommercial Drone Software DeveloperComputer Application DeveloperComputer Application EngineerComputer ArchitectComputer ConsultantComputer EngineerComputer Programmer AnalystComputer Software EngineerComputer Systems Software ArchitectComputer Systems Software EngineerDeveloperDevOps Architect (Development and Operations Architect)DevOps Developer (Development and Operations Developer)DevOps Engineer (Development Operations Engineer)Drone Software Development EngineerEDP System Engineer (Electronic Data Processing System Engineer)Embedded EngineerEmbedded Software EngineerEmbedded Systems Software DeveloperEnterprise Systems EngineerExtract Transform Load DeveloperFull Stack DeveloperFull Stack EngineerFull Stack Software EngineerGame Developer