- Design, develop, implement, and test high-performance embedded software solutions in C/C++ for Linux-based embedded systems, System-on-Chip (SoC) platforms, and Software Defined Radio (SDR) applications.
- Develop firmware and low-level software that interfaces with FPGA-based hardware, RF front-ends, DMA engines, and custom embedded hardware.
- Design and optimize high-throughput IQ data pipelines between FPGA fabric, system memory, and user-space applications with emphasis on low latency and deterministic performance.
- Develop and maintain software supporting Xilinx/AMD Zynq, Nvidia Jetson, or similar embedded computing platforms.
- Configure and optimize DMA transfers, memory management, cache coherency, and zero-copy architectures for efficient data movement.
- Develop multithreaded real-time software using C/C++, POSIX threads, synchronization primitives, and lock-free programming techniques.
- Optimize software performance using ARM NEON SIMD instructions, vectorized libraries (VOLK, Eigen), or GPU acceleration where appropriate.
- Develop and maintain Linux user-space applications and interfaces for SDR hardware using Industrial I/O (IIO), sysfs, ioctl, or custom device interfaces.
- Support Linux BSP customization and embedded Linux image development using Yocto, PetaLinux, or Buildroot.
- Collaborate with FPGA, RF, electrical, systems, and test engineers to develop integrated hardware/software solutions.
- Analyze system performance, including CPU utilization, memory usage, throughput, latency, and timing behavior to ensure sustained real-time processing.
- Participate in system architecture discussions and assist in defining software requirements and interface specifications.
- Conduct unit testing, integration testing, and performance validation of embedded software.
- Implement secure coding practices and support cyber-hardened embedded software designs.
- Create and maintain technical documentation including software design documentation, interface control documents (ICDs), test procedures, and user guides.
- Participate in Agile development activities including sprint planning, technical reviews, and code walkthroughs.
- Support integration, troubleshooting, and defect resolution for fielded systems.
- Other duties as assigned.
Requirements
- A Bachelor of Science (BS) degree from an accredited college or university in an engineering, scientific, or technical discipline.
- Six (6) years of professional technical experience, which includes at least four (4) years of specialized experience performing computer hardware engineering, software design, coding and compilation of code; computer or software requirements, management, computer systems or software integration; and utilizing systems engineering software tools.
- Strong experience developing embedded software in C and/or C++.
- Experience developing software for Linux-based embedded systems or embedded SoC platforms.
- Experience with embedded software development targeting ARM processors, embedded Linux, or heterogeneous processing architectures.
- Experience integrating software with custom hardware and FPGA-based systems.
- Understanding of DMA architectures and high-speed data movement.
- Knowledge of memory management, cache coherency, and efficient memory utilization in embedded systems.
- Experience developing multithreaded software using C++, POSIX threads, synchronization primitives, and real-time processing techniques.
- Strong understanding of real-time software constraints, latency optimization, and deterministic processing.
- Experience working with debugging tools such as JTAG, SWD, oscilloscopes, logic analyzers, serial interfaces, or similar embedded development tools.
- Knowledge of embedded communication protocols such as UART, SPI, I2C, Ethernet, CAN, or similar.
- Familiarity with version control systems (Git preferred).
- Ability to analyze technical problems and produce reliable solutions under schedule constraints.
- Strong written and verbal communication skills.
Preferred Qualifications- 3+ years of experience targeting Xilinx/AMD Zynq or Nvidia Jetson platforms running Software Defined Radio (SDR) applications
- Experience with RTOS environments (FreeRTOS, VxWorks, QNX, RTEMS, etc.).
- Experience with ARM Cortex processors or similar embedded architectures.
- Familiarity with Python for test automation and scripting.
- Experience with embedded security, trusted computing, or secure boot.
- Background in DoD, Navy systems, or safety-critical applications.
- Experience with modeling tools, interface definition, or hardware simulation.
SECURITY CLEARANCE REQUIREMENTS: Must be able to obtain and maintain security clearance at the Secret level. US Citizenship is a requirement for Secret clearance at this location.
Physical Demands:- Must be able to lift up to 15 pounds
- Must be able to stand and walk for prolonged amounts of time
- Must be able to twist, bend, and squat periodically