FPGA Firmware Engineer
The job description
Tech stack. Soft-core processor software (MicroBlaze, Nios V), FPGA configuration and boot management, authenticated bitstream update flows, embedded software on SoC FPGAs (Zynq, PolarFire SoC), JTAG programming chains, ILA/SignalTap cross-domain debug, custom IP driver development
About the role
You will develop the embedded software executing inside FPGA-based systems, working precisely at the boundary where firmware meets programmable logic. FPGA firmware engineers own all software running on soft-core or hardened processors within SoC FPGAs, manage complete bitstream lifecycles from development through field updates, and build the device drivers exposing custom logic blocks to application software. You will transform reconfigurable hardware into dependable finished products: reliable authenticated field updates, clean layered software interfaces, and manufacturing programming flows that operate flawlessly at volume. The role demands genuine comfort in both engineering worlds: reading HDL accurately enough to write correct drivers, and writing software robust enough for deployed systems that cannot be easily serviced.
What you will achieve
- Develop production embedded software for soft-core processors (MicroBlaze, Nios V) or hardened ARM cores within Zynq, Intel Stratix, or PolarFire SoC devices
- Deliver complete bitstream lifecycle management: rigorous versioning, authenticated and encrypted update packages, golden fallback images, and field upgrade orchestration
- Build high-quality drivers for custom FPGA IP blocks featuring clean software abstractions, complete register documentation, and working example applications
- Debug systematically across the hardware/software boundary: correlating ILA and SignalTap logic traces with firmware execution flow and register state
- Create production-ready manufacturing flows for FPGA device programming, bitstream authenticity verification, and per-unit serialization at scale
What you will bring
Must-haves
- 2 to 5 years in embedded software development with substantial hands-on exposure to FPGA-based system platforms
- Working understanding of SoC FPGA device architectures: Zynq-7000, Zynq UltraScale+, Cyclone V SoC, or PolarFire SoC families and their boot flows
- Practical experience with soft-core processors or ARM application processors integrated within FPGA fabrics
- Ability to read Verilog and VHDL accurately enough to write correct, complete, well-tested drivers for custom-designed IP blocks
- Familiarity with FPGA configuration mechanics: bitstream file formats, configuration boot modes, SPI flash programming, and JTAG chain management
- Cross-domain debugging skills: correlating captured logic analyzer waveforms with firmware control flow and system-level symptoms
- BS in Electrical or Computer Engineering
Nice-to-haves
- Working RTL design skills in Verilog or VHDL enabling IP block reading, simulation, and targeted modifications
- Experience implementing partial reconfiguration for field-upgradable or multi-personality system designs
- Familiarity with PetaLinux or custom embedded Linux distributions running on SoC FPGA platforms
- Knowledge of multi-gigabit transceiver configuration, equalization, and link training procedures managed from software
Apple
Tesla
Qualcomm
Intel
Western Digital
Seagate