• Firmware Developer

    Job Location CA-BC-Vancouver
    Job ID
    # Positions
    Job Type
    Permanent Full Time
  • Job Description

    Firmware Developer

    Vancouver, Canada


    Avigilon (TSX: AVO) provides trusted security solutions to the global market. Avigilon designs, develops, and manufactures video analytics, network video management software and hardware, surveillance cameras, and access control solutions. Avigilon’s solutions have been installed 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.


    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

    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. 


    Sorry the Share function is not working properly at this moment. Please refresh the page and try again later.
    Share on your newsfeed