Embedded Software Engineer

 Posted 22 days ago
     
 $130K - $160K per year
  
2-5 years experience
Apply Now

Please mention DailyRemote when applying

AI Summary

Develop and maintain safety-critical BMS firmware on STM32 platforms for various battery chemistries. Implement peripheral drivers, cell monitoring algorithms, and CAN bus communication while supporting board bring-up and safety compliance.

Job Overview

We are looking for an Embedded Software Engineer who is passionate about writing firmware that runs on real hardware in safety-critical environments. In this role, you will develop and maintain firmware for our battery management systems running on STM32 microcontrollers, implementing core BMS functions including cell monitoring, protection algorithms, communication protocols, and sensor interfaces. You’ll work closely with hardware and senior firmware engineers to bring up new boards, integrate analog front ends, and ship production-quality firmware across multiple battery chemistries. This is a hands-on individual contributor role within a fast-moving, multi-disciplinary engineering team.

What You’ll Do

       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.

       Ability to either work in person at our Carlsbad, CA office or travel there as needed with a demonstrated track record of highly efficient, collaborative remote work.

Required Qualifications

       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.

Preferred Qualifications

       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.

Prior Experience With

       C/C++ for embedded development.

       Hardware-in-the-loop testing and emulation frameworks (Renode, QEMU).

       CPLD or FPGA interfacing from a firmware perspective.

       Using Python for scripting, log analysis, and test automation.

       High-voltage systems (100V+) and associated safety practices.

Compensation & Benefits

       Salary range: $130,000 – $160,000 depending on experience and qualifications.

       Equity options as part of the compensation package.

       Comprehensive healthcare benefits (medical, dental, vision).

       Generous paid time off and paid holidays (PTO) policy.

 

 

Ready to write the firmware that powers the future of energy? Let’s talk.

Similar Jobs

See all Remote Software Development jobs →

Personalize your Remote Job Search in 3 Easy Steps!

Discover remote opportunities in Software Engineer

Answer easy questions

Answer easy questions

200,000+ jobs across 15+ categories

Get your best job matches

Get your best job matches

Only hand-screened, legit jobs

Find a remote job faster

Find a remote job faster

No ads, scams, or junk

I was the first applicant for a remote marketing position that got listed on the company website the same day I applied. Had an interview within 48 hours!

Sarah J. — Sarah J. · Marketing Manager ★★★★★ Verified