Job Title: Principal Software Engineer, Linux PCIe Device Drivers Job Location: Bengaluru, India Job ID: AI2371DescriptionThe SoC software team is responsible for creating the SDK for SiMa.ai’s MLSoC product line. This includes developing/porting OS, boot SW, device drivers, run time environment for multiple CPU subsystems that are part of SiMa.ai’s MLSoC™, developing embedded Linux based applications and APIs for enabling end2end customer application flow utilizing different IO subsystems that are part of MLSoC.Responsibilities:We are looking for a seasoned software engineer who has experience developing OS PCIe device drivers, boot SW and key test applications in a Linux embedded environment. The ideal candidate will have a proven track record of working in a high-performance team and has partnered with cross functional teams across multiple geographies. Key responsibilities include (but not limited to):
Leverage IP SW and integrate into MLSoC™ SW environment.
Develop drivers for End Point, Root Complex and PCIe Bifurcation modes for the embedded system.
Test and verify Linux PCIe device drivers and environment with Virtualizers and Zebu emulators.
Design, Implement and Test Host drivers, libraries and test applications to interface to SiMa.ai’s MLSoC™
Experience integrating GPUs, NVME drives, and other PCIe devices to a Host Root Complex system.
Configure Linux environments for different reference boards.
Modify and perform Yocto builds for new functionality.
Provide SW to support HW MLSoC test validation team.
Own the overall design of the data transfer and data structures used for management and data transfer over PCIe.
Key Requirements:
BS/MS in computer science with minimum of 10+ years of experience
Hands-on, production deployed experience developing firmware, boot code and SW using high performance 64 bit Arm processors.
Hands-on, production deployed experience developing drivers for PCIe End Point and Root Complex embedded systems.
Development experience (preferably production deployed) with x86 Linux Host systems to communicate with PCIe EP devices.
Hands-on experience bringing up and troubleshooting new PCIe devices.
Development experience with Embedded Linux (e.g., Yocto) and embedded RTOS (e.g., QNX) is highly desirable
Experience in working with silicon teams is highly desirable.
Good proficiency with C/C++
Proven track record and experience building and delivering complex SW products.
Personal attributes Can-do attitude. Strong team player. Curious, creative, and good at solving problems. Execution and results oriented. Self-driven, thinks big and is highly accountable. Good communication skills.