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
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 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.
Certified Internetwork ExpertInternet ConsultantSolution ArchitectPublishing Systems AnalystCommercial Drone Software DeveloperEmbedded EngineerComputer Systems Software EngineerApplication ArchitectSoftware Application EngineerUI Designer (User Interface Designer)Systems Analyst EngineerOperating System Specialist (OS Specialist)AI Specialist (Artificial Intelligence Specialist)Drone Software Development EngineerComputer Systems Software ArchitectGame EngineerSecure Software AssessorApplication Systems ArchitectSoftware Design EngineerSystems Integration EngineerDevOps Engineer (Development Operations Engineer)Systems Support EngineerBeta TesterSoftware ArchitectFull Stack DeveloperApplication Integration EngineerComputer Programmer AnalystVideo Game EngineerGame DeveloperSoftware Development EngineerSoftware Application SpecialistSolution EngineerSOA Developer (Service Oriented Architecture Developer)Software EngineerSoftware WriterSoftware Application ArchitectBusiness Application DeveloperMainframe Systems ProgrammerFull Stack Software EngineerMobile Device Developer