Job Summary
The Software Development Engineer II is responsible for developing, maintaining, and supporting business-critical applications and services. This role contributes to feature development, defect resolution, system enhancements, testing, and production support while gaining deeper expertise in the organization's applications, architecture, and engineering practices.
The Software Development Engineer II works independently on assigned projects and collaborates with cross-functional teams to deliver reliable, maintainable, and scalable solutions. This role is expected to take ownership of assigned features and components, contribute to continuous improvement efforts, and support the long-term health and stability of production systems.
Key Responsibilities
Software Development & Maintenance
- Design, develop, test, and deploy software enhancements and new features.
- Maintain and improve existing applications and services.
- Troubleshoot and resolve software defects and production issues.
- Participate in technical design discussions and implementation planning.
- Deliver maintainable, scalable, and testable code aligned with engineering standards.
Product & System Ownership
- Take ownership of assigned features and components from development through deployment and production support.
- Support production systems and participate in operational activities.
- Monitor application performance and reliability.
- Partner with DevOps and platform teams to address operational concerns.
- Contribute to keeping applications secure, stable, and well documented.
Code Quality & Best Practices
- Write and maintain automated tests.
- Participate in peer code reviews.
- Follow established coding standards and engineering practices.
- Contribute to technical debt reduction and system improvements.
Documentation & Collaboration
- Maintain technical documentation and operational procedures.
- Collaborate with Product, Engineering, Support, and Operations teams.
- Share knowledge and contribute to team learning initiatives.
- Participate in agile ceremonies, planning, and retrospectives.
AI-Enabled Engineering
- Use AI-assisted development tools as part of day-to-day engineering activities, including understanding existing code, debugging problems, testing, documentation, and prototyping solutions.
- Demonstrate familiarity with AI coding assistants and effective prompting, with an openness to adopting AI-enabled development practices.
- Apply appropriate engineering judgement when reviewing AI-generated output to ensure code meets quality, security, and maintainability standards.
Education / Experience
Bachelor's degree in Computer Science, Software Engineering or related field, or equivalent practical experience.
- 5+ years of professional software development experience building and maintaining production applications.
- Strong hands-on experience with TypeScript/JavaScript and React, including modern frontend and/or backend web development and HTML/CSS.
- Experience with relational databases such as MySQL or equivalent.
- Experience with Docker and a working understanding of networking concepts.
- Strong troubleshooting, problem-solving and communication skills.
- Ability to work independently and collaboratively in a distributed environment.
Preferred Qualifications
- Experience with cloud platforms, containerised and distributed systems, including se