We are seeking an experienced Senior Embedded Developer to join our team and work on the implementation of a hardware accelerated CNN inference engine for Motorola's video product line of analytics cameras and appliances running the Linux operating system. Motorola's video analytics platforms allow our users to proactively monitor their premises using advanced video analytics and high resolution/high quality video. Partnering with a team of hardware, platform, client/server, multimedia, SQA, and computer vision developers, you will develop software for a new hardware component that accelerates CNN inference. In this role, you will also help architect production software for new computer vision and machine learning features based on our research team’s algorithms.
Responsibilities include:
- Design and develop robust inter-process communication mechanisms for seamless interaction between the CNN inference engine and other system components, ensuring optimal system performance.
- Collaborate closely with the hardware team to optimize software-hardware integration and achieve peak performance, understanding hardware constraints and limitations.
- Contribute to the development of a robust and scalable software infrastructure, writing clean, well-documented code adhering to best practices.
- Develop comprehensive unit tests and integration tests to ensure software quality and reliability.
- Work closely with our research team to explore and integrate new advancements in computer vision and machine learning algorithms, contributing to the forefront of AI-powered video analytics.
Basic requirements:
-
5+ years of experience in developing embedded software for resource-constrained systems. Strong embedded programming skills are essential.
- Proficiency with modern C++ (C++14 or newer) and design patterns.
- Deep understanding of multi-threading and multi-process communication concepts. Ability to design and implement efficient inter-process communication mechanisms for high-performance systems.
- Strong communication and collaboration skills. Ability to work effectively within a team and communicate technical concepts clearly.
Nice to have:
- Experience with continuous integration in a highly available production environment
- Experience with scripting languages (esp. Python)