Flight Software Engineer

PlanetSan Francisco, CA
2dHybrid

About The Position

Welcome to Planet. We believe in using space to help life on Earth. Planet designs, builds, and operates the largest constellation of imaging satellites in history. This constellation delivers an unprecedented dataset of empirical information via a revolutionary cloud-based platform to authoritative figures in commercial, environmental, and humanitarian sectors. We are both a space company and data company all rolled into one. Customers and users across the globe use Planet's data to develop new technologies, drive revenue, power research, and solve our world’s toughest obstacles. As we control every component of hardware design, manufacturing, data processing, and software engineering, our office is a truly inspiring mix of experts from a variety of domains. We have a people-centric approach toward culture and community and we strive to iterate in a way that puts our team members first and prepares our company for growth. Join Planet and be a part of our mission to change the way people see the world. Planet is a global company with employees working remotely world wide and joining us from offices in San Francisco, Washington DC, Germany, Austria, Slovenia, and The Netherlands. About the Role: Planet’s Flight Software Team is responsible for all of the embedded software that powers our diverse fleet of Superdove, Skysat, Pelican, and Tanager satellites. The software we build and maintain deploys to orbiting spacecraft hundreds of kilometers away and spans many functional verticals, including navigation and avionics, payload control, radio software, onboard autonomy, and supporting tooling and infrastructure. We collaborate closely with many other teams at Planet, including the Payload, EE, RF, Ground Software, and Missions teams, to deliver reliable and innovative solutions that ensure the success of Planet’s missions. As a Flight Software Engineer at Planet, you will be part of a team responsible for the definition, development, maintenance, and optimization of this critical software. Our mission is to create seamless, intuitive systems that enable spacecraft operators, analysts, and engineers at Planet to interact reliably with our assets in space. We strive to minimize operational burden and automate all aspects of satellite operations. In this role, you will solve a wide range of engineering challenges in a fast-paced environment. You will help specify and implement new APIs, refine existing ones, and evaluate and select appropriate software technologies for given use cases. You will support root cause analyses which may cross software components as well as hardware domains; at times the target you’re debugging will be hundreds of kilometers away with limited bandwidth and periodic windows for communication. You will help design and deploy critical infrastructure, ensuring it meets operational demands and scales effectively to support Planet’s evolving missions. Finally, you will collaborate with operators and other key stakeholders to iteratively refine these systems, ensuring they meet today’s needs while advancing Planet’s broader mission to deliver insights that change how we see the world. This is a full-time, hybrid role which will require you to work from our San Francisco office 3 days per week.

Requirements

  • Bachelors’ in Computer Science, Computer Engineering, Electrical Engineering, or a related field
  • Excellent communication skills, including ability to explain technical concepts to a variety of stakeholders such as engineers, satellite operators, and engineering project managers
  • 2+ years of programming experience (professional, academic, F/OSS community, or self-directed) in at least one of the following language and environments: C/C++ on Linux, Python on Linux/MacOS/Windows, C/C++ for embedded systems (RTOS or bare-metal), Go/Rust/C# on Linux/MacOS/Windows
  • Experience using version control systems such as Git, SVN, Mercurial

Nice To Haves

  • Experience in multiple programming languages and operating systems.
  • Linux/Unix systems programming experience such as memory-mapped files, network protocol development, process memory management, etc.
  • Experience with RTOS and bare metal microprocessor development on platforms like STM32
  • Experience writing software for FPGA softcores, RISC-V or otherwise
  • Experience working on technically interdisciplinary teams or projects
  • Experience managing work using ticket systems such as Jira, Github/Gitlab Issues, or similar
  • Knowledge of containerization technologies like Docker/lxc

Responsibilities

  • Conduct root cause investigations and develop code changes to address defects in RTOS and Linux-based application code.
  • Collaborate closely with senior engineers to design and implement software components which fulfill new satellite functionalities.
  • Implement features in existing codebases to characterize and improve fleet performance and robustness.
  • Collaborate closely with senior engineers to define specifications, develop component API’s, and write functional tests and documentation.

Benefits

  • Comprehensive Medical, Dental, and Vision plans
  • Health Savings Account (HSA) with a company contribution
  • Generous Paid Time Off in addition to holidays and company-wide days off
  • 16 Weeks of Paid Parental Leave
  • Wellness Program and Employee Assistance Program (EAP)
  • Home Office Reimbursement
  • Monthly Phone and Internet Reimbursement
  • Tuition Reimbursement and access to LinkedIn Learning
  • Equity
  • Commuter Benefits (if local to an office)
  • Volunteering Paid Time Off
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service