Job Description
Remote is seeking a Senior Software Engineer to join the team in ASD. The Senior Software Engineer will lead the design, development and delivery of complex software solutions, ensuring the quality, functionality and maintainability of software produced by the team.
The role will involve designing, coding, testing, reviewing, documenting and releasing complex software in line with agreed standards. The Senior Software Engineer will also provide technical leadership and mentoring, resolve complex engineering issues, collaborate with stakeholders, and contribute to improving software development practices. ( LH-06973)
Role Description
Key duties and responsibilities
- Accountable for designing, coding, testing, correcting, reviewing, documenting and releasing large or very complex programs and program modifications according to supplied specifications, standards and tools.
- Accountable for accurate completion of work within timeframes and quality requirements, share own expertise with others and guide and mentor less experienced employees.
- Has expertise in domain technologies and generate new concepts within that domain.
- Utilise knowledge and experience to consider ramifications of issues and longer term impact of own work and work area to meet business objectives.
- Work collaboratively with stakeholders and other subject matter experts to progress ICT software engineering business activities.
- Analyse very complex ICT software engineering issues, applying expertise to identify and implement courses of action.
- Assess and evaluate software development strategy, initiatives, projects, policy and procedures.
Technical skills
- Proficiency in multiple programming languages
- Understanding of algorithms and data structures
- Understanding of software development methodologies
- Knowledge of databases and SQL
- Familiarity with version control systems
Essential criteria
- Programming/software development: Level 5 (SFIA)
Takes technical responsibility across all stages and iterations of software development. Plans and drives software construction activities. Adopts and adapts appropriate software development methods, tools and techniques. Measures and monitors applications of project/team standards for software construction, including software security. Contributes to the development of organisational policies, standards, and guidelines for software development.
- Release and deployment: Level 5 (SFIA)
Leads the assessment, analysis, planning and design of release packages, including assessment of risk. Liaises with business and technology teams on release scheduling and communication of progress. Conducts post-release reviews. Ensures that release processes and procedures are applied and that releases can be rolled back as needed. Identifies, evaluates and manages the adoption of appropriate release and deployment techniques, processes and automation tools.
- Software configuration: Level 5 (SFIA)
Takes technical responsibility across all stages and iterations of configuration development and deployment. Plans and drives software configuration activities. Adopts and adapts appropriate software configuration methods, tools and techniques. Measures and monitors the application of standards for configuration design and deployment including software security. Contributes to the development of organisational policies, standards, and guidelines for software configuration design and deployment.
- Software design: Level 4 (SFIA)
Designs complex software applications, components and modules. Uses appropriate modelling techniques following agreed software design standards, guidelines, patterns and methodology. Creates and communicates multiple design views to balance stakeholders' concerns and to satisfy functional and non-functional requirements. Identifies, evaluates and recommends alternative design options and trade-offs. Models, simulates or prototypes the behaviour of proposed software to enable approval by stakeholders, and effective construction of the software. Verifies software design by constructing and applying appropriate methods. Reviews, verifies and improves own designs against specifications. Leads reviews of others designs.