Sr Software Engineer, Databases at Spire Global
Luxembourg / Glasgow, GB

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.

Job Description:

We are looking for a senior engineer to help build world-class data-centric products that solve industry and customer problems. This is an engineer who has the experience with programming, architecture, databases, and drive we need to help us relentlessly push the boundaries of an entire global industry. The successful candidate will have the opportunity to contribute to multiple areas in the team and will be collaborating with the product team to align the engineering roadmap with business goals. This is a software development role; your job will be to build products that drive customer value. This is also a specialist role; you will be the on-team expert in databases, data modelling, and data storage in both OLTP and OLAP.

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!

Responsibilities of your role:

  • Working with a team to design and deploy web applications, services and customer facing and customer centric data products
  • Design data intensive services and their supporting databases
  • Work with GIS data
  • Design applications that work with Event Sourcing, Feature stores, and other data models.
  • Have the expertise in Databases to know which trade-offs to make for which application and how to support your choices. Work with PostgreSQL, Aurora, Redis and other database technologies
  • Develop and deploy distributed applications using Go and gRPC in AWS
  • Develop in multiple languages, at least Go, python and JVM targeting Apache Beam
  • Work in AWS and GCP using infrastructure-as-code
  • Work closely with Product management and the Engineering Lead to define and enhance customer-centric products and applications
  • Work in an agile process, ensuring process is healthy, and reliable methods are being used
  • Mentor and educate the team on database technologies
  • Being on call

 Basic qualifications:

  • Professional experience and expertise in at least one programming language
  • 5+ years of practical and applicable programming experience
  • Proven track record meeting SLAs within a production environment

 Preferred qualifications:

  • Have familiarity with tools and techniques in distributed systems and with handling large volumes of streaming data: queues, RPCs, serialization, data versioning
  • Have an in-depth knowledge of Databases, trade-offs between technologies
  • Have in­-depth knowledge of API design principles and best practices, caching strategies, and designing for resiliency and scalability
  • Building fault tolerant distributed systems in environments with intermittent and high-latency connectivity
  • Extensive experience supporting in production systems, including triaging and debugging
  • Experience building stable, customer-oriented software products and the processes and tools used to ensure reliability, such as CI/CD, Unit Testing, integration testing, monitoring etc.
  • Polyglot programming, with strong skills in at least one programming language, preferably Go, and professional experience and comfort in at least one other language, preferably Python or JVM (Java, Kotlin, Scala etc). It is preferable to have experience programming with multiple paradigms of programming, such as OOP, functional, imperative, etc.
  • Ability to operate in an environment where the team operates its own infrastructure and deployments through Terraform, Kubernetes, Nomad and similar technologies
  • Experience using stream processing tools like Kafka or Beam
  • Experience with Linux and POSIX environments in production
  • Displays strong writing skills and the ability to communicate and present arguments and recommendations via the written word (i.e. writing)