Job description
Roles & Responsibilities:The candidate will:
- Analyze system and customer requirements
- Define the architecture design of the entire software system based on requirements
- Choose the technologies and methodology for the implementation of each components and interfaces in the software solution.
- Ensure that software architecture stability is maintained throughout the software development lifecycle from Bid to Delivery and Maintenance;
- Guarantee adherence to in-scope standards and best practices, reuse policy and product development plans;
- Document the design choices and the related justifications;
- Lead the software technical document writing and effort estimation for bids and projects;
- Conduct technical presentation to software team and other internal/external stakeholders;
- Provide knowledge on state-of-the-art software architecting, taking account of future developments and maintenances;
- Lead and participate in Software team` activities including detailed design review, coding, code review, unit test and debug
Essential Skills & Qualifications:
- Bachelor’s or Master degree in computer science or related field
- Minimum 12 years of relevant experience building front end and back end of software and web applications
- Minimum 5 years of proven experience in software architect role, designing and developing large-scale software/web solution
- Certified Professional for Software Architecture (CPSA) by iSAQB
- Certified Software Architect (CSA) by the Software Engineering Institute (SEI)
- TOGAF 9 Foundation by The Open Group
- Knowledge of system architectural design patterns
- Knowledge of various coding methods and programming languages, e.g. Java, C#, Go, JavaScript, Python
- Experience with various development frameworks
- Experience with RESTful services and Microservices Architecture
- Experience with at least one message queue solution and data streaming solution (e.g. Apache Kafka)
- Experience with software system-level integration
- Experience in analyzing technical/design choices and documenting the analysis results.
- Experience with data modeling, relational database, nosql database
- Experience with cloud technologies, e.g. Microsoft Azure, Amazon Web Services
- Extensive working experience (at least 3 years) with Containerization: Docker, Kubernetes
- Experience with common software development tools, e.g. Jira, Git, Visual Studio code
- Experience in scrum/agile software development methodologies
- Experience with continuous integration (e.g. GitLab CI) and code management repository tools
Good-to-have Skills/Experiences:
- System Administration basic skillset (services, ssh, user management, …)
- DevOps advanced skillset :
- Developing and maintaining Ansible Playbooks and Modules
- Deploying and setup of CI/CD pipelines (closely work with development team to develop CI/CD pipelines and deploy into private and public cloud)
- Scripting experience in Shell (bash or Python) etc
- Infrastructure as code skillset :
- Automate deployment and configuration using Ansible
- Working knowledge VMware ESX and other virtualization technologies
- Network basics :
- Good working experience with NGINX and HA proxy deployment and configuration
- Familiar with commonly used network commands (e.g. curl, telnet, netstat)
- LAN architecture (CIDR, vLAN, routing, NAT)
- DNS and SSL (internal, external)
- Security :
- Secrets management using various vaults (Gitlab security vaults, Kubernetes secrets)
- SSH administration
- Experiences in MHA (Ministry of Home Affairs) projects are good to have.
Behavior:
- Fluent in English and French
- Produces Ingenious, astute design, with an open mind
- Excellent communication, presentation and interpersonal skills
- Collaborative team players preferred
- Be able to lead and motivate teams to deliver high-quality software
Skills & Experiences
- Experience of 5 - 12 years