Software Engineer: Embedded Device Software
Listed on 2026-06-26
-
Software Development
Software Engineer, Embedded Software Engineer
Our Mission
SPAN is enabling electrification for all ⚡ We are a mission-driven company designing, building, and deploying products that electrify the built environment, reduce carbon emissions, and slow the effects of climate change.
Decarbonization is the process to reduce or remove greenhouse gas emissions, especially carbon dioxide, from entering our atmosphere.
Electrification is the process of replacing fossil fuel appliances that run on gas or oil with all-electric upgrades for a cleaner way to power our lives.
Enabling homes and vehicles powered by clean energy
Making electrification upgrades possible
Building more resilient homes with reliable backup
Designing a flexible and distributed electrical grid
SPAN’s Device Software team is responsible for all of the software that is physically embodied in our hardware products. Our first product - the SPAN Panel - contains a complex network of microcontrollers and a single board computer that must work together to react quickly to changing conditions with impeccable reliability in order to perform its job. We look for friendly, excellent engineers who enjoy working with their peers to solve complex problems and prioritize trusting that the people we hire are capable of great things when well supported.
Engineers work directly with the broader software, product, and hardware teams to ensure the right things get built at the right time.
As an engineer on the Device Software team you will define and implement new features directly related to SPAN’s hardware products focusing on the lowest level - the microcontroller. This includes everything from bootloaders on systems without an OS up through applications in C and C++ inside an RTOS. Hardware products are central to SPAN’s business and writing firmware for even our smallest microcontrollers means working on something that directly impacts the user experience.
You will own large user-facing features from conception through implementation on future hardware products, working independently to bring them to completion.
Designing an OTA system that encompasses a variety of communication interfaces, processor types, and products, while achieving both secure goals for hardware-backed encryption and verification and high reliability.
Working with system architects to invent a data steaming architecture for a new product family which can satisfy both the needs of the data science team to access high rate and quality data, as well as safety guarantees around consistency and accuracy.
Representing the Device Software team in group settings and evangelizing engineering best practices. Participating in code and design reviews as well as authoring documents which further reinforce these goals, and supporting engineers across the org in hitting them.
Required Qualifications
We are seeking a Staff Firmware Embedded engineer with:
7 or more years of experience writing software for a hardware device (on a microcontroller, and/or in Linux, etc) in C++ or C
Strong fundamentals in modern software design with tools like Object-Oriented design, coupled with awareness of concerns like manual memory management
Experience working with standard electrical communication interfaces like UART, I2C, USB, etc
Exceptional interpersonal communication and collaboration skills. Great at building trust and driving decisions to a resolution
Track record of taking ownership over projects and willingness to help others with theirs, from design and code review through to mentorship of new employees
Bonus Qualifications
We do not expect any engineer to have all skills, but we do want you to be excited to learn and grow. Every Device Software Engineer is free to roam up and down our device software stack, so any combination of the following skills is welcome but not required.
Experience with the STM
32 microcontroller familyExperience with functional safety and processes and standards like UL 60730, ISO 26262, IEC 61508, and UL 1998
Experience writing higher level system or application software such as diagnostic command line tools or the application side of a communication interface
W…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).