Software Engineer, Document Databases

    • Stripe
  • Posted 53 days ago | Updated 3 hours ago

Overview

On Site
Full Time

Skills

Internet
Real-time
User experience
Distributed computing
Use cases
Customer experience
Capacity management
Database
Finance
Startups
Payments
GDP
MongoDB
Data
Scalability
Management
IMPACT
Design
eXist
Debugging
IDEA
Servers
Unix
Shell
Metrics
Software development
Ruby
Scala
Java
Recruiting
Value engineering
Golang
MySQL
Apache Kafka
Collaboration

Job Details

Who we are
About Stripe

Stripe is a financial infrastructure platform for businesses. Millions of companies-from the world's largest enterprises to the most ambitious startups-use Stripe to accept payments, grow their revenue, and accelerate new business opportunities. Our mission is to increase the GDP of the internet, and we have a staggering amount of work ahead. That means you have an unprecedented opportunity to put the global economy within everyone's reach while doing the most important work of your career.
About the team

As part of the Document Databases team, we provide a tier-0 real-time database infrastructure based on MongoDB to enable all of Stripe's infrastructure. We store nearly all of Stripe's online data and have strict requirements for security, durability, availability, latency, and scalability. We have a huge responsibility as we contribute to Stripe's overall user experience.

Our mission is to provide a simple, secure, reliable, scalable, and performant document database as a service to enable teams at Stripe. We run a massive fleet of databases and a large-scale distributed system to manage the fleet. We are growing very fast which is challenging us to rethink our assumptions.
What you'll do

We are building the next generation of document-based database infrastructure to enable the next phase of Stripe's growth. We are looking for seasoned engineers who thrive at solving hard problems in distributed systems and databases. The ideal candidate is excited about database technology, eager to solve challenging distributed systems problems, and to partner with other Stripe engineering teams to establish empathy and understand their use-cases. This is a great opportunity to have tremendous impact across Stripe.
Responsibilities
  • Design, build, and maintain the core database infrastructure used by all of Stripe's engineering teams
  • Solve complicated problems that only exist at very high scale
  • Debug production issues across services and levels of the stack
  • Plan for the growth of Stripe's database platform infrastructure
  • Develop tooling and automate processes to provide a resilient and flexible platform for other engineers
  • Build a great customer experience for people using your infrastructure
  • To get a concrete idea of what projects you might work on here, see the "Projects you could work on" section
Projects You Could Work On
  • Build observability and tooling to automate the management of thousands of database servers
  • Design and build data sharding mechanisms and infrastructure to enable Stripe's growth over the next 10 years
  • Implement dynamic capacity management and rate limiting infrastructure to keep systems healthy during 10x load events
  • Create tools and APIs that engineers love to use to understand the performance of and optimize their database queries


Who you are

We're looking for someone who meets the minimum requirements to be considered for the role. If you meet these requirements, you are encouraged to apply. The preferred qualifications are a bonus, not a requirement.
  • Thinks in systems: their edge cases, failure modes, and life cycles
  • Knows their way around a Unix shell
  • Can debug complex problems in a distributed system
  • Focuses on the needs of our users, both internal and external
  • Holds yourself and others to a high bar when working with production
  • Uses a metrics driven approach and can make informed decisions using data
  • Are able to write high quality code in a programming language (e.g. Ruby, Scala, Go, Java)

We have a ton of important work to do, which is why we're hiring! Our projects are of course changing all the time, but here are a few projects either that we've done in the past or are upcoming, so you can get an idea of the types of work we do. Technologies we use include: Golang, Ruby, MongoDB, MySQL, Vitess, Envoy, Kafka, and others.

Hybrid work at Stripe
Office-assigned Stripes spend at least 50% of the time in a given month in their local office or with users. This hits a balance between bringing people together for in-person collaboration and learning from each other, while supporting flexibility about how to do this in a way that makes sense for individuals and their teams.