Design, Develop, Integrate, Test, and maintain embedded basic software for Ola Battery Management System
Roles and Responsibilities
- Develop and maintain basic software components systems and their networks in C and C++.
- Design and implement software for embedded systems from requirements analysis through production and commercial deployment.
- Design and Develop Diagnostics/ Communication stack/ Microcontroller Abstraction Layer/ NVRAM/ Bootloader etc
- Develop documentation including SW requirements architecture and design.
- Work closely with other engineering teams to ensure system functional and interface requirements are met.
- Actively participate in design and code reviews.
- Interact with partners and suppliers in technical discussions throughout the development and deployment phases.
Experience & Skills
- 6 to 12 years of experience in embedded software development in C/C++ on both RTOS and bare metal environments.
- Experience in developing complex drivers for interface with Battery FET Control, Analog Front End (AFE) and System Basic Chip(SBC).
- Working experience in Microcontroller Board Support Packages like ADC, Timer, Capture mode, GTM, SPI, I2C, CAN, UART, Flash Drivers, Watchdog and other BMS HW interfacing drivers.
- Experience with communication protocols such as CAN(-FD), J1939, UDS, SPI, UART, I2C.
- Experience with safety critical RTOS like SAfeRTOS, Greenhill’s Integrity
- Hands-on hardware bring-up, code optimization and system debugging using JTAG/SWD based debugger.
- Comprehensive experience with software Version Control Tools – GIT, SVN etc
- Understanding of RTOS concepts like booting (knowledge of secure boot preferred), scheduling algorithms, memory management, resource distribution, power management etc.
- Comprehensive experience with Vector CAN Tools (CANalyzer, CANoe), Ethernet tools, Emulators, Debuggers, and Compilers
- Experience with 16/32 bits microcontrollers like NXP, STM32 and Microchip MCUs and ColdFire, ARM and/or PowerPC architecture
- Good knowledge of Bootloader development in microcontroller, preferably using dual banking concept.
Good to Have
- Experience with interfacing with Secure Element chips like TA-100, able to use Crypto libraries for AES CBC and SHA-256 operations.
- Technical Safety Concepts – RAM test, ROM test, Lock step, CPU test, MPU, OS configurations would be a big plus
- Working knowledge of ISO 26262 functional safety integrity levels and Familiarity of Autosar architecture, Functional Safety and FMEA.
- Experience with Jira, Confluence and Agile Software Development is desired.
- Ability to work independently and provide mentoring to more junior software engineers as needed.
B Tech/ M Tech in Electronics/Computer Science