Avigilon, a Motorola Solutions company, is defining the future of the security industry through innovative end-to-end-solutions. We’re changing the landscape of the surveillance industry through advanced award-winning AI based surveillance systems. Artificial Intelligence is transforming the world and our team is advancing the field as it applies to the surveillance industry. We are proud to be industry leaders in video analytics with products like Appearance Search and Unusual Motion Detection along with our recently launched Avigilon Blue cloud service platform. You will have the opportunity to contribute to intelligent camera surveillance systems through cutting edge research and software engineering.
Avigilon’s solutions have been installed in more than 120 countries at thousands of customer sites, including school campuses, transportation systems, healthcare centers, public venues, critical infrastructure, prisons, factories, casinos, airports, financial institutions, government facilities, and retailers.
Avigilon is seeking a Software Engineer focused on developing software for Avigilon’s product line of analytics cameras and appliances running the Linux operating system. Avigilon 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 Software Engineer will also help architect production software for new computer vision and machine learning features based on our research team’s algorithms.
- Develop production 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
- Optimize algorithms and system to ensure real time performance
- 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
- Provide mentorship and coaching to junior developers
- 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
- 3+ 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
- Understanding of embedded design considerations including C++ memory management, microprocessor architectures, instruction efficiency, and I/O timing
- Bachelor of Science degree in Electrical Engineering, Computer Engineering, Computer Science or equivalent experience
- Excellent written and oral communications skills
- Solid software design and development skills and ability to write production quality code
- 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, OpenGL) or machine learning
- Master’s Degree in an engineering discipline
Perks of Working at Avigilon:
As a full-time employee of Avigilon, you are eligible to receive a comprehensive benefits package which includes a competitive salary with full benefits including extended health, dental, vision, paid vacation and holidays, 401K, ESPP, eligible to participate in TechTalks, Hackathons, community service activities, etc.