Array Labs is building a distributed radar imaging constellation to power the first accurate, real-time 3D map of the world.
The Satellite Software Team is responsible for designing the software that powers all aspects of our mission. The core focus areas for the Satellite Software Team include mission software (radar data collection, storage, processing, and downlink), radio communications, satellite/flight control, telemetry, and embedded firmware. Array Labs is seeking Embedded Software engineers with experience in low-level systems software, device driver programming, board support package development, and experience shipping hardware/software products to be part of our core Software Team.
The position requires working closely with cross-functional teams as well as external suppliers to develop products that run on our custom low-power space computing platform. As an early member of this team, you will have the opportunity to implement components at all layers including kernel, resource allocation, memory management, interrupt handling, synchronization primitives, power management, and high-bandwidth I/O handling.
Responsibilities:
- Develop highly reliable and available software systems for our low-latency, high-capacity radar sensor, communication system, and flight control system.
- Board bring-up of a Linux-based platform that integrates radar sensors, flight computers, RF transceivers, and navigation sensors.
- Work collaboratively with signal processing, hardware, and GNC engineers to build performant and reliable embedded software for our payload.
- Rapid prototyping and evaluation of key architectural choices and design constraints.
- Implement high-efficiency data movement between our radar sensor, FPGA fabric, microprocessors, networking interfaces, and storage peripherals.
- Develop safety-critical system-level software for hardware components and develop FDIR (fault detection, isolation, and recovery) algorithms for mission-critical systems.
- Debug complex, system-level, multi-component issues that typically span across multiple layers from kernel to driver to application.
Basic Qualifications:
- Bachelor’s degree in Computer Engineering, Computer Science, Electrical Engineering or related field.
- 11+ years of embedded software experience.
- Good understanding of Embedded Systems and OS concepts (Linux/RTOS).
- Experience in one or more of the following areas: BSP/Board Support Package, Operating Systems, RTOS, Bootloader, Power Management, Linux, MCU (Microcontroller).
- Excellent teamwork and communication skills.
- Learns new concepts rapidly, completely, and in a self-directed manner.
- High levels of self-motivation and personal accountability.
- Ability to work in a fast-paced environment under significant time constraints.
- Experience programming in C or C++ in embedded environments and in Python to support development, automation, and testing.
Preferred Skills and Experience:
- Master’s degree in Computer Engineering, Computer Science, Electrical Engineering or related field.
- Experience with aerospace or space projects (flight control/GNC).
- Experience in the automotive, medical robotics, or similar regulated embedded device industry with a focus on safety and high availability.
- Good understanding of multi-threaded embedded system concepts including tasks, priorities, and deadlocks.
- Embedded software debugging experience including clock-level issues, bridges, delays, interrupts, clock gating, and polling using debuggers (Keil, J-Link).
- Experience building software for complex embedded systems or custom SoCs.
- Hands-on coding experience with peripherals with interfaces such as UART, SPI, CSI-2, I2C, GPIO, USB, and PCIE.
- Experience developing with modern Real-Time Operating Systems (FreeRTOS, Zephyr, ThreadX, VxWorks).
- Experience with embedded software design and debugging of boards with multiple processors (ARM/RISC-V, DSPs, MCUs) and a large array of peripherals using a multitude of interfaces (SPI, UART, GPIO, I2C, Ethernet).
- Experience with a variety of microprocessors (ARM, Nordic, Microchip, STM, etc.) and hardware modules.
- Working knowledge of networking stack (Ethernet, TCP/IP suite) desired.
- Ability to read and interpret schematic diagrams.
ITAR Requirements:
- To conform to U.S. Government space technology export regulations, including the International Traffic in Arms Regulations (ITAR), you must be a U.S. citizen, lawful permanent resident of the U.S., protected individual as defined by 8 U.S.C. 1324b(a)(3), or eligible to obtain the required authorizations from the U.S. Department of State.
Equal Opportunity Employer
- Array Labs is an Equal Opportunity Employer. Employment decisions are made on the basis of merit, competence, and job qualifications and will not be influenced in any manner by gender, color, race, ethnicity, national origin, sexual orientation, religion, age, gender identity, veteran status, disability status, marital status, mental or physical disability or any other legally protected status.
Similar Jobs
- View Job
Sr Staff/Principal Embedded Software Engineer
Palo Alto - View Job
Sr Staff/Principal Embedded Software Engineer
Palo Alto - View Job
Sr/Staff Embedded Software Engineer
Palo Alto - View Job
Principal Embedded Software Engineer
Sunnyvale - View Job
Staff Embedded Software Design Engineer
Palo Alto