Proper Voltage is unlocking the next generation of battery technology across robotics, data centers, and defense. The Embedded Software Engineer will develop and maintain firmware for battery management systems, working closely with hardware and senior firmware engineers to implement critical functions and ensure safety compliance.
Responsibilities:
- Develop and maintain BMS firmware on STM32 platforms (Cortex-M33/M4) in C, targeting safety-critical battery applications across sodium-ion, lithium-titanate, and lithium-ion chemistries
- Implement and test peripheral drivers for ADC, SPI, I2C, UART, CAN, DMA, and timers as part of the BMS firmware platform
- Develop firmware for cell voltage and temperature monitoring, over/under-voltage and over-current protection, and thermal management
- Implement and tune passive cell balancing algorithms for multi-series pack configurations
- Integrate and validate analog front-end interfaces, including isolated amplifiers (AMC1301), current sense circuits, and voltage divider chains
- Develop CAN bus communication firmware for BMS-to-host data exchange, status reporting, and command interfaces
- Write, execute, and maintain unit tests and hardware-in-the-loop tests to validate firmware functionality and fault response
- Support board bring-up activities: verify power rails, validate peripheral communication, and debug hardware/firmware integration issues
- Collaborate with hardware engineers on schematic review and provide firmware-side input on signal routing, filtering, and component selection
- Contribute to firmware documentation including design descriptions, interface specifications, and test procedures
- Support safety compliance efforts by implementing firmware requirements derived from FMEA and fault tree analysis for UL 1973 certification
- Participate in code reviews and contribute to continuous improvement of firmware development practices
Requirements:
- B.S. or M.S. in Computer Engineering, Electrical Engineering, Computer Science, or related field
- 3+ years of experience developing embedded firmware in C for ARM Cortex-M microcontrollers
- Hands-on experience with STM32 peripherals: ADC, SPI, I2C, UART, CAN, DMA, and GPIO
- Experience with RTOS-based firmware development (FreeRTOS, Zephyr, or equivalent)
- Familiarity with embedded debugging tools and workflows (JTAG/SWD, logic analyzers, oscilloscopes)
- Understanding of analog signal chains as they relate to firmware: ADC sampling, filtering, calibration, and noise management
- Experience with CAN bus communication protocols and message framing
- Proficiency with version control (Git) and structured development workflows
- Ability to read and interpret hardware schematics, datasheets, and reference manuals
- Effective communication skills across various levels of the organization
- Proven ability to multitask and thrive in a fast-paced startup environment, with minimal supervision
- Experience with battery management system firmware or power electronics control
- Exposure to functional safety concepts and safety-critical firmware practices
- Knowledge of compliance standards for battery systems (UL 1973, UL 9540, IEC 62619)
- Experience with digital filtering techniques (moving average, low-pass IIR, Kalman filters) applied to sensor data
- Familiarity with current sensing techniques, isolated measurement circuits, and precision ADC applications