Lead Embedded Software Engineer
$120,000 - $180,000
Denver, Colorado
(Hybrid)
My client builds, and operates a diverse range of small satellite systems supporting space-based turnkey missions for several business applications, including earth observation, communications, in-orbit demonstrations, risk reduction opportunities, in addition to various science and exploration applications.
Position Summary:
Design, write, test, document, debug, bring up, and deploy software to microcontrollers and microprocessors for spacecraft subsystems. Contribute to mission schedule definition and keep the project on track.
Note: This position requires access to export-controlled commodities, technical data, technology, software, and services. U.S. citizenship, U.S. legal permanent resident status, or protected person status under 22 CFR §120.15 and 8 U.S.C. § 1324b(a)(3) is required.
Primary Duties and Responsibilities:
- Quickly learn our existing spacecraft system architecture and adapt the software to new mission requirements.
- Estimate workload and duration of high-level tasks, and work with colleagues to share effort.
- Work with customers, program managers, and system engineers to ensure the project stays within scope.
- Closely support customers with the integration of their payload into our bus.
- Oversee the entire software development lifecycle from conception to deployment.
- Be a forcing function to gather necessary information and resources from stakeholders.
- Work with Electrical, RF, and Software engineers to implement new subsystems or design revisions of embedded computers that communicate with core flight software.
- Maintain and enhance existing embedded software.
- Write C and Python drivers for integrated circuits I2C, SPI, UART or other interfaces based on manufacture datasheets.
- Work in the lab to test and debug hardware, peripherals, and payloads.
- Create board support packages (BSP) for internal custom designs.
- Write interface control documents (ICD) or Application Programming interfaces (API) and core flight software drivers for the embedded systems.
- Gain a system level understanding of their spacecrafts.
- Occasionally fill in for higher level software tasks.
Minimum Qualifications:
- At least 5 years of professional experience, ideally in aerospace or in part a leadership or product ownership position.
- Proven experience in leading and managing software projects.
- Ability to work effectively in a collaborative team environment.
- BS in Software Engineering, Computer Science, or related field.
- Proficient in C or C++ programming. Comfort with Python.
- Experience with Embedded-C or RTOS: threads, interrupts, concurrency, HAL.
- Experience developing hardware drivers for SPI, UART, and I2C peripherals.
- Comfortable with command-line environments (Linux) and scripting.
- Ability to work independently with minimal guidance.
- Familiarity with network abstraction layers.
- Excellent written and verbal communications skills.
Preferred Qualifications:
- Experience with building systems like Yocto, CMake, using device trees, linking libraries, etc.
- Experience with Zephyr RTOS or the MSP430 microcontroller
- Experience with Linux kernel module driver development. Networking is a plus.
- Xilinx Zynq/FPGA knowledge and software toolchain
- General hardware stills (reading schematics, probing with instrumentation, etc.)
- Familiarity with GNU Radio or Software Defined Radios (SDR)
- Familiarity with HAM radio, RF Engineering or low-level protocols
Salary:
- $120,000 - $180,000 and employee stock options, based on experience.