Location: Ottawa, Canada
In fast changing markets, customers worldwide rely on Thales. Thales is a business where brilliant people from all over the world come together to share ideas and inspire each other. In aerospace, transportation, defence, security and space, our architects design innovative solutions that make our tomorrow's possible.
This role is Hybrid Ottawa
Software Developer
Position Summary
The successful candidate will build robust, high-performance software systems for defence and security applications, with a particular expected focus on designing, developing, testing, deploying and supporting software solutions used to process, integrate, and distribute Digital Fleet data in support of naval platforms and in-service support programs.
The successful candidate will work with business analysts, architects, engineering teams, and operational stakeholders to understand data sources, processing requirements, and target systems, and develop reliable software solutions to extract, analyze, validate, transform, classify, enrich, and distribute data.
The role requires a strong software engineering background combined with practical experience in data processing and enterprise integration. Solutions may interact with files, databases, APIs, message queues, engineering applications, and other enterprise systems.
Regulatory Compliance Requirement
This position requires direct or indirect access to hardware, software or technical information controlled under the Canadian Export Control List and/or the US the Export Administration Regulations (EAR). All applicants must be eligible or able to obtain authorization for such access.
Key Areas of Responsibility
Design, develop, integrate, test, and deploy production-quality software including automated data-processing pipelines for data extraction, processing, transformation, validation, and distribution;
Analyze structured, semi-structured, and unstructured datasets, and define appropriate processing and mapping rules;
Integrate systems using REST APIs, databases, files, message queues, and other integration mechanisms;
Apply appropriate enterprise integration patterns, including synchronous/asynchronous communication, messaging, publish/subscribe, routing, filtering, transformation, and event-driven processing;
Develop data mappings, validation rules, quality controls, and reconciliation mechanisms;
Ensure data integrity, consistency, completeness, and traceability;
Apply secure software development practices, including encryption, authentication/authorization, and secure handling of sensitive information;
Participate in architecture/design reviews and Agile development activities;
Support deployment, troubleshooting, and continuous improvement of production solutions;
Produce technical documentation including interface specifications, data mappings, and software design/code documentation;
Identify and analyze software defects and implement fixes into product releases; and
Build and maintain currency in software development best practices and methodologies.
Minimum Requirements
Bachelor’s degree in computer science, software engineering, computer engineering, or equivalent education with relevant experience;
7 years’ experience in software development including:
· 3 years’ programming experience in Python;
· Programming experience using communications / interfacing protocols such as:
i. REST APIs[;
ii. Asynchronous messaging utilizing publish/subscribe protocols or message queues
iii. Structured formats such as JSON/XML;
· Programming experience utilizing/interfacing with SQL and NoSQL databases;
· Experience with containerization such as with Docker, Kubernetes, or OpenShift;
Preferred Qualifications
3 years’ programming experience in C#;
Strong understanding of data integrity, consistency, validation, and related error-handling;
Practical knowledge of integration patterns and distributed-system reliability concepts;
Experience with Azure…