Software Development Engineer
Role details
Job location
Tech stack
Job description
- Cyber Security: Advanced cybersecurity solutions to protect NATO communication networks and information systems against cyber threats.
- Command and Control Systems: Development and maintenance of the systems used by NATO military commanders to plan and execute operations.
- Satellite Communications: Secure and reliable satellite communications for NATO forces.
- Electronic Warfare: Electronic warfare capabilities that support NATO's mission to detect, deny and defeat threats to its communication networks.
- Information Management: Management of NATO's IT infrastructure, including databases, applications and servers.
Overall, the NCIA plays a critical role in ensuring the security and effectiveness of NATO's communications and information technology capabilities.
THE PROGRAMME
Assistance and Advisory Service (AAS)
The NATO Communications and Information Agency (NCI Agency) is NATO's principal C3 capability deliverer and CIS service provider. It provides, maintains and defends NATO's enterprise-wide information technology infrastructure to enable Allies to consult together under Article IV and, when required, stand together in the face of attack under Article V.
To provide these critical services in today's evolving environment, the NCI Agency builds and maintains a high-performing workforce comprising NATO International Civilians (NICs), Military personnel (Mil), and Interim Workforce Consultants (IWCs). IWCs are a critical part of the workforce and represent approximately 15% of the Agency's personnel., * Provide software development support in the delivery of Integrated Command and Control (ICC) capability work packages.
- Develop, deploy, maintain and enhance backend software components and services.
- Design, implement and maintain databases and data models to support application functionality.
- Manage source code repositories and contribute to software build, integration and deployment activities.
- Develop, execute and maintain automated tests to ensure software quality and reliability.
- Deploy, configure and maintain applications within Linux-based environments using containerised solutions.
- Develop and maintain responsive web applications and user interfaces in line with project requirements and UI/UX designs.
- Investigate, troubleshoot and resolve software defects while supporting the maintenance and modernisation of existing systems.
Requirements
The successful candidate will have recent, hands-on experience in server-side software development, deployment and maintenance, including:
- Proficiency in Java and Python.
- Strong SQL knowledge and database schema design.
- Good understanding of Git for source code version control.
- Experience with CI/CD pipelines using Jenkins and GitLab.
- Rigorous automated testing practices.
- Experience working with the Linux operating system.
- Experience with container technologies such as Podman or Docker.
- Recent experience developing responsive web applications using frameworks such as Angular or React.
- Experience debugging legacy applications and modernising existing codebases.
DESIRABLE EXPERIENCE
- Experience with Hibernate, Protocol Buffers, gRPC, Ansible, Kubernetes and event-streaming platforms.
- Experience working with Command and Control (C2) applications.
- Experience using the Spring Framework.
- Familiarity with Integrated Command and Control (ICC)., * A valid National or NATO Secret personal security clearance is required.