Application SDK Engineer, Transactional 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

You’ll be on a team that builds and maintains an application development environment for the rest of engineering at Stripe. There is a lot of work to do to make Stripe application engineers’ work easier, and we’d love for you to be part of it. We’re close to the people using our systems, so we constantly get feedback that we can use to make them better. We have a few dozen engineers today spread across several different teams, and you’ll work with other engineers as well as product engineers who use the systems you’re building.

What you’ll do

We’re looking for people with a strong background (or interest!) in application development environments. We’d love to hear from you whether you’re a seasoned database application developer, or whether you’ve just learned you might like working with database application technologies like JDBC and Object Relational Mapping (ORM) techniques. Many of our engineers work remotely, and we’d be happy to talk to you about the possibility of working remote.

Responsibilities

  • Design, build, and maintain the core application development environment used by all of Stripe’s engineering teams
  • Plan for the growth of Stripe’s infrastructure
  • Build a great customer experience for people using your environment

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: JDBC, ORM, MySQL, MongoDB, Consul, Kafka, Kubernetes, Go, Java, and others.

  • Design and build application development interfaces to Stripe's data persistence service: This service is a real-time transactional database, one that's replicated globally while also supporting tight availability and latency requirements. This is greenfield development so you would have the opportunity to drive the architecture and direction of this work.
  • Plan and implement application interface abstractions for multi-region availability for our distributed database infrastructure! All of our systems can sustain losing machines, and making our systems even more 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.
  • Application interfaces for our databases to handle 10x the load they can today. You could help us shard them more effectively and build great tools for developers so they can understand their slow queries more easily. A lot of our database projects are open source.

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

  • Expertise in database client interface, JDBC, SQL and Object Relational Mapping (ORM) technologies
  • Think about systems — their edge cases, failure modes, and life cycles
  • Know your way around a Unix shell
  • Can debug complex problems across the whole stack
  • Focus on the needs of our users, both internal and external
  • Hold yourself and others to a high bar when working with production
  • A metrics driven approach and can make informed decisions using data
  • Are able to write high quality code in a programming language (e.g. Java, Go).
Job Overview