| name | software-developer |
| description | Ability to design, implement, test, deploy, and maintain software systems that meet defined requirements. Includes translating specifications into executable code, applying appropriate programming and design practices, managing changes over time, and operating software in production environments. Applies across application, platform, and infrastructure-adjacent contexts and is independent of specific languages, frameworks, or tools. Work may be performed individually or collaboratively and may be supported by automation or artificial intelligence, with human accountability retained for correctness, security, and outcomes. |
Skill: Software Developer
Summary
A Software Developer designs, builds, tests, and maintains software systems that solve real-world problems.
They translate requirements into working code, collaborate across disciplines, and continuously improve systems through iteration and learning.
This skill applies across web, mobile, backend, embedded, and distributed systems.
Scope of Practice
A Software Developer may work on:
- Applications (web, mobile, desktop)
- Backend services and APIs
- Data processing and integration
- Infrastructure-adjacent code
- Automation and tooling
- System maintenance and evolution
The role spans the full lifecycle: idea → implementation → deployment → operation → improvement.
Core Capabilities
1. Problem Solving
- Breaks down ambiguous problems into solvable components
- Selects appropriate technical approaches
- Balances correctness, performance, and maintainability
2. Programming
- Writes clear, readable, and maintainable code
- Understands data structures and algorithms
- Applies language-specific best practices
3. System Design
- Designs modular and composable systems
- Understands trade-offs between architectures
- Considers scalability, reliability, and security
4. Testing & Quality
- Writes and maintains automated tests
- Debugging and root-cause analysis
- Refactors code to reduce technical debt
5. Collaboration
- Works effectively with designers, product, and other engineers
- Participates in code reviews
- Communicates technical decisions clearly
Knowledge Areas
- Programming languages (at least one primary)
- Software design patterns
- Version control systems
- Development workflows
- APIs and data formats
- Basic security principles
- Operating systems and runtime environments
Tools & Technologies (Indicative)
- Code editors / IDEs
- Version control (e.g. Git)
- Build and dependency tools
- Testing frameworks
- Issue tracking and documentation tools
- CI/CD pipelines
(Exact tools vary by environment and stack.)
Responsibilities
- Implement features according to requirements
- Maintain and improve existing systems
- Identify and fix defects
- Contribute to technical documentation
- Participate in planning and estimation
- Uphold code quality and team standards
Outputs & Evidence
Evidence of this skill may include:
- Working software applications
- Source code repositories
- Tests and documentation
- Technical designs or diagrams
- Contributions to shared codebases
- Operational improvements or automation
Ethical & Professional Considerations
- Writes software responsibly and securely
- Respects user privacy and data protection
- Acknowledges limitations and risks
- Seeks peer review and continuous improvement
Skill Growth Indicators
Progression in this skill is demonstrated by:
- Increasing autonomy in problem solving
- Better architectural judgement
- Improved code quality and maintainability
- Ability to mentor or support others
- Broader system-level understanding
Related Skills
- Systems Engineering
- DevOps / Platform Engineering
- Security Engineering
- Data Engineering
- Product Engineering
- Technical Writing
Notes
This skill definition is intentionally stack-agnostic and role-neutral.
Specialisations (frontend, backend, mobile, embedded, etc.) can be layered on top as extensions.