Software Engineer, Document Databases
Stripe (View all Jobs)
San Francisco, Seattle, Toronto, USA (Remote) , Canada (Remote)
1. Programming/debugging phone screen 2. On-site with your own laptop/setup and full access to internet. Interviews include systems design, 45 min practical coding question, integrating an API exercise, debugging, and talking with hiring manager about team alignment.
Programming Languages Mentioned
Java, Golang, Ruby, SQL
Who we are
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.
You will be empowered to operate autonomously, and are counted on to help drive Stripe forward. We have engineering teams in Seattle, San Francisco, Toronto, and many other locations in the US and Canada. You can also work remotely from any location in the US and Canada.
- 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
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.
- 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
Please mention No Whiteboard if you apply!
I'm a one-man team looking to improve tech interviews, and could use any support! 😄