Position OverviewPulsenics is seeking a Senior Embedded Software Engineer with 7+ years of experience to lead and evolve the embedded firmware architecture that underpins our hardware and software solutions used to test, characterize, and validate electrochemical devices (batteries, electrolyzers, fuel cells). This role is responsible for defining, implementing, and maintaining the firmware systems that govern measurement accuracy, real-time control, safety, and long-term reliability across Pulsenics' devices.
You will operate across bare-metal, RTOS, and embedded Linux environments, working closely with hardware, instrumentation, and systems engineers. This is a hands-on, judgment-heavy role for an engineer who has shipped, supported, and debugged complex embedded systems in real-world conditions and is comfortable making architectural decisions under real constraints.
This is not a feature-delivery role. It is a system-ownership role where correctness, timing, and robustness are critical.
Key Responsibilities- Lead the embedded firmware architecture across Pulsenics' devices, including control, monitoring, safety, and measurement subsystems.
- Define and evolve firmware abstractions, interfaces, and APIs to support scalability, testability, and long-term maintainability.
- Design and implement embedded firmware in C/C++ for ARM Cortex-based microcontrollers (e.g., STM32) in time-critical environments.
- Define and enforce firmware testing strategies, including unit, integration, hardware-in-the-loop, and system-level validation.
- Produce clear and durable technical documentation covering architecture, design decisions, and implementation details.
Qualifications- 7+ years of professional experience developing embedded firmware for ARM-based microcontrollers (STM32 or similar).
- Proven track record designing, shipping, and supporting time-critical, reliable firmware architectures for instrumentation, control systems, or power electronics.
- Expert-level proficiency in embedded C/C++ in bare-metal and RTOS-based systems.
- Extensive hands-on experience debugging firmware on real hardware using oscilloscopes, logic analyzers, and related lab instrumentation.
- Strong understanding of electronics fundamentals sufficient to independently diagnose hardware-firmware interaction issues.
- Advanced ability to read schematics and interpret component, MCU, and peripheral datasheets.
- Deep familiarity with wired communication protocols such as SPI, I²C, UART, and similar interfaces.
- Experience working in embedded Linux environments and developing low-level drivers or system interfaces.
- Strong software engineering practices, including version control (Git), code reviews, and disciplined development workflows.
- Demonstrated ability to make sound trade-offs and drive decisions forward.
- Clear and effective communication skills across technical and non-technical audiences.
- Bachelor's, Master's, or PhD in Computer Science, Engineering, or a related technical field.
Interested in Applying?Department Engineering Locations Toronto Employment type Full-time