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 teamAs part of the Document Databases team, we provide a tier-0 real-time database infrastructure based on MongoDB to enable all of Stripe’s business and 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 databases 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 doWe are building the next generation of document-based database infrastructure to enable the next phase of Stripe’s growth. We are looking for a Staff engineer who thrives 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 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 Build storage tiering and admission control systems to enforce balance between performance and efficiency Create tools and APIs that engineers love to use to understand the performance of and optimize their database queries Who you areWe’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.
Minimum requirements 10+ years of professional experience in a software development role Proven track record of building large scale, cloud based complex distributed systems; identifying shortcomings and optimization opportunities; and making data driven cost performance tradeoffs to influence design decisions Experience building and operating infrastructure and tools that empower developers/product teams to deliver business value Experience leading and creating strong technical teams that balance operational excellence, collaboration and user needs Experience with operational excellence and a deep understanding of metrics, alarms and dashboards Experience handling critical incidents for production systems Preferred qualifications Experience on building large scale distributed systems in AWS Experience working with Distributed storage services like AWS DynamoDB Experience with C, C++, Go, Ruby or/and Java Proven track record of building large scale, cloud based complex distributed systems; identifying shortcomings and optimization opportunities; and making data driven cost performance tradeoffs to influence design decisionsWe 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.