Senior Embedded Software Engineer (BMS/Battery)
Superpedestrian is working on the next generation of shared mobility fleet scooters. We are seeking a Senior Embedded Software Engineer to join our embedded software development team. The ideal candidate has strong skills in embedded software architecture, design, and implementation on resource constrained, robotic-like systems. Ideal candidates will also have experience in battery management software and lifecycle management of lithium-ion battery packs. You must demonstrate high competency in core embedded concepts such as system time management, peripheral configuration, and inter-module communications protocols (SPI, I2C, CAN), and expertise in embedded C (MISRA-C experience preferred). Additionally, experience in the area of motion control,specifically with implementing motor drive software for brushless DC motors on a microprocessor is also a plus.
What you'll do:
- Help build our next generation technology by writing code in C and python, for embedded targets that service motor control, battery management, and systems communication.
- Contribute your knowledge and wisdom to the team's development processes and software best practices.
- Architect embedded software for our next products, and deliver on that architecture with beautiful, tested, functional software.
- Own our BMS platform, architect and design its software and take it all the way through from initial concept to debugging and system validation to manufacturing and product launch.
- Collaborate closely with the embedded hardware team to specify module and system requirements and design.
- Design and document software interactions between system modules, cloud services, and mobile applications.
- Contribute to a software quality plan including testing, inspection, and certification.
What we're looking for:
- MS/BS CS/EE with 7+ years of industry experience developing embedded software
- 3+ years experience writing battery management software, specifically for Li-ion or Li-po batteries
- Expert programming skills in C
- Experience with scripting languages (python, bash)
- Experience in embedded robotics or motion control applications
- Expert in implementing low-level chip functionality and drivers (CAN, I2C, SPI, USB, bootloaders) for embedded systems
- Experience working in a team-based agile/Scrum process
- Working knowledge of common workflow management tools, e.g. revision control, bug tracking, documentation platforms
- Ability to write PC-based tools and applications for the development, debugging, and testing of embedded systems
Additional useful skills:
- Software regulatory experience
- Electric vehicle experience
- Assembly language skills