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.
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
Have 2+ years of experience programming REST APIs and backend systems in Python
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
As a bonus, you also have experience with some or all of the points below:
Writing automated unit and integration tests, ideally in a TDD fashion
Have worked within distributed teams & multicultural environments
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
Working with relational and non relational database theory and practice e.g. PostgresQL, Redis, ORMs, consistent hashing
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
Displays strong writing skills and the ability to communicate and present arguments and recommendations via the written word (i.e. writing)