Embedded Software Engineer
Listed on 2026-09-05
-
Software Development
Embedded Systems/ Firmware/ IoT
Please note that we are unable to provide visa sponsorship for this position.
About Proper VoltageProper Voltage is unlocking the next generation of battery technology across robotics, data centers, and defense.
We're building intelligent battery systems that make advanced chemistries (sodium-ion, lithium-titanate, lithium-silicon) work in products that were never designed for them. Humanoid robots can upgrade power systems without redesigning their entire platform. Data centers get safer, cheaper backup power. Drones and autonomous vehicles get higher energy density without lengthy integration cycles.
If you want to work on hard engineering problems that matter this is the place.
Job OverviewWe are looking for an Embedded Software Engineer to write and validate firmware for the battery management systems inside our energy storage and critical power products. This is a hands‑on individual contributor role on the Firmware & Embedded Software team.
You will own features, not subsystems. Requirements and architecture come to you already defined; your job is to implement them correctly, test them on real hardware, and defend your work in code review. Our firmware ships into UL‑certified safety‑critical products, so the bar for correctness is higher than most embedded work, and you will be reviewed against it. In exchange, you get direct mentorship from senior firmware engineers, a lab bench a few steps from your desk, and exposure to the full path from schematic to certification.
This is the right seat for an engineer with a couple of years of production embedded C behind them who wants to go deep on battery systems and safety‑critical development rather than broad on application software.
What you'll do- Implement and maintain BMS firmware in C on STM
32 Arm Cortex‑M platforms for safety‑critical battery applications. - Write and test peripheral drivers for ADC, SPI, I2C, UART, CAN, DMA, timers, and GPIO against defined interface specifications.
- Integrate multi‑cell battery monitoring front ends for cell voltage, temperature, and current measurement — register configuration, fault decode, and daisy‑chained pack communication.
- Implement protection features to specification — overvoltage, under voltage, overcurrent, over temperature, and short‑circuit response — and prove the trip behavior on the bench.
- Implement and tune passive cell balancing for multi‑series pack configurations across sodium‑ion, lithium‑titanate, and lithium‑ion chemistries.
- Develop CAN and CANopen communication firmware for pack‑to‑host telemetry, status reporting, and command handling.
- Support board bring‑up: verify power rails and sequencing, confirm peripheral communication, and work through hardware/firmware integration issues alongside the hardware team.
- Write and maintain unit tests and on‑target tests that exercise both nominal operation and fault paths, and keep them running as the firmware changes.
- Instrument and debug firmware on real hardware using SWD/JTAG, logic analyzers, and oscilloscopes, and trace a symptom to its root cause rather than to a workaround.
- Implement firmware requirements traced to FMEA and fault tree analysis in support of UL 1973, UL 1998, and UL 9540 certification, and produce the evidence that shows they were met.
- Write design descriptions, interface specifications, and test procedures for the code you own.
- Participate in code reviews — both receiving them and reading other people's changes carefully.
- B.S. in Computer Engineering, Electrical Engineering, Computer Science, or a related field, or equivalent practical experience.
- 2+ years developing production embedded firmware in C for Arm Cortex‑M microcontrollers.
- Hands‑on experience configuring and using common MCU peripherals: ADC, SPI, I2C, UART, CAN, DMA, timers, and GPIO.
- Working knowledge of CAN bus — message framing, arbitration, bus‑off handling, and what a node looks like when it misbehaves.
- Ability to read a schematic, a datasheet, and a reference manual, and to reconcile the three when they disagree.
- Practical debugging skill with SWD/JTAG debuggers, logic analyzers, and oscilloscopes — comfortable at a bench, not only in an IDE.
- Profic…
(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).