A reputable client of ours is seeking a Firmware Engineer with strong experience in PCIe, NVMe, and low-level driver development to help design, implement, debug, and optimize firmware and software interfaces for high-performance storage or embedded systems.
The ideal candidate has hands-on experience working close to hardware, understands PCIe transaction layers and NVMe command flows, and is comfortable debugging complex interactions between firmware, drivers, operating systems, and silicon. Our client is headquartered out of Minneapolis, MN but this role can work remote. Candidates MUST be US Citizens.
Job Title: Firmware Engineer PCIe NVMe
Duration: Contact to Direct
Location: Minneapolis, MN (REMOTE)
Pay Rate: DOE
Key Responsibilities
- Design, develop, and maintain firmware for PCIe and NVMe-based devices.
- Implement and debug lowlevel driver and firmware features related to NVMe controllers, PCIe endpoints, DMA engines, interrupt handling, queues, and command processing.
- Work with PCIe concepts such as enumeration, BARs, MSI/MSIX, link training, LTSSM, power management, error handling, and performance tuning.
- Develop and validate NVMe functionality including admin commands, I/O queues, namespaces, submission/completion queues, doorbells, PRPs/SGLs, and error recovery flows.
- Bring up firmware on FPGA, emulation platforms, presilicon environments, and/or production silicon.
- Debug hardware/software interactions using tools such as protocol analyzers, logic analyzers, JTAG, oscilloscopes, trace buffers, and firmware logs.
- Collaborate with hardware, ASIC, validation, systems, and software driver teams to rootcause issues.
- Optimize firmware for performance, latency, reliability, and resource usage.
- Develop unit tests, integration tests, and validation utilities for firmware and driver functionality.
- Support compliance, interoperability, and stress testing for PCIe and NVMe products.
- Participate in architecture reviews, code reviews, and technical documentation.
Required Qualifications - Bachelor's or Master's degree in Electrical Engineering, Computer Engineering, Computer Science, or a related field.
- Strong programming experience in C and/or C++ for embedded or systemslevel software.
- Experience developing or debugging firmware, device drivers, bootloaders, or lowlevel embedded software.
- Familiarity with PCIe architecture, including configuration space, BAR mapping, interrupts, DMA, link states, and error reporting.
- Experience with the NVMe protocol, including command sets, queue management, namespaces, and host/controller interactions.
- Understanding of operating system driver models, preferably Linux kernel, Windows driver framework, or embedded RTOS environments.
- Strong debugging skills across firmware, software, and hardware boundaries.
- Experience reading hardware specifications, register maps, datasheets, and protocol standards.
- Comfortable working with source control systems such as Git.
Preferred Qualifications - Experience with NVMe SSDs, storage controllers, computational storage, SmartNICs, accelerators, or PCIe endpoint devices.
- Handson experience with Linux kernel driver development.
- Familiarity with PCIe Gen3, Gen4, Gen5, or newer.
- Experience with NVMeMI, SR-IOV, CMB, PMR, ZNS, FDP, or other advanced NVMe features.
- Experience with UEFI, boot firmware, secure boot, or platform initialization.
- Knowledge of embedded processors such as ARM, RISCV, ARC, or custom microcontrollers.
- Experience with firmware performance profiling and latency optimization.
- Familiarity with scripting languages such as Python, Bash, or Perl for automation and testing.
- Experience with presilicon simulation, FPGA bring-up, or ASIC validation.
- Familiarity with storage protocols beyond NVMe, such as SATA, SAS, UFS, or SCSI, is a plus.