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.
Stand Out From the Crowd
Upload your resume and get instant feedback on how well it matches this job.
Job Type
Full-time
Career Level
Senior