Junior Software Engineer - Maritime at Spire
Luxembourg

About Spire

In the time it takes you to read this job description our low earth orbit nanosatellites would have passed overhead at least three times traveling at around 8km a second. Onboard the satellites are collecting and downloading radio signals from over 80 thousand vessels that are moving 90% of the world's cargo around the globe.

The Maritime team at Spire is focused on taking that data and impacting the world in positive ways.

Description

As a software engineer at Spire on our Maritime team, you’ll move fast, iterate quickly, and solve global problems. You might be the right fit if you love exciting technical challenges, hate getting bored, and enjoy collaborating with engineers who are changing the way the world thinks about space, satellites, and data. You will join a team responsible for the design and maintenance of our ground-side data processing pipeline, from ingesting satellite data all the way through designing and scaling the APIs that our customers depend on for global data insights.

We care a lot about the quality and expressiveness of our code. We think TDD is great, and we’re doing Continuous Deployment to our staging environments and working our way to make that true for production as well. We know that DevOps is a culture and it’s a big part of how we work. We recognize that professional growth comes from operating at the boundaries of our comfort zones, and we encourage and support each other through code reviews, pair programming, and lots of communication. If this sounds like your cup of tea, we’d love to hear from you!

Your responsibilities will include:

  • Working as part of a small team to design and deploy web applications, services, and data streaming/processing systems
  • Designing and implementing robust and scalable APIs
  • Developing and deploying distributed applications on AWS
  • Working closely with Product Management to define and enhance customer-facing products and applications
  • Helping to lead the design, implementation, and deployment of new features

Ideally, you:

  • Have 2+ years of experience programming REST APIs and backend systems in Python
  • Have 5+ years of practical programming experience
  • Write automated unit and integration tests, ideally in a TDD fashion
  • Have in­-depth knowledge of API design principles and best practices, caching strategies, and designing for resiliency and scalability
  • Have familiarity with tools and techniques in distributed systems and handling large volumes of streaming data: queues, RPCs, serialization, versioning, eventual consistency, exactly/at-­most/at­-least-once message semantics
  • Are comfortable with full-stack web development tasks, from designing and implementing UIs all the way down through domain modeling, data processing, and database tuning
  • Know how to develop in and deploy to POSIX environments
  • Enjoy working as part of a team, but can also take on and complete tasks on your own
  • Have worked within distributed teams & multicultural environments

As a bonus, you also have experience with some or all of the points below:

  • Building faul­t tolerant distributed systems in environments with intermittent and high­-latency connectivity
  • Working with relational and non­ relational database theory and practice e.g. PostgresQL, Redis, ORMs, consistent hashing
  • Displays strong writing skills and the ability to communicate and present arguments and recommendations via the written word (i.e. writing)