
Embedded Software Engineer
Proper Voltage8 days ago
Carlsbad, CA, USAMid Level
Base Salary
$115k - $145k/yr
Responsibilities
- Implement and maintain battery management system firmware in C on STM32 Arm Cortex-M platforms.
- Develop and test peripheral drivers for ADC, SPI, I2C, UART, CAN, DMA, timers, and GPIO.
- Integrate battery monitoring front ends for cell voltage, temperature, and current measurement.
- Implement overvoltage, undervoltage, overcurrent, overtemperature, short-circuit protection, and passive cell balancing.
- Develop CAN and CANopen firmware for pack telemetry, status reporting, and command handling.
- Support board bring-up and hardware/firmware integration with the hardware team.
- Write and maintain unit tests and on-target tests for nominal and fault paths.
- Debug firmware on real hardware using SWD/JTAG, logic analyzers, and oscilloscopes.
- Implement requirements traced to FMEA and fault tree analysis for UL 1973, UL 1998, and UL 9540 certification.
- Write design descriptions, interface specifications, test procedures, and certification evidence.
- Participate in code reviews and maintain firmware through ongoing changes.
Requirements
- Bachelor’s degree in Computer Engineering, Electrical Engineering, Computer Science, or a related field, or equivalent practical experience.
- At least 2 years of production embedded firmware development in C for Arm Cortex-M microcontrollers.
- Hands-on experience with ADC, SPI, I2C, UART, CAN, DMA, timers, and GPIO peripherals.
- Working knowledge of CAN bus, including message framing, arbitration, bus-off handling, and node failure behavior.
- Ability to read and reconcile schematics, datasheets, and reference manuals.
- Practical experience debugging with SWD/JTAG debuggers, logic analyzers, and oscilloscopes.
- Proficiency with Git and structured branch, review, and release workflows.
- Ability to work to written specifications and accept review of safety-critical code paths.
- Clear written communication and technical documentation skills.
- Preferred: battery management firmware experience, including cell monitoring, balancing, state-of-charge estimation, or pack protection.
- Preferred: STM32 development with STM32CubeIDE, STM32CubeMX, or equivalent ST toolchains.
- Preferred: RTOS development with FreeRTOS, Zephyr, or similar systems.
- Preferred: analog signal-chain knowledge, digital filtering, safety-critical or certified product development, requirements traceability, and formal verification evidence.
- Preferred: experience with AMC1301, shunt-based sensing, Hall-effect sensors, Python, multiple battery chemistries, CANopen, CiA 301, bootloaders, hardware-in-the-loop testing, Renode, QEMU, MISRA C, static analysis, embedded unit-test frameworks, Rust, Embassy, RTIC, and high-voltage systems.
Benefits
- Salary range of $115,000–$145,000 depending on experience and qualifications.
- Equity options.
- Medical, dental, and vision healthcare benefits.
- Generous paid time off and paid holidays.
- Onsite, lab-dependent work in Carlsbad, California; the role is not remote.
- Individual contributor role with direct mentorship from senior firmware engineers and access to an onsite lab bench.