Develop the software verification plan for Automotive SoC subsystems focusing on functional, safety and building stress verification scenarios at system level. This would involve understanding the system architecture, and identifying software payloads that validates & stresses corner cases around all the components of the system.
Port software components for Automotive designs prioritizing different workloads for staged verification in emulation environment.
Collaborate with design and verification team on low level software bringup in emulation.
Identify and debug issues in the design using software payloads and work with design team on addressing the issues.
Work closely with the architecture team to resolve design safety issues identified on the course of emulation verification.
Mentor junior engineers and work as a team to deliver on validation goals.
Required Skills and Experience
Degree or equivalent experience in Computer Engineering/Computer Science or Electronics Engineering.
8 years of proven experience working in the embedded software field. Hands-on experience in automotive software development would be a huge plus.
Solid understanding in embedded software boot flows, firmware/driver development and low-level operating system drivers for processor architecture.
Strong expertise in C language working in bare metal and RTOS software environments.
Experience working with at least one RTOS environment. FreeRTOS preferred.
Excellent analytical, problem solving and debugging skills. Willing to learn bigger and sophisticated SoC subsystems.
Strong interpersonal skills, excellent verbal and written communication skills.
Self-motivated and willing to take up additional responsibilities to contribute to the team’s success.
“Nice To Have” Skills and Experience
Knowledge of Automotive Functional Safety standards and Automotive Safety Integrity Levels (ASIL)
Experience working on industry-standard emulators (like Strato or ZeBu), and validation using transactors or virtual devices will be a plus
Experience with embedded Linux concepts.
Familiarity with ARM architecture and prior knowledge in any of the A/R/M class processors.
Assembly language programming & scripting (Bash or Python) skills.