Software Architect
Role details
Job location
Tech stack
Job description
-
Collaborate with Solution Architects, Project Managers and other stakeholders to quickly understand project goals and constraints.
-
Develop a clear understanding of functional and non-functional requirements, including performance, disaster recovery and security needs.
-
Use appropriate methodologies and tooling to analyse, design and document software architectures (front-end and back-end).
-
Define and maintain software architectures for responsive front-end applications and scalable, robust back-end services.
-
Present architecture and design decisions to stakeholders and support development teams through design, build and maintenance.
-
Secure stakeholder agreement on analysis and design at each stage of the development lifecycle.
-
Produce documentation and artefacts in line with the Software Engineering SDLC, including design sessions, code reviews and defect management.
-
Support development teams with writing user stories and acceptance criteria.
-
Collaborate with testing, infrastructure, platform and site reliability teams to ensure end-to-end solution quality.
Requirements
-
Bachelor's degree in Computer Science, Engineering or a related discipline.
-
Extensive commercial experience (5+ years) as a Software Engineer and/or Software Architect.
-
Strong understanding of software development principles, algorithms and data structures.
-
Experience with PlantUML (C4) or similar modelling tools.
-
Proficiency with Markdown for clear, maintainable documentation.
-
Solid grasp of security principles and best practices in software design and implementation.
-
Experience working to a product or solution vision rather than detailed up-front requirements, with the ability to adapt quickly to stakeholder feedback.
-
Familiarity with Agile methodologies and DevSecOps practices.
-
Strong written and verbal communication skills, including effective remote collaboration.
-
Ability to compare and evaluate different languages and technologies to support technology selection discussions.
-
Comfortable in fast-paced, dynamic environments with the ability to learn new technologies quickly.
-
Experience working in multidisciplinary teams and engaging a broad range of technical and non-technical stakeholders.
-
Go (Golang) experience - highly desirable.
Desired Skills
-
Experience with Kubernetes in production or large-scale environments.
-
Experience working within Defence or National Security sectors.
-
Background in designing or supporting highly secure, mission-critical systems