Software Engineer, Document Databases

    • Stripe
  • Posted 30 days ago | Updated 8 hours ago

Overview

On Site
Full Time

Skills

Internet
Real-time
User experience
Distributed computing
Use cases
Customer experience
Data migration
Software development
Operational excellence
Database
Finance
Startups
Payments
GDP
MongoDB
Data
Scalability
Management
IMPACT
Design
eXist
Debugging
IDEA
Recruiting
Value engineering
Golang
Ruby
Java
Routing
RADIUS
Scala
Metrics
Dashboard
Unix
Shell
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 motivated 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

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, Java, MongoDB and others.
  • Design and build a comprehensive live data migration solution to allow data reorganization at MongoDB, achieving better reliability, scalability and cost-efficiency, and enabling new use cases.
  • Design and build the vertical and horizontal scaling solutions for MongoDB to empower Stripe and its customers' ever growing business needs.
  • Design and build data routing and placement strategies and infrastructure to eliminate scalability bottlenecks and reduce reliability blast radius of MongoDB.
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.
Minimum requirements
  • 1.5+ years of full-time professional experience in a software development role.
  • Experience in independently developing and driving mid-size projects.
  • Are able to write high quality code in a programming language (e.g. Ruby, Scala, Go, Java)
  • Experience with operational excellence and a deep understanding of metrics, alarms and dashboard
  • Experience in developing, maintaining and debugging distributed systems.
Preferred qualifications
  • 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
  • Experience with MongoDB or document-based databases

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.