Software Validation Engineer
- Canada
Full-time
Applications open in a new tab.
Job details
- Job type
- Full-time
- Posting language
- English
- Posted
Original job description
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
The ideal candidate would be comfortable debugging issues that span firmware → PCIe transport → userspace, and able to maintain shared infrastructure across multiple chip generations. Rust is emerging as a skill need (for the streaming API shim layer) but is not yet dominant.
More about this job
Responsibilities
The engineer will validate bare metal test and control software at the hardware-software boundary. They are responsible for debugging complex issues spanning firmware, PCIe transport, and userspace while maintaining shared infrastructure across chip generations.
Requirements
Candidates must possess deep expertise in C/C++ systems programming, PCIe hardware interfaces, and custom silicon validation. Proficiency in build systems and familiarity with streaming API architecture are essential for this role.
Skills
- C/C++
- Systems Programming
- PCIe
- Hardware Interfaces
- VFIO
- BAR mapping
- iATU
- DMA
- Custom Silicon Validation
- Firmware
- HDI protocol
- Streaming API Architecture
- Build System
- CI integration
- Rust
Visa sponsorship
Not detected in the job text
Categories
- Software
- Technology
- Engineering
- Consulting
Keywords
- Software Validation Engineer
- BMTC
- Bare Metal
- C++
- Systems Programming
- PCIe
- VFIO
- BAR mapping
- iATU
- DMA
- Custom Silicon
- Firmware
- HDI protocol
- SQ/CQ
- Streaming API
- Dynamic library
- Build System
- CI integration
- Rust
- Hardware-software boundary
- Memory allocators
- Interrupt handling
- Race condition debugging
- Resource lifecycle management