At Avigilon we are helping solve some of the biggest challenges around safety and physical security by developing advanced artificial intelligence (AI) technologies and products that are used to help keep people, businesses, and cities around the world safer. Avigilon, a Motorola Solutions company, designs, develops, and manufactures advanced AI, video analytics, network video management software and hardware, surveillance cameras, and access control solutions that help change the way people interact with their security systems.
Founded in 2004 in Vancouver, Avigilon has been a driving force behind the security industry's AI evolution and has continuously been a company that stands for innovation and growth. At Avigilon, you will find a culture of thought-leaders who are passionate about creating exciting new solutions for security and surveillance. We seek problem-solvers who are eager to rise to the challenges of a continuously evolving technological industry, and those who want to make an impact of the safety of people and businesses globally. Responsibilities include:
• Design and implement sophisticated scalable multi-threaded Object Oriented Software in C++ for solving challenging problems involving imaging, high speed data processing and networking • Design advanced software modules that follow modern C++ design patterns • Develop and debug Linux device drivers • Apply problem solving skills to identify and improve low-level system performance issues • Apply engineering principles to design algorithms for controlling image acquisition parameters, as well as environmental conditions (Temperature, Power, Fog, Frost, etc.) • Create design documents on software architecture and algorithms • Collaborate with Hardware designers on board bring-up and debug • Maintain and improve Firmware build system using Make, CMake, Python and Docker • Peer review code for adherence best practices, design guidelines and coding standards • Estimate and track time and effort necessary for completing implementation tasks • Review Marketing and Product Requirements Document during feasibility and development • Collaborate with Quality Assurance team on identifying test cases for new features and areas for regression tests • Follow the established development process for all design and implementation tasks • Provide mentorship and coaching to junior developers Qualifications:
• 7-10+ years embedded development experience • Strong C++ design and programming skills for embedded applications • Firm grasp of operating system concepts including processes, threads, mutexes, interrupt handling, and exception handling • Experience with C++ compilation and debugging tools • Experience with scripting languages, build systems, and version control systems • Excellent written and oral communication skills • Degree in Computer or Electrical Engineering, Computer Science, or related technical discipline • Understanding of embedded design considerations including C++ memory management, microprocessor architectures, instruction efficiency, and I/O timing • Preference will be given to candidates with the following skills and experience: • Knowledge of digital imaging/photography and audio/video coding • Experience with development in a Linux environment for ARM target processors Perks and Benefits:
As a full-time employee at Avigilon, you are eligible to receive a comprehensive benefits package which includes MSP, extended health, dental, and medical insurance while travelling. You will also receive a health spending account to cover additional healthcare costs, such as vision care, RMT and chiropractor visits.