Design, develop, and optimize C++ code for camera systems, implementing AI models and optimizing algorithms for embedded systems while collaborating with AI engineers.
As a Senior Software Engineer in our camera systems group, you will play a crucial role in designing, developing, and optimizing C++ code for embedded systems. You will work on implementing and deploying AI models and sophisticated algorithms directly on our camera hardware, enabling real-time analysis of video feeds for critical safety and security applications. This position requires a deep understanding of modern C++, strong software engineering principles, and experience with camera technologies.
Responsibilities:
- Design, develop, and test high-performance modern C++ code for implementing AI models and computer vision algorithms on embedded camera platforms.
- Optimize code for performance and resource constraints on embedded systems.
- Integrate and deploy AI models onto camera hardware.
- Collaborate with AI/ML engineers to translate models into efficient C++ implementations.
- Work with camera SDKs and APIs to access and process video streams.
- Develop and maintain unit and integration tests.
- Participate in code reviews and contribute to best practices and documentation
- Troubleshoot and debug software issues on embedded systems.
- Contribute to the development of new features and enhancements for our camera systems.
- Stay up-to-date with the latest advancements in AI, computer vision, and embedded systems.
Qualifications:
- Bachelor's degree in Computer Science, Software Engineering, or a related field. Masters or Ph.D. is a plus.
- 4+ years of experience in C++ software development, with a strong emphasis on performance optimization.
- Significant experience working with camera systems, including image processing, video encoding/decoding, and camera SDKs/APIs.
- Experience implementing and deploying AI models on embedded platforms is highly desired.
- Proficiency in Python for scripting and tooling is a plus.
- Strong understanding of software engineering principles, including design patterns, testing methodologies, and version control (e.g., Git).
- Experience with Linux/embedded Linux development environments.
- Excellent problem-solving and debugging skills.
- Ability to work independently and as part of a team.
- Strong communication and collaboration skills.
- Experience with computer vision libraries (e.g., OpenCV) is a plus.
- Experience with deep learning frameworks (e.g., TensorFlow, PyTorch, ONNX Runtime) is a plus.
- Experience with CI/CD systems like GitHub Actions or Azure DevOps is also a plus.
Note: Candidate must live in the Greater Vancouver Area or the Greater Toronto Area.
Basic Requirements
- Bachelors degree with 4+ years of Software Engineering experience
- AND 3+ years of C++ software development experience
Top Skills
Ai Models
APIs
Azure Devops
C++
Camera Sdks
Computer Vision
Embedded Systems
Git
Github Actions
Linux
Onnx Runtime
Opencv
Python
PyTorch
TensorFlow
What you need to know about the Calgary Tech Scene
Employees can spend up to one-third of their life at work, so choosing the right company is crucial, not just for the job itself but for the company culture as well. While startups often offer dynamic culture and growth opportunities, large corporations provide benefits like career development and networking, especially appealing to recent graduates. Fortunately, Calgary stands out as a hub for both, recognized as one of Startup Genome's Top 100 Emerging Ecosystems, while also playing host to a number of multinational enterprises. In Calgary, job seekers can find a wide range of opportunities.

