Our partner, active in the Data Security development, is looking for a Java Architect to reinforce their team.
As a **Software Architect**, you are responsible for defining and maintaining the technical architecture of projects and products. You ensure that software and hardware components, infrastructure, external systems, and their interactions are designed in a coherent, scalable, maintainable, reusable, flexible, and secure way.
You also contribute to defining the development environment, technologies, tools, and procedures used by the development teams.
Responsibilities
- Define the basic architecture concepts for new products within the functional and technical constraints of the project.
- Ensure architecture supports **flexibility, scalability, maintainability, reusability, and security**.
- Adapt and evolve the architecture throughout the product lifecycle.
- Document architectural decisions and maintain the documentation throughout the lifecycle.
- Contribute to decisions regarding development environments, including source control, build systems, and deployment.
- Contribute to the selection of development technologies, programming languages, frameworks, and third‑party components.
- Help define development procedures, including testing, task distribution, and development standards.
- Contribute to decisions regarding production environments, deployment strategies, and performance.
- Communicate architectural and technical decisions clearly to development teams and ensure they understand the rationale behind them.
Main Tasks
- Gather and understand the functional, technical, and business goals and constraints of the product.
- Analyse and propose different technical solutions and architectural alternatives.
- Select and combine technical solutions into a coherent architecture.
- Discuss and align technical solutions with infrastructure, security, and development teams.
- Create and maintain architectural documentation, including technical diagrams.
- Critically monitor the implementation of the product to ensure alignment with the defined architecture.
- Advise and support development teams during implementation.
- Evolve the architecture when required during project development and update the relevant documentation.
- Research development and architecture patterns, technologies, and industry best practices to continuously build expertise.
- Actively participate in the **Architecture Board**, contributing experience, evaluating proposals, and helping select appropriate solutions.
- Present and explain newly selected architectures, technologies, tools, and development procedures to the team.