Job Title Embedded Software Engineer - BMS
Job Purpose The Embedded Software Engineer - Battery Management System position will support the development of Canoo's proprietary Battery Management System (BMS) and related technologies.
Our Battery TechnologyCanoo is building an industry leading, configurable battery system as part of its multi-purpose vehicle platform. This role presents a unique opportunity to shape the battery technology for Canoo's entire vehicle range and to explore future developments in BMS communication, safety, and reliability
Responsibilities (80s of the Position) - Develop software for embedded devices in the Canoo BMS
- Develop documentation and test plans for software
- Investigate, debug, and modify existing code
- Work with HW engineers to test, debug and validate FW on bench
- Develop standard and custom communication protocols for new systems
Required Experience - Minimally BS In Computer/Software Engineering, Electrical Engineering, or a BS in a technically rigorous field (math, physics, etc.)
- 3+ years of embedded programming design experience
- Fluent in the use of the C programming language for embedded systems
- Strong grasp of basic embedded protocols such as SPI, I2C, UART and CAN
- Proficient with embedded IDE development and debug tools
- Thorough understanding of software development practices, including Git and agile methodologies
- Experience with real-time operating systems (RTOS)
- Ability to follow circuit schematics and PCB layout drawings
- Experience using standard lab equipment such as oscilloscopes, function generators and serial analyzers for validating and debugging firmware
- Excellent ability to debug and root cause technical issues
Preferred Experience - Experience with ST microcontroller platforms
- Experience working with "safety critical" systems and the rigor required to successfully develop them
- Experience developing device drivers, control systems, and communications protocols
- Familiarity with standard BMS algorithms such as state of charge estimation, isolation measurement etc.
- Familiarity with BMS technique such as cell voltage measurement, current shunt measurement, use of internal BMS serial busses etc.
- Foundational computer architecture knowledge: how an SOC works underneath the firmware
- Previous experience with Memory Protection Units (MPU) or Memory Management Units (MMU)
- Experience with Unified Diagnostic Services (UDS) and ISO-14229
Physical RequirementsWhile performing the duties of this job, employees may be required to sit for prolonged periods of time, occasionally bending or stooping, lifting up to 10 pounds, and prolonged periods of computer use.
Reasonable AccommodationsReasonable accommodations may be made to enable individuals with disabilities to perform the essential functions of the position.
What's Cool About Working Here... - Meaningful, challenging work that will redefine automotive landscape and make EVs available to everyone
- Comprehensive Health Insurance
- Equity Compensation
- Flexible Paid Time Off
- Casual workplace with an unbelievable feeling of energy