Senior Software Engineer

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 decision-makers 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 and machine learning-powered analytics to develop new technologies, drive revenue, power research, and solve our world’s toughest challenges.

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 are iterating 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.

The Role:

Planet’s User and Access team is developing systems to better enable, control, and measure access to our global scale imagery. They are responsible for granting access to resources on the platform as well as capturing data to help customers and internal stakeholders better understand usage patterns.

This role will be responsible for the infrastructure and software making out our access, quota metering, authentication and authorization layers controlling access to the Planet platform. Our tech stack is Go, Python, Postgres, BigQuery, Pub/Sub, and Kubernetes running on Google’s Cloud. We believe strongly in engineering resilient software through a solid software engineering process.

The User and Access team is highly distributed and you will thrive in an environment of remote work and asynchronous communication. You’re expected to have strong written communication skills and be able to develop working relationships with coworkers in locations across several North American time zones.

Responsibilities:

  • Build services in Go and Python to provide administration and access control APIs
  • Understand design tradeoffs when designing technical solutions for our user focused stories
  • Write high-quality, maintainable, highly-available, well-documented  production code
  • Evaluate system risks and improve reliability via code, process, documentation, architecture and other improvements
  • Own operation of services by measuring performance, creating alerts, runbooks, and responding to incidents and performance anomalies during on-call rotations

Minimal Qualifications:

  • Experience building services that leverage cloud-based infrastructure and tooling such as AWS or GCP
  • History of working with monitoring tools like SignalFX, New Relic and Graphite (or equivalent)
  • Comfortable with using Docker containers in a production environment
  • Experience with SQL databases (Postgres or MySQL) and NoSQL databases (e.g. Bigtable, Redis, HBase, etc.), and understand when to use each
  • Experience with a large shared codebase and Continuous Integration and Deployment workflows and tooling
  • Solid grasp of database internals. You’ve seen both good and bad indexes on databases and know what questions to ask to distinguish between the two. We expect you’ll have a good idea of how things like indexing, query planning and replication work in your favorite database.
  • Comfortable working in a Linux operational environment. Experience using and troubleshooting networking APIs and other system calls. While this is a software engineering team, we do largely manage our own operations (with the exception of Kubernetes control/worker pools, CI tools and the like), including participating in on-call rotation.
  • Comfortable with distributed systems concepts, reasoning about concurrency and making consistency tradeoffs.

Preferred Qualifications:

  • Experience with user management and access control systems
  • Familiarity with OpenID Connect, OAuth 2.0, and other authentication flows
  • Familiarity with geospatial concepts, and how they are applied in popular open source software like GEOS/GDAL.
  • Experience with containerized build and deployment processes and container orchestration systems like Kubernetes.

 

Education and Experience:

  • Bachelor or Master degree in Information Systems, Computer Science, Engineering or equivalent job-related experience with 4+ years experience as a Software Engineer working on data platforms (batch/stream processing, high-qps and/or large-scale data store services).
  • Excellent interpersonal and communication skills, written and oral

Some press about us:

Our CEO, Will Marshall’s TED Talk

“Tiny Satellites ushering in the New Space Revolution” Bloomberg Businessweek

“The All-Seeing Eye in the Sky video” Bloomberg Businessweek video

“Planet And Rocket Lab Create Mission Patch To Honor Women In Aerospace” —Planet Blog

Join Us:

Planet is headquartered in San Francisco, California, Earth. If you are feeling inspired, check out our website www.planet.com/careers and apply. Be sure to include a cover letter to let us know why you think you’d be a good fit and feel free to mention anyone you have previously worked with at Planet.

We are committed to building a diverse team and encourage applications from people of all backgrounds.

By clicking the “Apply for Job” button, you will likely be redirected to a web page outside of our website. We cannot be held responsible for external sites’ content. Please take reasonable steps to confirm that you’re actually dealing with a company representative, not an impostor.

Apply for this Job