Job Summary
BMTC validation engineering: This role focuses on hardware-software boundary debugging across firmware, PCIe transport, and userspace, requiring C and C++ systems programming, PCIe interfaces and DMA, custom silicon validation, streaming API architecture, build systems, and support for multiple chip generations. Rust is emerging for the streaming API shim layer but is not yet dominant.
Key Responsibilities
The role is BMTC (Bare Metal Test & Control) Validation Software Engineer requiring expertise at the hardware-software boundary. The top critical skills are:
- C/C++ Systems Programming — memory allocators, interrupt handling, race condition debugging, resource lifecycle management
- PCIe & Hardware Interfaces — VFIO, BAR mapping, iATU, DMA (H2D/D2H/P2P), physical functions
- Custom Silicon Validation — Core firmware, HDI protocol, SQ/CQ setup, multi-generation chip support
- Streaming API Architecture — dynamic library loading, process separation, static-to-dynamic migration
- Build System — constraint-based compilation, target management, CI integration
Skill Requirements
- C/C++ Systems Programming — memory allocators, interrupt handling, race condition debugging, resource lifecycle management
- PCIe & Hardware Interfaces — VFIO, BAR mapping, iATU, DMA (H2D/D2H/P2P), physical functions
- Custom Silicon Validation — Core firmware, HDI protocol, SQ/CQ setup, multi-generation chip support
- Streaming API Architecture — dynamic library loading, process separation, static-to-dynamic migration
- Build System — constraint-based compilation, target management, CI integration