Pay Rate- $57 - $62 hourly on W2
Job Description
Client, Inc. is a leading technology company specializing in high-performance computing, AI accelerators, and software optimization across diverse platforms. We provide cutting-edge solutions in machine learning, compiler optimization, and system software development. Our team thrives on solving complex challenges in software-hardware co-design, ensuring our customers achieve maximum efficiency and performance across architectures. Client is looking for a Windows Driver Developer with the attributes as described below.
Core Skills and Knowledge
Windows Driver Development
• Strong understanding of Windows Driver Model (WDM) and Windows Driver Frameworks (KMDF/UMDF).
• Experience with Windows Hardware Lab Kit (HLK) and Driver Verifier for debugging and certification.
• Familiarity with INF files and driver signing requirements.
PCIe Architecture & Protocol
• Deep understanding of PCI Express (PCIe) protocol, including enumeration, BARs (Base Address Registers), MSI/MSI-X, and DMA.
• Experience with PCI Configuration Space and MMIO/PIO access.
• Debugging PCIe transactions using hardware analyzers or tools like PCIeView.
Windows Kernel Programming
• Experience with kernel-mode programming and IRQL (Interrupt Request Levels).
• Handling memory-mapped I/O (MMIO) and interrupts in Windows.
• Working with Device Object (PDO/FDO) and Power Management (PnP, D3 states).
Driver Development Tools
• Expertise in WinDbg for debugging Windows drivers.
• Experience using Windows Driver Kit (WDK) and Visual Studio for driver development.
• Proficiency with Devcon, PCI Tree, and Device Manager for testing and troubleshooting.
Experience with Stub Drivers
• Writing stub drivers to simulate hardware behavior in a test environment.
• Developing bus or function drivers to provide a controlled interface for software testing.
• Working with WDF (KMDF/UMDF) for user-mode stubs or NTDLL APIs for system calls.
Additional Experience
• Prior experience with firmware development for PCIe devices.
• Knowledge of C/C and experience with Windows API.
• Understanding of security aspects in driver development, such as buffer overflows and kernel protection mechanisms.
• Experience with virtualization technologies and how PCIe passthrough works in environments like Hyper-V.
General Requirements
• Bachelor's or Master's degree in Computer Science or equivalent
• Strong debugging and problem-solving skills.
• Ability to collaborate effectively across engineering teams.
• Strong verbal and written communication skills.
• Willingness to work outside one's comfort zone and tackle complex engineering challenges.