
Embedded Software Engineer
Embedded Software Engineer
Who we are:
EOI Space is developing and deploying a constellation of satellites in Very Low Earth Orbit (VLEO) to provide ultra-high-resolution Earth imagery. We aim to deliver timely and actionable data for commercial and defense applications.
We're working toward a number of industry firsts, and that takes a team willing to dig into hard problems, get hands-on, and work well together. EOI Space is looking for an Embedded Software Engineer to build the software and firmware that runs on our satellites: embedded Linux on the payload processor, bare-metal control loops on the microcontrollers, and the FPGA logic underneath. We care more about how you think and how fast you learn than whether you've already used our exact toolchain, so deep experience across this stack is great, but solid embedded fundamentals and a real willingness to learn the rest will get our attention too.
What you will do:
You will design, write, and test the flight software and firmware for our next-generation spacecraft. You will work at the boundary between hardware and software: sitting with electrical engineers during board bring-up, reading schematics and datasheets, and tracing problems down to the register level when needed. You will collaborate across systems engineering, manufacturing, and test to deliver flight-ready software for satellite integration. This is a hands-on role in a lean and collaborative environment, and you will own meaningful pieces of the vehicle early.
Responsibilities:
- Develop and maintain embedded Linux software on Xilinx Zynq UltraScale+ platforms, including Yocto layers and recipes, BSP and device tree work, kernel drivers, and userspace applications
- Write and test bare-metal firmware for TI C2000 microcontrollers, including real-time control loops, peripheral configuration, and communications interfaces
- Develop and verify FPGA logic in Verilog for Xilinx and Microchip devices, including the interfaces between programmable logic and the processing system
- Bring up new hardware alongside our electrical engineers, including first boot, driver bring-up, and debugging with JTAG, oscilloscopes, and logic analyzers
- Build and improve the tooling that surrounds flight software, including build systems, version control practices, hardware-in-the-loop test benches, and automated regression
- Collaborate with systems, electrical, mechanical, and test engineers to ensure software and hardware come together cleanly
- Lead root cause investigations and system-level troubleshooting in both lab and on-orbit environments
- Develop and maintain technical documentation, including interface control documents (ICDs), register maps, software design descriptions, and test plans
- Support integration, environmental test, and launch campaigns, and help operate the software you wrote once it is on orbit
Required Qualifications:
- Bachelor's Electrical Engineering, Computer Science or equivalent hands-on experience
- 4-6 years of hands-on embedded software or firmware development. A sharp engineer earlier in their career who learns quickly will be considered alongside candidates with a decade of experience
- Strong C, and C++ where it fits, in resource-constrained and real-time environments
- Comfort working directly against hardware: reading schematics and datasheets, using JTAG debuggers, oscilloscopes, and logic analyzers, and reasoning about what the silicon is actually doing
- Experience with, or a demonstrated ability and willingness to ramp quickly on, one or more of: Zynq UltraScale+ with Yocto-based embedded Linux, TI C2000 bare-metal firmware, and Verilog FPGA development for Xilinx and Microchip parts
- Comfortable with ambiguity. Much of this work is new, specifications are incomplete, and the right answer is often found by building something and testing it
- Strong problem-solving and communication skills, with the ability to convey technical information clearly to both technical and non-technical stakeholders
- Collaborative team player who thrives in a fast-paced, agile environment
- Authorized to work as a U.S. Person
Preferred Qualifications:
- Zephyr RTOS, or other RTOS experience such as FreeRTOS
- Other microcontroller families, including ARM Cortex-M, STM32, MSP430, or similar
- Yocto and OpenEmbedded layer authoring, U-Boot, and Linux device driver development
- Embedded communications and high-speed interfaces: AXI, SPI, I2C, UART, CAN, Ethernet, SpaceWire
- Real-time power or motor control firmware, including PWM generation, ADC sequencing, and closed-loop control
- Space, avionics, or other high-reliability software experience, including fault detection, isolation, and recovery (FDIR) and radiation-tolerant design practices
- Python for test automation, ground software, and data analysis
- Timing analysis, constraint writing, and simulation for FPGA designs
Compensation:
The salary range for this role is $133,000-$187,000 per year, depending on previous experience. Pay ranges are determined by role, level, location, and alignment with market data. Individual pay will be determined on a case-by-case basis and may vary based on the following considerations: interviews and an assessment of several factors that are unique to each candidate, job-related skills, relevant education and experience, certifications, abilities of the candidate, and internal equity.
Work Location & Schedule:
- This role is based in Lafayette, CO.
- Full-time.
Benefits:
The health and safety of our employees and their families come first. In addition to competitive salary and equity, we offer medical, dental, vision, disability and life insurance coverage, unlimited paid time off, 12 paid holidays, parental leave, and 401K. The Company reserves the right to modify or change these benefits at any time.
The duties and responsibilities of this role are subject to change based on business needs.
Apply for this job
*
indicates a required field