What you will do: Fast charging a battery pack requires the charger and the battery to communicate with each other perfectly and work in sync. This is achieved when 3 things come together: Great battery pack design Reliable accurate hardware Innovative efficient firmware and algorithms (battery and charging algorithms) Software and hardware are critical to the efficient working of a well-designed battery pack. At Exponent, we take our software very seriously, and to complement it, we build our own hardware to the highest standards fully in-house. As a firmware engineer at Exponent you will work closely with hardware (it s like a dance you need both partners to be in sync with each other), understand baseline capabilities, and boost it 10X. Responsibilities: Define architecture. Develop Algorithms. Take code to production. Experience in building charging + Battery (BMS) Algorithms. Work closely with the hardware team, drive necessary hardware changes. The ideal candidate requires: Experience in taking firmware Design from concept to production Good understanding of Microcontrollers and Microprocessors - GPIO s, ADC, etc Hand-on Experience in C and C++ programming Expertise in developing communication protocols. Relevant protocols being I2C, Serial Peripheral Interface (SPI), USB, General-purpose input/output (GPIOs), Controller Area Network (CAN bus) Experience with Model-based development is an added advantage Hands-on experience in working with hardware products Should have experience in working and setting up HIL and SIL Test rigs We are looking for builders with a certain mindset: Build. Fail. Learn. Repeat. What matters less: Years of experience Formal qualification What matters more: Quality of work Approach towards problem-solving Dissatisfaction towards mediocre work Resilient attitude to bounce back after failing