Embedded Software Engineer - Microcontroller

Job description


Reporting to the Engineering Manager and under the guidance of the Lead Embedded Software Engineer, you will be responsible for the implementation and documentation of embedded software. This position can be located in Kelowna, Ottawa, or Victoria.

A typical day includes:

• Design, development, test, and implementation of embedded software for new products

• Maintenance of embedded software for current products, including adding new features and functionality

• Work with hardware engineers and enterprise software teams to develop designs for new products

• Management and maintenance of version control, configuration management, and release software

• Progress reports against key project deliverables

• Identifying and solving technical and/or programmatic problems within schedule, budget and resource constraints

• Ensuring compliance with development processes and standards

Job requirements


• A confident communicator with strong interpersonal skills

• A tenacious self-starter, highly motivated, and cross-functional

• Strong analytical skills with excellent problem-solving abilities


• Bachelor of Engineering or Computer Science degree

• Professional Engineer Designation or Eligibility (EIT)

• Software Development experience (C)

• HAL knowledge in industry standard protocols (SPI, I2C, UART, USB, etc.)

• Experience in board bring-up and driver development

• Microcontroller experience: STM, Atmel, or Renesas MCUs

• IDE experience: STM32Cube, Eclipse

• BONUS: experience with C++; knowledge of wireless protocols (WAN, LAN, PAN, Mesh) such as Wi-Fi, Bluetooth or others; experience with Satcom (eg. Iridium); experience in aerospace or with avionics standards; cybersecurity; SVN/Git/Gitlab; CI/CD, Jenkins; Linux; networking standards

Position to remain open until filled.