- Interact with several key roles in the company including other System Architects, Product Managers, developers, test teams and other delivery functions.
- Lead the design thinking of the applications from a software level evaluating what tools and products best fit the wider aspirations of the company
- Balance the “here and now” application requirements against the strategic architecture directions set out by lead system architect.
- Ability to assist in code design reviews where needed to ensure quality whilst avoiding complexity working with the team.
- Collaboration will be key with a strong requirement to become familiar with skills and interests in the development team and align architecture decisions with the team’s interests very much at the forefront.
- Technically support the projects that will embed the application from inception to product releases and development enhancements.
- Research, evaluate and select technologies for the implementation of each component and connections to the components (integration).
- Create unified software architecture standards in the company.
- Control the architecture during the next iteration of a system release.
- Work with the Lead System Architect to ensure the software architecture aligns with the overall solution architecture direction.
- Resolve disputes and trade-offs at software architecture level.
- Document all work in accordance with agreed standards.
- Link to Configuration Control for all architectural documents produced including version control.
Skills and Experience
- Broad understanding of how Large-Scale infrastructures, systems, applications, distributed databases and their requirements work together.
- Excellent and proven knowledge in programming and in several technological stacks
- Excellent and proven experience in leading design decisions around evolving existing applications and introducing new products and ways of thinking from a software perspective
- Deep and broad technical knowledge of software architecture and generic understanding of high-level architecture principles
- Experience of working as part of a wider architecture team and awareness of the different layers of architecture
- Strong experience in the ability to compose a large number of technical documentation, reports and diagrams.
- Ability to assess effort, risk, costs and complexity for software solutions
- Good communication skills with the ability to relate to various audiences
- Excellent understanding and experience of hardware infrastructure implementation and low-level working principles
- Strong experience in application security and how code level principles dove tail into the overall security strategy.
- Ability to assess COTS applications and oversee the implementation of associated tools and products
- Ability to understand at code level Java, C#, Unity, Docker, PostgreSQL.
- Understanding of large distributed, data sharing systems deployed over large distances
- Experience managing and deploying software and Operating System updates/upgrades over IP.
- Experience with Cyber-Security strategies and implementation
- Experience in software verification and validation including functional, regression, scenario, load, usability, stress, performance and automated testing.