Strong programming skills in C & C++, (additional programming languages experience such as Python, Rust would be a plus).
16/32 bit controller based Product/Software development experience is a must.
Development of the various software components including low-level drivers, scheduler, boot-loader, service functions and communication protocol stacks.
Check/Review data-sheets/ application notes, consult micro-controller vendor to bring up the drivers with requisite features and test these drivers.
Strong ARM microcontroller-based software development experience (experience with NXP preferred).
Strong working experience of debuggers, tools and IDEs for Embedded Systems.
Good knowledge of various hardware communication protocols CAN, SPI, UART, I2C etc
Good knowledge of soft communication protocols like MQTT, etc
Knowledge of UDS, CAN TP etc would be an advantage.
Code version control management tools such as Gitlab, Github.
Adopt good industry practices for firmware design, development and delivery process.
Essential Functions:
Excellent C programming language skills, and ability to validate and debug C code on embedded hardware platforms
Familiar with CAN, MODBUS, IIC, SPI, UART protocols
Familiar with RTOS (uCOS-II&III) in an embedded environment
Education Minimum Required Level:
Bachelors in Engineering or Technical domain (Computer Science, Computer Engineering, Electrical Engineering, Electronic Engineering, or Software Engineering).