Working on our satellites offers software developers a chance to interact with the fullest of stacks, and this position can be customized to fit a variety of experiences and skill sets. As a Spacecraft Software Developer you will be working on the satellites and their terrestrial communication relays. You will have the opportunity to work on various parts of the stack including:
Core systems: Design and implement improvements to our onboard power distribution, computation, and comm systems to enhance functionality, usability, robustness, performance, and integrate new technology
Communications and radio: Leverage innovations in radio design by implementing new communication protocols and integrating new radio hardware
Ground systems: Update ground systems to support changes over multiple generations of satellites
Satellite application platform: Build frameworks for the automated execution of work on the satellite to meet customer requirements or changing operational needs
Candidates must have experience with the following:
Extensive experience with C: interrupt handlers, concurrency, etc.
Strong Linux skills: extensive CLI/scripting familiarity, kernel mods, drivers, etc.
Experience with sensor integration over I2C, SPI, CAN, UART, etc.
Scripting Familiarity: Python, Ruby, Bash, etc.
Strong candidates will also possess skills in one or more of the following areas:
General hardware skills (EE, PCB, PSI)
Networking (ISO, IP, protocol design)
Domain Knowledge (ADCS)
Embedded OS (FreeRTOS, embedded Linux)
FPGA expertise (verilog, VHDL)
RF programming (SDR, USRP)