About This Role
This role is for a Software Architect to shape the architecture of complex, safety-critical software products used in advanced missile systems within a leading defence technology organization. It suits an experienced Software Architect or a strong software engineer with significant design experience ready to advance into an architecture-focused position.
Responsibilities
- Take ownership of the software architecture across products
- Work closely with software engineering teams, systems engineers, technical specialists, and other architects to turn requirements into robust and practical technical solutions
- Define software architectures and ensure they remain consistent throughout development
- Identify the key factors driving architectural decisions, including performance, safety, security, usability, and maintainability
- Develop architectural requirements and document the rationale behind key design decisions
- Define interfaces between internal software components and external systems
- Work with development teams to ensure implementation remains consistent with the agreed architecture
- Review technical solutions and contribute to wider engineering design activities
- Assess architectural trade-offs and communicate technical decisions clearly to both technical and non-technical stakeholders
- Support the development of software engineering strategies, technology roadmaps, and reusable software approaches
- Contribute to the evaluation of new technologies, tools, and engineering methods
- Provide technical guidance and mentoring to software engineers
- Work with wider engineering communities to address technology development and obsolescence
Requirements
- Strong software engineering background with significant experience in software design or architecture
- Good knowledge of software architecture principles, design patterns, and modern engineering practices
- Strong programming experience, ideally across more than one language
- Experience making and communicating significant technical design decisions
- Understanding of software abstraction, layered architectures, and software stacks
- Ability to assess technical trade-offs and clearly explain architectural rationale
- Experience working closely with software developers and multidisciplinary engineering teams
- Strong communication skills with the ability to influence technical decisions across different levels
- Understanding of practices such as continuous integration and modern software development approaches
- Ability to evaluate and influence the selection of software tools, frameworks, and technologies