Joining our Palladium and Protium solution team, work with a group of advanced interface and memory protocol experts. In this role, you will design and develop low-level device drivers alongside robust GUI-based tools used for system configuration, validation, and real-time debugging.
You will work at the hardware-software boundary, focusing on software development, collaborating closely with hardware teams to bring advanced silicon architectures to life and enable seamless customer experiences.
Key Responsibilities
-
Driver & Interface Development: Design, develop, and optimize software device drivers for high-speed hardware interfaces (such as PCIe and CXL) on Linux and/or Windows platforms.
-
GUI & Tooling Architecture: Build, enhance, and maintain intuitive GUI-based software tools for device configuration, real-time telemetry monitoring, validation, and advanced debugging.
-
Hardware-Software Integration: Partner closely with hardware engineers to analyze register maps, master complex communication protocols, and translate system requirements into high-performance software.
-
System-Level Functionality: Implement critical low-level features including device enumeration, configuration handling, interrupt processing, DMA functionality, and hardware-to-GUI control loops.
-
Automation & Validation: Architect automation frameworks and test utilities to accelerate hardware bring-up, streamline regression testing, and support field debugging.
-
Root-Cause Debugging: Triage and resolve complex, systemic issues across the hardware/software boundary, optimizing driver behavior, protocol compliance, and overall system stability.
-
Cross-Functional Collaboration: Partner with engineering and customer enablement teams to drive product bring-up, analyze field issues, and deliver top-tier support.
Required Qualifications
-
Education: 10+ years of industry experience, BS degree Computer Science/Engineering, Electrical, Engineering, or related field
-
Core Programming: Strong, production-grade programming skills in C/C++.
-
Driver Development: Hands-on experience developing device drivers on Linux and/or Windows operating systems.
-
Protocol Expertise: Solid, foundational understanding of advanced protocols like PCIE, Ethernet etc.
-
System Triage: Proven debugging skills for complex system integration issues spanning both hardware and software layers.
Preferred Qualifications
-
Multi-Language Systems: Experience working in multi-language environments combining SystemVerilog (SV), C/C++, and Python.
-
GUI Frameworks: Experience with Qt, PyQt, or similar modern GUI development frameworks.
-
Automation & Scripting: Proficiency in Python for test automation, validation scripting, or rapid GUI prototyping.
-
Advanced Linux Kernel: Deep experience with Linux kernel driver development and memory management.
-
User-Mode Access: Familiarity with user-mode hardware access methodologies, including VFIO, UIO, and PCIe BAR mapping.
-
Lab Equipment: Experience utilizing hardware debug tools such as protocol analyzers, logic analyzers, and oscilloscopes.
-
Innovative Methodologies: Exposure to applying AI/ML techniques to hardware verification, log analysis, or tooling automation.
-
Soft Skills: Strong analytical problem-solving skills with the ability to work independently and drive projects to completion in a dynamic team environment.