Position Overview
The Embedded Firmware Engineer will design and implement FPGA modules and embedded firmware that meet demanding performance, reliability, and traceability requirements. They will contribute to RTL development using modern hardware description languages, support simulation and verification efforts, and participate in design and code reviews.
They will also develop and maintain embedded software and tooling used for hardware validation, automated testing, and system bring-up. This includes working with lab equipment, supporting debugging and root-cause analysis, and ensuring proper integration between hardware and software components.
Success in this role requires strong analytical skills, familiarity with FPGA toolchains and simulation environments, and a working knowledge of embedded programming in C/C++. Candidates should be comfortable applying engineering best practices such as version control, documentation, testing, and configuration management.
Key Responsibilities
- Design, implement, verify, and document FPGA/ASIC modules and embedded firmware for high-reliability engineering systems.
- Write and maintain RTL using Verilog, SystemVerilog, or VHDL, with emphasis on clean, reusable, and well-documented design practices.
- Develop and support FPGA-level requirements, design documentation, verification artifacts, and review materials.
- Participate in FPGA design reviews, verification reviews, code reviews, and technical discussions.
- Perform simulation-based verification using QuestaSim or equivalent tools, including debugging failures to root cause.
- Support Clock Domain Crossing analysis, FPGA timing constraint definition, static timing analysis, and timing closure.
- Use FPGA development tools such as Xilinx Vivado, Microchip Libero, and related design/debug environments.
- Develop and maintain embedded software, firmware, automated test software, engineering tools, and software infrastructure.
- Support software for automated test fixtures, laboratory equipment, and hardware validation setups.
- Participate in hardware bring-up, debugging, system integration, and troubleshooting activities.
- Develop and execute software and firmware test procedures under guidance from senior engineers.
- Collaborate with hardware, software, test, and radiation engineers to support system validation and issue resolution.
- Document software, firmware, FPGA design, development, verification, and test activities.
- Apply engineering best practices including version control, testing, documentation, requirements traceability, and configuration control.
- Work effectively in a multidisciplinary team environment and communicate technical information clearly and concisely.
Qualifications
- Bachelor of Science in Electrical Engineering, Computer Engineering, Computer Science, or a related technical discipline.
- 2+ years of FPGA/ASIC design and verification experience, or equivalent experience through internships, research, coursework, or projects.
- Experience writing or using FPGA-level requirements.
- Experience writing RTL using Verilog, SystemVerilog, or VHDL; SystemVerilog preferred.
- Experience with Clock Domain Crossing techniques and analysis.
- Experience with FPGA development tools such as Xilinx Vivado and Microchip Libero.
- Experience with FPGA timing constraints, static timing analysis, and timing closure.
- Experience with QuestaSim or an equivalent simulator.
- Experience testing and debugging simulation failures to determine root cause.
- Experience using FPGA design and verification tools in a Linux environment.
- Experience programming in C or C++.
- Basic understanding of software development principles and debugging techniques.
- Familiarity with embedded systems, microcontrollers, or low-level software concepts.
- Strong analytical and problem-solving skills.
- Ability to work independently and within a multidisciplinary engineering team.
- Strong written and verbal communication skills.
Preferred Qualifications
- Experience with embedded systems projects through coursework, clubs, personal projects, internships, or research.
- Familiarity with Python or other scripting languages.
- Exposure to communication protocols such as SPI, I2C, UART, CAN, Ethernet, or USB.
- Familiarity with Git or other version control systems.
- Exposure to RTOS or bare-metal embedded development.
- Experience using oscilloscopes, logic analyzers, debuggers, or other laboratory equipment.
- Interest in aerospace, avionics, embedded systems, FPGA development, radiation effects, or high-reliability electronics.
Pay: $90,000.00 - $115,000.00 per year
Benefits:
- 401(k)
- Dental insurance
- Employee assistance program
- Health insurance
- Health savings account
- Life insurance
- Paid time off
- Relocation assistance
- Vision insurance
Work Location: In person