Embedded Software Engineer
Canada, Quebec, MontrealIT & DevOps
We’re looking for a unique individual for a multi-disciplinary technical position which will have important and broad impacts on our current and future business expansion. If you have a keen interest in computer vision, are motivated by the challenge of optimizing for real-time performance, can handle driver-level programming and have a maker mentality, you should be very excited about this opportunity.
Who are we and what do we do?
We have a passion for developing solutions at the intersection of 2D imaging and depth. AIRY3D has developed DepthIQ, a 3D computer vision platform that consists of a Transmissive Diffraction Mask and computational imaging software that can give any CMOS image sensor the ability to provide depth information.
What are we looking for?
As an Embedded Software Engineer, you will collaborate with other team members of the Core software development team porting computational imaging algorithms to embedded systems and developing real-time, optimized, end-user proof-of-concept applications. You will set an example of “what good looks like” for the software process and algorithm design for constrained-resource SoC hardware. You’ll contribute technically across a wide gamut of tasks, from custom sensor interface PCB integrations to choosing suitable SoC/SoM platforms and potential firmware/FPGA implementations.
What you will do:
- Port algorithms from C++, OpenCL and OpenCV to different embedded platforms (such as ARM)
- Optimize code using heterogeneous processing (DSP, CPU and GPU) as well as bare metal programming
- Use profiling methods to identify bottlenecks and implement creative solutions to improve performance
- Write device drivers for custom image sensor integrations
What you bring to our team
This is a role where “been there / done that” experience matters.
- At least 5 years experience developing embedded software for mobile and/or embedded platforms, including products that have shipped, preferably related to image processing
- Demonstrated experience with low-level programming on SoC architectures (Qualcomm Snapdragon, ARM Cortex), preferably applied to processing of image data from sensor through to storage, display, and/or analysis
- Experience with embedded software design, architecture, drivers, and performance optimization in a heterogeneous processing environment (DSP, CPU, GPU) as well as bare metal programming
- Proficiency in an embedded Linux environment
- Advanced degree (MS) in Computer Science, Electrical Engineering, or a related field
- Design and oversight of outsourced manufacture of interface boards and drivers
- Cool IoT / Maker personal projects
- Knowledge about camera ISP
- Experience with OpenCV, OpenCL, git, GitLab
- Firmware and/or FPGA design/programming experience
- android.hardware.camera2 API
- Qualcomm Symphony Manager
What’s it like working in our team?
We believe in creating disruptive technology in a workplace with great work ethics. We truly enjoy what we are doing and the diversity of those we work with, all while having fun and not taking ourselves too seriously! We offer a flexible schedule, vibrant Montreal (Mile End) location, health insurance, stock options and a Team Incentive Plan.