Senior Firmware Developer

Posted 3 weeks ago

Apply Now

Resume Score

Check how well your resume matches this job before you apply.

Sign in to check score

About the role

  • Senior firmware developer architecting and releasing embedded C/C++ products for AEM, a provider of weather, wildfire, and water monitoring solutions. Integrating hardware, RTOS, communications, and reliability testing.

Responsibilities

  • Lead firmware architecture for embedded products ranging from bare-metal systems to multi-threaded RTOS-based applications
  • Translate product and system requirements into firmware designs, interfaces, task structures, state machines, and hardware abstraction layers
  • Evaluate design tradeoffs involving performance, memory, power, reliability, complexity, reuse, and long-term maintainability
  • Define modular and reusable firmware components across product families and hardware platforms
  • Design, implement, review, and maintain production embedded software in C/C++ for microcontroller-based products
  • Develop device drivers, board-support software, communications interfaces, control logic, data acquisition, storage, and scheduled transmission functions
  • Implement safe concurrency using RTOS tasks, queues, mutexes, semaphores, timers, and interrupt-driven designs
  • Maintain build configurations, source control practices, technical documentation, and reproducible firmware build outputs
  • Partner with electronic designers on processor, peripheral, memory, power-control, and communication requirements
  • Read schematics and datasheets, bring up new boards, and validate UART, SPI, I2C, USB, Ethernet, Wi-Fi, Bluetooth/BLE, cellular, and satellite interfaces
  • Diagnose board- and system-level issues using oscilloscopes, logic analyzers, debuggers, and protocol analyzers
  • Troubleshoot interactions among firmware, PCBs, sensors, power supplies, communications modules, and electromechanical assemblies
  • Develop unit, integration, hardware-in-the-loop, regression, fault-injection, and long-duration tests
  • Review code and designs for correctness, concurrency hazards, resource use, error recovery, maintainability, and testability
  • Design for reliable operation through communication loss, peripheral faults, power interruptions, brownouts, watchdog resets, and other field conditions
  • Work with QA and product validation teams to investigate defects, reproduce failures, and verify corrective actions
  • Support firmware through prototype builds, formal qualification, production release, configuration control, and field deployment
  • Produce release-ready firmware packages, release notes, build records, and technical evidence
  • Lead root-cause analysis for production and field failures and implement corrective actions
  • Support legacy product sustainment, including component changes, hardware revisions, defect correction, cybersecurity updates, and technical debt reduction
  • Use field, service, and test feedback to guide design improvements and future platform decisions

Requirements

  • Bachelor’s degree in Computer Science, Electrical Engineering, Computer Engineering, or a closely related discipline
  • Minimum 7 years of relevant experience developing embedded systems and production firmware
  • Proven record of architecting, developing, debugging, and releasing microcontroller-based embedded products
  • Excellent written and verbal communication skills, with demonstrated success working within and across functional teams
  • Advanced proficiency in embedded C/C++ and experience with memory-constrained, resource-constrained systems
  • System-level firmware architecture experience, from task scheduling and application logic through low-level device drivers and hardware abstraction layers
  • Hands-on experience with an RTOS and multi-threaded systems, including synchronization, inter-task communication, timing, and concurrency debugging
  • Experience with structured design, modular code, interface design, code reuse, and maintainable embedded software practices
  • Strong understanding of interrupts, timers, DMA, memory management, boot processes, watchdogs, and embedded fault handling
  • Must be eligible to work in Canada without company sponsorship, now or in the future, for employment-based work authorization
  • Preferred: low-power environmental monitoring, remote sensing, industrial IoT, dataloggers, or telemetry products
  • Preferred: sensor acquisition and instrumentation interfaces such as SDI-12, 4-20 mA, pulse, analog, or serial sensors
  • Preferred: reliable local data storage, file systems, databases, data integrity, and recovery from unexpected power loss
  • Preferred: embedded graphical user interfaces using TouchGFX, Qt, or similar frameworks
  • Preferred: Embedded Linux, Contiki OS, Kotlin, Python, or scripting used for development and automated testing
  • Preferred: CI/CD systems such as Jenkins and static-analysis or code-quality tools
  • Preferred: secure communications, device update mechanisms, cybersecurity practices, or connected-device provisioning
  • Preferred: regulated, ruggedized, high-reliability, or long-lifecycle products used in remote or harsh environments

Job type

Full Time

Experience level

Senior

Salary

CA$85,000 - CA$110,000 per year

Degree requirement

Bachelor's Degree

Tech skills

Cyber SecurityIoTJenkinsKotlinLinuxPythonQtRemote SensingRTOSC++

Location requirements

HybridVictoriaCanada

Report this job

Found something wrong with the page? Please let us know by submitting a report below.