
Software Developer - Product Development Group (Hardware/Device Team)
- Ottawa, ON
- Permanent
- Temps-plein
- An industry-leading defined contribution pension plan with company matching contributions (up to 5%) and payment of service fees;
- Best-in-class health, medical, and life insurance benefits;
- Access to virtual and telehealth services and apps; and
- Very progressive fertility, adoption, and surrogacy benefits to support all definitions of family.
Job Type: Permanent, Full-Time
Job Location: Ottawa, ON
Work Model: HybridPosition SummaryAs a Software Developer in our Product Development group's Device Team, you will be focused on developing software solutions that interact with hardware components. This role requires expertise in both software and hardware, including embedded systems, device drivers, Public Key Infrastructure (PKI) for security operations and low-level programming.ResponsibilitiesSoftware Development & Integration
- Design, develop, and maintain software for hardware-integrated systems.
- Develop device drivers, firmware, and low-level software components.
- Ensure seamless communication between software and embedded systems.
- Implementation and testing of PKI operations for secure communications.
- Work closely with hardware engineers to define system architecture and integration points.
- Optimize software performance for real-time, resource-constrained environments.
- Debug and troubleshoot issues related to hardware-software interactions.
- Develop unit tests and conduct system-level testing to ensure reliability.
- Work with test engineers to develop automated test scripts for hardware validation.
- Identify and resolve software bugs and performance bottlenecks.
- Collaborate with cross-functional teams, including electrical and mechanical engineers.
- Create and maintain technical documentation for software and hardware interactions.
- Provide support for production teams to resolve software-related hardware issues.
- Bachelor's degree in computer science, Electrical Engineering, or equivalent experience.
- Relevant certifications in embedded systems (CESE), IoT development (CIoTP), or cryptographic operations (CISSP, CES) are a plus.
- Embedded systems programming.
- Device driver development and hardware abstraction layers.
- Logfile analysis.
- Public Key Infrastructure
- Smartcard communication protocols (asset).
- Critical thinking skills
- Analysis, problem-solving
- Interpersonal skills
- Communication, teamwork and collaboration
- Attention to detail
- Growth mindset
- 3-5 years of experience in software development for hardware-integrated systems.
- Experience in development of library-based toolkits (e.g. SDKs)
- Experience in developing software for Smartcards (asset)
- Programming Languages: C++, C#, Java, Python, Rust.
- Embedded & OS Platforms: JavaCard, Windows.
- Development Tools: Visual Studio.
- Version Control & CI/CD: Git, Jenkins, Docker.
- Language: Fluency in English (reading, writing, speaking)
- Security Clearance: Ability to obtain (in a timely manner) and maintain Government of Canada Reliability (Level I) clearance