Software Engineer, Scheduling at Spire
San Francisco, CA, US | Luxembourg

 

Spire Global is a 150 person space data company founded in 2012. It consists of two engineering teams:

 

The Space Program team, which produces a firehose of sensor data from one of the world's largest satellite and ground station constellations, designed and operated in house. This team includes the infrastructure group, which develops the Constellation Data Pipeline software.

 

The Data Products team, which develops API-based products that deliver insights into weather, aircraft activity, maritime activity, and more based on the sensor data firehose.

 

The company owns the entire stack from custom hardware to customer APIs. We are hiring at several levels including Staff Engineer, Sr. Staff Engineer and Principal Engineer.

 

What we offer:

 

Contribute to data products that have a strong social impact: weather monitoring, ship and aircraft tracking, and more.

Join a team that is unusually deep and broad: backend web services, distributed and embedded systems, electrical and mechanical engineering, RF, DSP, AI/ML, etc.

It’s a space program. Write code that runs on the ground and in orbit.

Our San Francisco office offers a great environment for doing technical work.

You get to work on technical problems that are different from your average web app.

 

Your first mission:

 

As a member of Spire's infrastructure team, your first mission will be to work on our communications and instrument scheduler:

 

Scheduling ground and space assets to meet Product objectives set by the satellite operations team

Modeling each satellite’s thermal and power characteristics based on previous schedules and telemetry

Exposing configuration parameters for the scheduling goal function to the satellite operations team including latency, volume, geographic distribution of instrument readings, and then

Generating an optimal schedule given goal function configuration: fixed goals like even distribution of spacecraft in the same orbit, satellite constraints (hardware capabilities, drag model, power model, thermal model, etc), groundstation constraints (technical capabilities, obscura maps), and legal constraints

 

Qualifications / Experience:

 

Have good taste: see the big patterns and instinctively know the right way to do things.

At least 4 years software development experience.

Domain flexibility, good communication skills, and preference for simple, robust solutions.

Experience with interpreted languages (Python)

Experience with distributed systems.

Strong understanding of algorithms and data structures.

 

Bonus points:

 

Experience with system languages (such as C, C++, Go).

 

About the team you'd be joining:

 

The Space Program Infrastructure team is the connecting point for all our hardware and software. We interface with most teams: the product team, the satellite operations team, the instrument teams, and the satellite bus and ground station teams. You'll be playing a critical role in making sure all the pieces work well together. The team's responsibilities include:

 

Pipeline Infrastructure:

 

Satellite software

Satellite side control daemon for all spacecraft subsystems

Fault detection isolation and recovery functionality

Groundstation software

Satellite tracking

Operating software designed radio (SDR) system

Cloud

Distributed logging & monitoring

Timeseries telemetry warehousing

Payload data warehousing

Configuration management system

Protocols

Satellite-ground communications protocol

Developer tooling

BI/alerting infrastructure (Apache Zeppelin is the default tool)

Build and deploy systems for ground and space software

 

Pipeline features:

 

Scheduling

Satellites and ground stations

Ground-space communications

Syncing of schedules 

Syncing of configurations

Downlinking of data

Up and downlinking of data

Spacecraft data acquisition

Data from GPS-RO instrument

Data from AIS instrument

Data from ADS-B instrument

etc.