Sr. Firmware Engineer
Contract
Mississauga, Canada ON L5T 1P2
Onsite - 5 days
Position Summary
We are seeking a highly capable Senior Firmware Engineer with 8+ years of embedded firmware development experience to take ownership of product firmware, features, and firmware lifecycle execution across microcontroller-based products. The ideal candidate is a hands-on engineer with strong software development discipline, deep bare-metal firmware expertise, and proven ability to deliver robust production-ready firmware from concept through field support.
This role is best suited for an engineer who can independently define firmware architecture, develop features, debug hardware/software interaction issues, support validation and manufacturing, and drive long-term firmware maintainability. RTOS experience is a plus, but bare-metal embedded development is the primary focus.
Role Emphasis
This is not only a coding role. The successful candidate must own firmware outcomes: requirements clarification, architecture decisions, implementation, validation, release readiness, field issue resolution, and ongoing product improvement.
Key Responsibilities
Firmware Ownership
Own firmware architecture, design, implementation, verification, release, and maintenance for assigned products or product platforms.
Take responsibility for firmware feature development, bug fixes, reliability improvements, and future roadmap enhancements.
Translate product and system requirements into clear firmware designs, modules, interfaces, and testable deliverables.
Drive technical decisions related to code structure, timing behavior, peripheral usage, communication interfaces, diagnostics, and firmware upgrade strategy.
Maintain firmware quality, readability, performance, and long-term serviceability across product generations.
Embedded Software Development
Develop embedded firmware primarily in C / Embedded C, with C++ used where appropriate.
Design and implement low-level drivers, hardware abstraction layers, control logic, state machines, bootloaders, communication handlers, diagnostics, and fault handling.
Apply strong software development practices including modular design, version control, code reviews, documentation, defect tracking, and structured release discipline.
Optimize firmware for memory usage, execution time, reliability, startup behavior, and deterministic real-time response on resource-constrained microcontrollers.
Hardware Integration & Debugging
Support hardware bring-up, prototype validation, design verification, production launch, and field issue investigations.
Debug firmware and hardware interaction issues using oscilloscopes, logic analyzers, protocol analyzers, multimeters, signal generators, and JTAG/SWD debuggers.
Analyze timing issues, peripheral behavior, communication failures, sensor/actuator interface problems, interrupts, resets, watchdog events, and intermittent system faults.
Collaborate closely with electrical, software, manufacturing, quality, product, and service teams to resolve technical issues quickly and systematically.
Verification, Release & Product Support
Create and execute firmware test strategies, validation plans, bench-level test procedures, and regression checks.
Support firmware release documentation, version control, build artifacts, release notes, and traceability from requirements to validation results.
Participate in root-cause analysis, corrective actions, design reviews, field issue reviews, and manufacturing test improvement activities.
Mentor junior and intermediate engineers on firmware design, debugging, coding practices, and product ownership behavior.
Required Qualifications
Bachelor's degree in Electrical Engineering, Computer Engineering, Software Engineering, Computer Science, or equivalent technical discipline.
Minimum 8 years of professional embedded firmware development experience.
Strong hands-on experience with bare-metal microcontroller firmware development.
Proven experience taking product firmware or major firmware features from concept through production release and long-term maintenance.
Demonstrated ability to debug complex firmware, hardware, timing, communication, and system-level issues.
Strong understanding of embedded software design principles, structured coding practices, interface design, testing discipline, and documentation.
Technical Skills
Core Firmware Capabilities
- Bare-metal embedded systems
- Interrupt-driven firmware design
- State-machine architecture
- Low-level driver development
- Timer, ADC, PWM, GPIO, UART, SPI, I2C and CAN interfaces
- Memory management and performance optimization
- Bootloader and firmware update mechanisms
- Watchdog, fault handling, diagnostics and recovery logic
Communication & Product Interfaces
- CAN / CANopen
- RS-485 and Modbus RTU
- UART, SPI, I2C
- USB
- Ethernet and TCP/IP
- MQTT or connected-product messaging preferred
- Sensor, actuator, motor-control, relay, and industrial I/O interfaces
- Production test and factory programming interfaces
Development Tools & Equipment
IDEs / Development Environment
- Visual Studio Code
- Eclipse
- MPLAB X
- STM32CubeIDE
Source Control & Collaboration
Debugging & Test Equipment
- Oscilloscopes
- Logic analyzers
- Protocol analyzers
- Multimeters
- Signal generators
- J-Link debuggers
- ST-Link debuggers
Build, Automation & Quality
- CMake
- Makefiles
- Python scripting
- CI/CD pipelines
- Static analysis tools
- Unit testing frameworks
- Code coverage tools
- Requirements traceability tools
- Code review tools
Preferred Microcontroller Experience
- ARM Cortex-M based microcontrollers
- STM32
- NXP
- Microchip PIC / dsPIC
- TI MSP430 or similar embedded controller families
- Renesas, Nordic nRF, ESP32, or comparable microcontroller platforms
RTOS Experience - Asset Only
- FreeRTOS
- ThreadX
- Zephyr
- Ability to evaluate when bare-metal architecture is sufficient versus when an RTOS is justified
Soft Skills & Leadership
- Strong ownership mindset and ability to drive firmware work with minimal supervision.
- Excellent troubleshooting, analytical thinking, and technical judgment.
- Clear communication with cross-functional engineering, manufacturing, service, quality, and product teams.
- Ability to mentor other engineers and improve firmware development practices.
- Strong documentation discipline for requirements, design notes, release records, test results, and issue resolution history.