Position Expired
This job is no longer accepting applications.
HSM Embedded Software Engineering
Raise
HSM Embedded Software Engineering
- Location: Ottawa, ON
- Contract Length: 12 Months
Role Description
The candidate will assist the team in creating the new generation of hardware security to manage symmetric and asymmetric encryption keys. This is a ground-up project, with opportunities for both basic /common and more advanced/modern skill sets.
Overview
Design, implement, test, and document parts of the Firmware containerized microservices running in an embedded Linux based system ARM-based platform and also to the development of the manufacturing Yocto based image to help factory operators to perform HW testing.
Design, implement, test, and document other components of the HSM (Hardware Security Module) embedded software according to quarterly objective.
- You will join the HSM Embedded Software Development team
- You will work in a very dynamic environment and will heavily interact with the hardware and software engineering teams
- You will participate in requirements analysis, design discussions, planning sessions and effort estimates.
- You will heavily invest in documenting and testing your designs including test automation
Software Component Engineer
A Software Component Engineer performs a subset of all the software engineering activities required to develop one or more components of a software solution / product.
These engineering activities encompass
- Contribution to the software architectural design Software Development & Verification of DO – 178B Level A/B/C
- Refinement of the components requirements
- Assembly of the software components in a logical and controlled manner to evaluate the design, behavior, interactions and performance, and to confirm that the requirements against which the software components have been designed are fulfilled
- Proficiency in Automated Development & Verification environment & tool sets, configuration management, programming languages C/C++/DOORS/FPGA programming Etc.
- Participates in the configuration item integration and verification phases;
- Contribute to the production of the software data package for release to solution
- SW Specifications, Design and Integration, SW Environment tools setup and configuration Engineer
A SW Specifications, Design and Integration, SW Environment tools setup and configuration Engineer performs a subset of all the software engineering activities required to integrate and verify a solution / product.
- Prepares definition of documents or participates in the preparation in order to, comply with targets relating to costs, deadlines and quality.
- Participates in the product integration and verification phases;
- Experience on Design, Software Development & Verification of DO – 178B Level A/B/C
- Assembly of the solution / product elements in a logical and controlled manner to evaluate the design, behavior, interactions and performance, and to confirm that the requirements against which the solution / product has been designed are fulfilled
- Demonstration that the product data package is ready for release to production and to operation and support.
Software Solution Configuration & Change Management Engineer
A Software Solution Configuration & Change Management Engineer performs the following software engineering activities:
- Configuration Management of the Software Configuration Items and Components
- Change Management of the Software Solution
- A Software Solution Integration and Verification / Configuration & Change Management Engineer participate in co-engineering activities with the Systems Engineering team in order to ensure software-system consistency.
- He ensures the right contribution
Software Architect
Technically is responsible for Software architecture and its consistency with the solution & system architecture. He / She coordinates with other Solution architects in order to make sure that the top down refinement of the solution is consistent with the software strategy and constraints including COTS & OSS selection and components reuse. The Software Architect has specific expertise covering :
- Experience in Design, development, Integration and Verification of products & solutions for avionics & other civil / military applications
- Experience on Design, Software Development & Verification of DO – 178B Level A/B/C
- Works out and then ensures that the software architecture is stabilized & maintained for Bids and Projects for all lifecycle stages;
- Guarantees the correctness and consistency of the software contractual and technical referential of the solution/system;
- Directs and coordinates software architecture studies;
- Co-ordinates product definition, and assessment of trade-offs between aspects of cost, schedule, MTB, customer requirements, technological possibilities and capability of software team;
- Monitors technological developments and verifies consistency with architecture styles and principles;
- Guarantees adherence to in-scope standards, reuse policy and product development plans;
- Identifies modelling, simulation and prototyping opportunities;
- Prepares the Design & Justification Files;
- Provides knowledge on state-of-the-art software architecting, taking account of future developments;
- Articulates the design to the software team;
- Approves the technical, technological, and methodological choices taken in respect of the selected software
Software Engineering Manager
- A Software Engineering Manager is responsible for the completion of a set of tasks within the committed cost, schedule, performance and quality.
- To achieve this goal, identifies the required skills, allocates roles and responsibilities to the various individual contributors and leads these contributors as a team.
- For the team, he/she schedules, coordinates and monitors the implementation of tasks.
- A software Engineering Manager is in charge of tasks covering part or all the range of activities regarding customer needs, mission, function, architectural design, life cycle of the software solution (requirements and speciality engineering, design, development, integration and verification).
- Delegates responsibilities to various individual contributors, plans, coordinates and monitors the performance of the work, identifies and manages risks.
- Ensures compliance with commitments relating to the work package (costs, deadlines, quality) in accordance with program plans and objectives.
- Experience & Deep understanding on Design, Software Development & Verification of DO – 178B Level A/B/C.
Qualifications/ skill set
Skill Set 1
- Embedded Software Development: Solid work experience in embedded software development in Linux/U-Boot.
- Programming Languages: Proficient in C/C++, Python, and Linux shell scripting.
- Hardware Bring-Up: Experience with new board bring-up.
- Hardware Interfaces: Experience writing software using hardware interfaces such as I2C, SPI, UART, SMBus, PCI-E, NVMe, NOR Flash, DDR, EEPROM, GPIO, USB.
- Linux Kernel: Linux kernel configuration, root FS, device tree, systemd.
- Linux Kernel Modules/Drivers: Experience writing new Linux kernel modules and drivers.
- Build Systems: Experience with build systems, Yocto, and Gitlab.
- Multi-threading/IPC: Good understanding of multi-threading and inter-process communication.
- System Design: Ability to design complex systems and write functional and design specifications.
- ARM SoCs: Experience with ARM SoCs.
Skill Set 2
- Embedded Software Development: Solid work experience in embedded software development in Linux.
- Programming Languages: Proficient in Go, Python, and Linux shell scripting. Experience with C/C++.
- Linux Kernel: Linux kernel configuration, root FS, device tree, systemd.
- System Design: Ability to design complex systems and write functional and design specifications.
- API Technologies: Experience with REST and gRPC.
- Containerization: Experience with Docker/Podman Containers.
- Gitlab: Gitlab usage, pipelines creation.
Must-Haves: ( in addition of one of the skill set package)
- Strong English communication (verbal and written) is required.
- Minimum of 12 years of relevant working experience.
- Bachelor's or Master's degree in computer/software engineering or computer science (preferred).
Other Recent Opportunities
Software Engineer Principal - Data Product Organization (Angular, OpenShift, APIs, Livy, Python, MongoDB, Oracle)
8/31/2025PNC
Sr. Software Engineer, Full Stack (Java, Spring Boot, AWS)
8/31/2025Capital One
Senior Java Software Engineer (Onsite)
8/31/2025RTX
Entry-Level Software Developer (In-Office Irving, Texas)
8/31/2025Avior
Software Development Engineer - Front End
8/31/2025Adobe
(USA) Senior, Software Engineer Front End
8/31/2025Walmart
Job Alerts
Get notified when new positions matching your interests become available at Kardow.com.
Need Help?
Questions about our hiring process or want to learn more about working with us?