We are seeking a highly motivated Software Engineer to join the SiConic R&D team. The candidate will be responsible for developing and maintaining PCIe platform software, hardware control services, device management APIs, and validation frameworks used for next-generation silicon validation, DFT, and test engineering solutions.
The role involves working closely with global R&D teams, hardware architects, firmware developers, and customer engineering groups to deliver scalable and robust software solutions for the SiConic ecosystem.
Key Responsibilities
• Design, develop, and maintain PCIe platform software, drivers, and hardware control services.
• Develop APIs for PCIe switch, retimer, board management controller (BMC), and platform management functions.
• Work on Linux-based software stacks, hardware abstraction layers, and device communication frameworks.
• Implement and optimize PCIe enumeration, configuration, topology discovery, and platform management features.
• Develop and enhance JTAG/SWD/GPIO/UART/SPI based debug and control capabilities.
• Investigate, debug, and resolve complex software, firmware, and hardware interaction issues.
• Create automated validation and qualification tests for PCIe, platform management, and system software features.
• Perform root cause analysis of customer-reported defects and field issues.
• Collaborate with cross-functional teams on architecture reviews, feature design, and software integration.
• Contribute to software quality through unit testing, code reviews, CI/CD, and automation.
• Develop technical documentation, API specifications, and design documents.
• Support customer enablement activities, proof-of-concepts, and new platform bring-up.
Required Qualifications
• Bachelor's or Master's degree in Computer Science, Electronics, Electrical Engineering, or related field.
• 8+ years of experience in Linux software development.
• Strong programming skills in C/C++.
• Good knowledge of Python scripting and automation.
• Strong understanding of PCIe architecture and protocols.
• Experience with Linux device drivers and kernel-level development.
• Experience with embedded Linux environments.
• Familiarity with hardware/software interaction and debugging.
• Experience using Git and modern software development processes.
• Strong problem-solving and debugging skills.