We are looking for a Senior Software Engineer – Embedded/SoC to develop and integrate low-level processor and SoC software for safety-critical avionics applications. The role focuses on embedded C/C++, ARM architecture, bare-metal software, BSP/device drivers, multicore/SMP systems, processor bring-up, bootloaders, and board-level interfaces.
The ideal candidate will have strong experience working directly with target hardware and developing software for aviation or other safety-critical environments. Experience with NXP S32G2, Layerscape/LS1046A, DO-178C, DO-254, TSN, PCIe, AFDX, ARINC-429, and MIL-STD-1553B is highly valued.
Key Requirements
- Bachelor’s degree in Computer Engineering, Computer Science, Electrical Engineering, or related field.
- 5+ years of embedded software development experience.
- Strong proficiency in C/C++ with exposure to assembly language.
- Strong experience with ARM processors/architecture and low-level processor software.
- Experience with bare-metal development, BSP, device drivers, bootloaders, and processor/SoC bring-up.
- Experience with multicore/SMP software environments.
- Hands-on experience integrating and testing software directly on target hardware.
- Experience with NXP S32G2 and/or Layerscape/LS1046A is highly preferred.
- Knowledge of safety-critical development standards, particularly DO-178B/C, DO-254, ARP4754, or ISO-26262.
- Experience with avionics communication interfaces such as TSN, PCIe, AFDX, ARINC-429, and MIL-STD-1553B.
- Familiarity with SPI, QSPI, AXI, FPGA/ASIC interfaces, and timing interactions.
- Knowledge of secure boot, TrustZone, isolated execution, and secure communications.
- Experience with Python, ARM DS IDE, and DSTREAM is preferred.
- Strong technical documentation, communication, troubleshooting, and leadership skills.
- Must be able to work onsite in Endicott, NY.
Key Responsibilities
- Develop very low-level processor/SoC software for safety-critical avionics systems.
- Configure, enable, and develop SoC features, particularly NXP S32G2 and Layerscape/LS1046A.
- Perform processor and board bring-up, including BSP, bootloader, and low-level device-driver development.
- Design and implement bare-metal SMP and multicore processor frameworks.
- Analyze and mitigate multicore interference risks to ensure deterministic system behavior.
- Develop and execute SoC benchmarking and fit-for-purpose evaluation procedures.
- Develop and test communication capabilities involving TSN, PCIe, AFDX, ARINC-429, and other board-level interfaces.
- Create DO-178C Software Level A compliant test environments and methodologies.
- Perform complex software analyses including WCET, DCCC, and multicore performance/interference analysis.
- Support FPGA/ASIC interfaces, timing interactions, and hardware/software integration.
- Develop software architecture and design documentation for complex embedded systems.
- Integrate and test software directly on target hardware and troubleshoot low-level issues.
- Evaluate SoC suitability and generate technical reports for safety-critical avionics use cases.
- Collaborate with software, hardware, FPGA, and systems engineering teams.
- Proactively communicate technical progress, issues, risks, and solutions to project stakeholders.