Embedded Firmware Engineer
Primary Responsibilities
The applicant must have experience writing embedded software in the C or C++ languages for embedded systems. They should have a solid understanding of and experience with real-time software principles such as RTOS task scheduling and prioritization, inter-process communication with semaphores and mutexes, memory management involving both the stack and heap, and boot processes. Must have experience interacting with real hardware from a software environment and have experience writing low-level device drivers in both bare-metal and operating system environments, interacting with device registers and chip-to-chip hardware interfaces. Must have experience with boot processes and bootloaders and customizing bootloaders, such as U-Boot to support specific hardware configurations. Experience with low-level communication protocols such as SPI, I2C, and UART are a must. Experience with high-speed data transfer using protocols like PCIe and Aurora are desired.
Basic Qualifications
• Bachelor's degree in Electrical Engineer, Computer Engineering, Computer Science, Software Engineering or a related discipline from an ABET-accredited institution
• 15+ years of relevant experience.
• Experience with embedded Software/Firmware design.
• Experience working with embedded operating systems High proficiency with C/C++, and TCL.
• Experience in FPGA system design and test from architecture through implementation
• Familiarity with modern Xilinx FPGA families and design tools (7-series FPGAs, Ultrascale+, Vivado, Vitis, Xilinx IP cores)
• Experience with multiple high-speed serial communication standards and interfaces (e.g. Aurora, 10Ge, PCIe, DDR4/3/2/1, JESD204B)
• Experience with standard internal interfaces such as AXI4, AXI4-Stream, AXI4-Lite
• Motivated self-starter and problem solver with experience executing in multi-disciplinary teams.
• Hands-on laboratory experience with instrumentation, test equipment, and debug/test methods.
• Candidate must be a US Citizen and possess (and be able to maintain) a Final Secret Clearance or meet the eligibility to obtain (and maintain) a Secret Clearance.
Preferred Qualifications
• Master's degree in Electrical Engineer, Computer Engineering, Computer Science, Software Engineering or a related discipline from an ABET-accredited institution
• 20+ years of relevant experience.
• Experience working with SoC designs such as Zynq and Zynq Ultrascale+ including architecting and interfacing with peripherals, interrupts, and related bus architectures
• Working knowledge of digital/analog/mixed signal electronics, components, and interface/communication standards
• Experience with FPGA PCBA hardware design