At Motorola Solutions, we create technologies our customers refer to as their lifeline. Our technology platforms in communications, software, video and services help our customers work safely and more efficiently. Whether it's helping firefighters see through smoke, enabling police officers to see around street corners, or reliably keeping the lights on in homes and businesses around the world, our work supports those who put their lives on the line to keep us safe. Bring your passion, potential and talents to Motorola Solutions, and help us usher in a new era in public safety and security.
Department Overview
We are seeking a Principal Embedded Engineer focused on architecture and developing software 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, this Software Engineer will develop APIs and implement interprocess communications that interface platform-level software with cutting edge video and business analytics. In this role, this Principal Engineer will architect production software for new computer vision and machine learning features based on our research team's algorithms.
Job Description
Responsibilities include:
Architect, design, and develop quality software for real-time multi-core embedded Linux devices
Design and implement sophisticated scalable multi-threaded Object Oriented Software in C++ following modern C++ design patterns
Collaborate with our Research team in implementing computer vision and machine learning apps on hardware
Author detailed design documents about our software architectures, algorithms, and interfaces
Apply problem solving skills and experience to identify and improve low-level system performance issues
Maintain and improve firmware build systems using CMake, Docker, and Python
Work with Quality Assurance team on identifying test cases for new features and areas for regression tests
Review code of peers for adherence to coding standards and design guidelines
Estimate and track time and effort necessary for completing implementation tasks
Develop platform-level requirements from high level marketing requirements
Provide technical leadership and domain knowledge for new features
Qualifications:
Bachelor of Science degree in Electrical Engineering, Computer Engineering, Computer Science or equivalent experience
7+ years of experience writing C++ multi-threaded, multi-process software for embedded Linux systems
Understanding of and proven ability with operating system concepts including processes, threads, mutexes, interrupt handling, and exception handling
Excellent understanding of embedded design considerations including C++ memory management, microprocessor architectures, instruction efficiency, and I/O timing
Ability to multi-task and work in a fast-paced Agile development environment
Experience with cross-compiling and integrating open source software for target architectures
Comfortable "owning" and maintaining large software distributions
Experienced developing test harnesses for unit testing and regression testing
Preference will be given to candidates with the following skills and experience:
Experience with video, computer vision (OpenCV) or machine learning
Master's of Science degree in Electrical Engineering, Computer Engineering, Computer Science or equivalent experience
Experience with continuous integration in a highly available production environment
Basic Requirements
Bachelor's Degree
5+ years of experience writing C++ multi-threaded, multi-process software for embedded Linux systems
Travel Requirements
Under 10%
Relocation Provided
Domestic
Position Type
Experienced
Referral Payment Plan
No
EEO Statement
Motorola Solutions is an Equal Opportunity Employer and all qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, veteran's status, or, any other protected characteristic.