Senior Embedded Software Engineer
PetarLinux / BSP / Platform
Create and maintain PetaLinux projects and BSPs: platform bring-up, image generation, kernel configuration, rootfs customization, and packaging.
Integrate hardware handoff artifacts (e.g., XSC), configure boot chain, and support Linux boot on Zynq UltraScale+ MPSoC platforms.
Author/maintain device tree changes for custom IP/peripherals; debug peripheral enumeration and Linux subsystem integration.
Maintain reproducible builds (Yocto/PetaLinux layers, versioning, build docs, CI hooks as appropriate).
Linux Drivers / Board Bring-up
Support board bring-up and peripheral checkout (GPIO, SPI, UART, Ethernet, DMA, etc.), troubleshooting boot/performance issues.
Implement/modify low-level board support and (as needed) Linux device drivers for custom data paths and control interfaces.
Applications: Control + Data Capture + Recording
Develop user-space applications (C++) to:
Configure/control hardware (register access, SPI/UART devices, GPIO, timing, sensors)
Stream data from the MPSoC to a PC (UDP) for visualization and recording
Record high-rate radar products (I/Q maps, metadata) reliably to SSD with indexing and replay support
Build and maintain host-side tools (Windows or Linux) for capture, verification, file conversion, and integration with downstream processing/UI.
Integration & Test
Create test utilities and automated validation (unit-tests, bring-up scripts, throughput tests, etc.).
Profile and optimize throughput and CPU usage (zero-copy paths where possible, DMA + buffer management, network tuning).
Collaborate across FPGA/EE/SW to diagnose integration issues and propose architecture improvements.
Performs other duties as assigned.