Software Engineer , Relational Databases

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

The relational databases team has the mission to build a distributed, scale-out, highly resilient data storage platform to power all of Stripe’s new business applications. We are building this data service to meet Stripe’s reliability bar, while providing a distinct competitive advantage in application development velocity. The service will provide best in class durability, availability and performance to the applications. This is a high velocity, high impact initiative that is crucial to Stripe’s growth and success.  We are looking for engineers and technical leaders who are excited about reliability at scale and are looking to solve challenging distributed systems problems. 

What you’ll do

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 that are in progress or that we’ve done in the past, so you can get an idea of the types of work we do. Technologies we use include: AWS Aurora, PostgreSQL, ETCD, Kafka, Kubernetes, Go, Ruby, Java and others.

Responsibilities

  • Design and build Stripe's relational storage platform: A real-time relational database platform based on AWS Aurora PostgreSQL, one that's replicated globally while also supporting tight availability and latency requirements. We are in the early stages of development. So you would have the opportunity to drive the architecture and direction of this work.
  • Plan and implement multi-region availability for our distributed database infrastructure: All of our systems can and should sustain losing machines, or availability zones or an entire AWS region. Making our systems resistant to failure is a big theme for us. If you like thinking about distributed systems, you might find a good home here!
  • Write easy-to-use and reliable client libraries for our database systems: You’ll write abstractions and provide reasonable defaults around timeouts and error handling for a complex system.
  • Scale our databases to handle 10x the load they can today: You could help us shard them more effectively, upgrade our database engines, and build great tools for developers so they can understand their slow queries more easily.
  • Build a robust control plane to provision, operate, and manage hundreds of  clusters: Our write-heavy workloads combined with our users’ need for reliability make this a unique challenge.

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

  • 8+ years of experience working with online relational database technologies - PostgreSQL/MySQL/Oracle
  • Able to write high quality code in Go or Java
  • Experience with building metrics, alarms and dashboards for relational databases
  • Experience responding quickly, effectively, and blamelessly to production incidents and generally have a high bar for operational excellence
  • Comfortable working with shell tooling, linux, git, and observability tooling
  • A high level of autonomy and responsibility
  • Collaboration with teammates across engineering to provide a wonderful user experience

Preferred qualifications

  • Experience working with AWS Aurora PostgreSQL
  • Experience working with globally replicated, sharded database platforms
  • Proficient in Go

In-office expectations

Office-assigned Stripes in most of our locations are currently expected to spend at least 50% of the time in a given month in their local office or with users. This expectation may vary depending on role, team and location. For example, Stripes in our Bucharest, Romania site have an 80% in-office expectation, and those in Stripe Delivery Center roles in Mexico City, Mexico and Bengalaru, India work 100% from the office. Also, some teams have greater in-office attendance requirements, to appropriately support our users and workflows, which the hiring manager will discuss. This approach helps strike a balance between bringing people together for in-person collaboration and learning from each other, while supporting flexibility when possible.

Pay and benefits

Stripe does not yet include pay ranges in job postings in every country. Stripe strongly values pay transparency and is working toward pay transparency globally.

Office locations

Bengaluru

Team

Infrastructure & Corporate Tech

Job type

Full time

We look forward to hearing from you

At Stripe, we're looking for people with passion, grit, and integrity. You're encouraged to apply even if your experience doesn't precisely match the job description. Your skills and passion will stand out—and set you apart—especially if your career has taken some extraordinary twists and turns. At Stripe, we welcome diverse perspectives and people who think rigorously and aren't afraid to challenge assumptions. Join us.