Haystack
← Back to Jobs
Technology
MS

BMTC (Bare Metal) Firmware Validation Software Engineer

Metalight Solutions IncSunnyvale, CA🇺🇸United StatesPosted Sep 22, 2026

Quick Overview

Seniority
Mid Senior
Work mode
On Site
Location
Sunnyvale, CA, United States
Posted
1 week ago
RustC++

Job Description

Position: BMTC (Bare Metal) Firmware Validation Software Engineer Location: Sunnyvale, CA Onsite

Job Overview

We are looking for a BMTC (Bare Metal Test & Control) Firmware Validation Software Engineer with strong expertise at the hardware-software boundary. The ideal candidate will have hands-on experience developing and debugging low-level C/C++ systems software, interacting directly with hardware, and validating custom silicon across multiple chip generations.

You will work on software infrastructure used for bare-metal testing, firmware validation, PCIe communication, DMA operations, and userspace interfaces. The role requires someone who is comfortable debugging issues that span firmware PCIe transport userspace and who can maintain and enhance shared validation infrastructure.

Key Responsibilities

  • Develop, debug, and maintain low-level C/C++ systems software for bare-metal hardware validation.
  • Work closely with firmware and silicon teams to validate custom ASIC/SoC hardware.
  • Debug complex issues involving memory management, interrupts, concurrency, race conditions, and resource lifecycle management.
  • Develop and debug PCIe-based hardware interfaces, including VFIO, BAR mapping, iATU, DMA, and Physical Functions (PF).
  • Work with H2D, D2H, and P2P DMA flows and troubleshoot hardware/software communication issues.
  • Support core firmware, HDI protocols, SQ/CQ setup, and other hardware control/validation mechanisms.
  • Maintain validation infrastructure across multiple generations of custom silicon/chips.
  • Develop and maintain streaming API infrastructure, including dynamic library loading and process separation.
  • Support migration of existing static implementations toward dynamic/shared-library architectures.
  • Work with build systems involving constraint-based compilation, target management, and CI integration.
  • Collaborate with firmware, hardware, silicon validation, and systems software teams to identify and resolve issues.
  • Analyze failures across multiple software and hardware layers and provide root-cause fixes.

Required Skills

  • Strong hands-on experience with C/C++ systems programming.
  • Strong understanding of low-level software and hardware interaction.
  • Experience with memory allocators, interrupt handling, concurrency, race conditions, and resource management.
  • Strong experience with PCIe and hardware interfaces.
  • Hands-on experience with VFIO, BAR mapping, iATU, and DMA.
  • Experience with H2D, D2H and/or P2P DMA.
  • Experience working with Physical Functions (PFs) and PCIe devices.
  • Experience with firmware validation, silicon validation, ASIC/SoC validation, or hardware bring-up.
  • Experience debugging issues across firmware, PCIe transport, kernel/driver layers, and userspace.
  • Experience working with custom silicon or multiple chip generations.
  • Strong debugging and root-cause analysis skills.

Preferred / Nice-to-Have Skills

  • Experience with Rust, particularly for streaming/API infrastructure or shim layers.
  • Experience with dynamic library loading (.so), process separation, and shared-library architecture.
  • Experience migrating static implementations to dynamic libraries.
  • Experience with SQ/CQ (Submission Queue / Completion Queue)
  • Experience with HDI or similar hardware-device interface protocols.
  • Experience with build systems, target management, constrained compilation, and CI/CD integration.
  • Experience working in semiconductor, ASIC, GPU, accelerator, networking, or other high-performance hardware environments.

Similar jobs