AI Software Engineer (C++)
Machine Learning / AI Software Engineer
Location: Toronto, ON
Job Type: Full-Time
Industry: Technology / AI / Semiconductor
About the Role
Our client is a global technology leader developing next-generation AI and machine learning solutions for mobile, automotive, IoT, and edge computing applications.
We are looking for a Machine Learning / AI Software Engineer to join a highly technical team focused on building high-performance, on-device AI software. In this role, you’ll work across the AI software stack, developing and optimizing software that enables neural networks to run efficiently on specialized hardware.
This is an opportunity to work on cutting-edge AI technology, collaborating closely with software, hardware, architecture, and customer teams to deliver production-quality solutions.
What You’ll Do
- Develop and optimize software for AI and machine learning workloads running on specialized hardware.
- Design and implement optimization algorithms for ML operators and neural network layers.
- Enhance AI software frameworks to improve performance and resource utilization.
- Develop profiling, debugging, and developer tools to accelerate deployment of new neural network models.
- Evaluate and optimize neural network runtime performance, efficiency, and accuracy.
- Enable new AI models and software features based on customer requirements and use cases.
- Work closely with hardware and architecture teams to improve overall AI performance and capabilities.
- Collaborate with cross-functional engineering teams to deliver cohesive, production-ready solutions.
- Contribute to software quality, development processes, and commercial product releases.
- Help drive technical ideas from concept through implementation and deployment.
What You’ll Bring
- 5+ years of professional software engineering experience, ideally in AI/ML, embedded systems, or performance optimization.
- Bachelor's degree in Computer Science, Engineering, Information Systems, or a related discipline; Master's or PhD is an asset.
- Strong C++ programming skills and experience developing production software.
- Strong analytical, problem-solving, debugging, and software development skills.
- Experience with Python and NumPy.
- Experience with deep learning frameworks such as TensorFlow or PyTorch.
- Experience developing software for Android or embedded Linux is an asset.
- Experience optimizing algorithms for hardware acceleration, using technologies such as OpenCL, OpenGL ES, DSPs, or similar architectures.
- Strong understanding of mathematical and computational concepts including:
- Linear algebra
- Fast math libraries
- Multithreading
- Vectorization and SIMD instruction sets
- Ability to work effectively across large, globally distributed engineering teams.
- Strong written and verbal communication skills.
- Curiosity, adaptability, and a willingness to learn and tackle complex technical problems.
Why This Role?
You’ll have the opportunity to work on high-performance AI software at the edge, solving challenging problems at the intersection of machine learning, software, and hardware. Your work will directly contribute to the deployment of advanced AI capabilities across next-generation connected devices and platforms.