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
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
ABAP/ODATA Developer designing, developing, and supporting SAP ABAP and OData solutions. Delivering S/4HANA customizations, integrations, and technical project support.
Software Engineer building full - stack AI healthcare workflow products at exacare ai. Developing scalable systems, integrations, and customer - facing features for post - acute care teams.
Principal CRM Developer building Dynamics 365 and Azure solutions for Ontario’s condominium authority. Leading CRM delivery, integrations, CI/CD, testing, and engineering standards.
Desjardins programmer analyst developing, maintaining, and supporting enterprise IT systems and infrastructure. Applying software, data, and security practices to standardize solutions.
Principal EDC Programmer leading EDC programming, analytics, and vendor - data solutions for ICON’s global clinical research organization. Mentoring programmers and driving automation across clinical trials.
Game programmer building advanced systems, tools, and UI for Kabam’s multiplayer mobile games. Collaborating with designers and engineers using Unity and C#.
Game Programmer building gameplay systems, UI, and creative tools for Kabam’s multiplayer games. Developing Unity and C# solutions that improve workflows for artists and designers.
Senior Programmer Analyst modernizing Doctors of BC’s healthcare business applications. Migrating legacy systems to Salesforce, NetSuite, Snowflake and other cloud platforms.