Firmware Developer II

Avigilon Corporation

Avigilon Corporation

Software Engineering
Vancouver, BC, Canada
Posted on Thursday, December 21, 2023

Company Overview

At Motorola Solutions, we believe that everything starts with safety. It’s the constant that empowers people to confidently move forward. It can fill a flight or sell out a stadium. It can care for a patient or graduate a class.

As a global leader in public safety and enterprise security, we create and connect the technologies that help to keep people safe where they live, learn, work and play. Our integrated technology ecosystem unifies critical communications, video security and access control, and command center software, enabling collaboration in more powerful ways.

At Motorola Solutions, we’re ushering in a new era in public safety and security. Bring your passion, potential and talents to a career that matters.

Présentation de l'entreprise

Chez Motorola Solutions, nous croyons que tout commence par la sécurité. C'est la constante qui permet aux gens d'avancer en toute confiance. Elle peut remplir un vol ou vendre un stade. Elle peut permettre de s'occuper d'un patient ou d'obtenir son diplôme.

En tant que leader mondial de la sécurité publique et de la sécurité des entreprises, nous créons et connectons les technologies qui aident à assurer la sécurité des personnes là où elles vivent, apprennent, travaillent et se divertissent. Notre écosystème technologique intégré unifie les communications critiques, la sécurité vidéo et le contrôle d'accès, ainsi que les logiciels de centre de commande, permettant une collaboration plus puissante.

Chez Motorola Solutions, nous inaugurons une nouvelle ère en matière de sécurité publique. Apportez votre passion, votre potentiel et vos talents à une carrière qui compte.

Department Overview

Motorola Solutions Video Division 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 features which include edge-based, deep learning driven object detection, and Appearance Search. Motorola Video analytics platforms allow our users to proactively monitor their premises using advanced video analytics and high resolution / high quality video.

Job Description

Responsibilities include:
  • Design and implement sophisticated scalable multi-threaded Object Oriented Software in C++ for solving challenging problems involving high speed data processing and networking

  • Design advanced software modules that follow modern C++ design patterns

  • Apply C programming skills for Linux device driver development and debugging

  • Apply problem solving skills and experience 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 and Python

  • Review code of peers for adherence to coding standards and design guidelines

  • 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

  • Provides mentorship and coaching to junior developers


  • 3+ years embedded development experience

  • Strong C and 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/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

  • Experience with development in a Linux environment for ARM target processors

  • Understanding of embedded design considerations including C/C++ memory management, microprocessor architectures, instruction efficiency, and I/O timing

  • Knowledge of digital imaging/photography and audio/video coding

The base salary range for this position in British Columbia is 80,000 - 110,000 CAD.


Basic Requirements

  • University degree
  • 2+ years embedded development experience

Travel Requirements


Relocation Provided


Position Type


Referral Payment Plan


EEO Statement

Motorola Solutions is an Equal Opportunity Employer. We welcome and encourage diversity in our workforce. Motorola Solutions will provide reasonable accommodation to applicants with disabilities upon request. Motorola Solutions souscrit aux principes d’équité en matière d’emploi. Nous accueillons favorablement la diversité au sein de notre effectif. Sur demande, Motorola Solutions offrira des accommodements raisonnables aux candidats handicapés.