Software Engineer, Distributed Caching Platform, Online Databases
Build the infrastructure powering economic growth
You’ll be on a team that is building a brand new distributed caching platform for the rest of engineering. You’ll make decisions with a significant impact on Stripe. There is a lot of work to do to make Stripe 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 our platform better.
The distributed caching platform is part of the Online Databases organization. The Online Database organization is part of the Foundation (Cloud infrastructure) organization.
As part of the distributed caching platform platform, you will help us build a highly available, secure and scalable in-memory distributed cache for decreasing latency and enabling high performance. But we are not going to stop there! You will help develop solutions and services to support scenarios of machine learning models, publisher/subscriber models, message brokers, session stores, and real-time analytics. You will contribute to developing a whole portfolio and multiple distributed services from scratch for Stripe.
Projects you could work on:
- Achieving 5 9s of availability (which means less than 6 mins of downtime in a year!)
- Supporting the most demanding and high customer impacting Stripe products requiring sub-millisecond latency goals Scaling to hundreds of millions of mission-critical operations per minute to support blazing fast performance
- Creating a secure platform which is PCI compliant along with reliability SLOs on which the rest of storage infrastructure services (Transactional and Document databases) and critical product teams within Stripe (Connect, Accounts, Books, ML exploration, and so on..) can have critical dependency on!
- Own (Design, build, monitor, debug and maintain) the distributed caching infrastructure used by all of Stripe’s engineering teams
- Plan for the hyper growth of Stripe’s infrastructure
- Build a great customer experience for people using your infrastructure by cross-collaborating with multiple product teams
Technologies that you might be working with - Java, Go, Kubernetes, Redis, Memcache, Temporal, and Kafka.
We’re looking for someone who has:
- Expertise in building horizontally scalable, distributed and reliable systems
- Focus on the needs of our users, both internal and external
- Critical thinking about systems — their edge cases, failure modes, and life cycles Ability to write high quality code (e.g. Go, Java etc)
- Ability to debug complex and cross-functional problems across the whole stack
- Knowledge of working with a Unix shell
- Hold yourself and others to a high bar when operating in production environments
- A metrics driven approach and can make informed decisions using data
It’s not expected that any single candidate would have expertise across all of these areas. For instance, we have wonderful team members who are really focused on their customers’ needs and building amazing user experiences, but didn’t come in with as much systems knowledge.
What’s it like to work at Stripe?
Stripe is helping the internet fulfill its potential as a platform for economic progress by building software tools that accelerate global economic access and technological development. Stripe makes it easy to start, run and scale an internet business from anywhere in the world.
Stripe is, at its heart, an engineering company. To provide a missing pillar of core internet infrastructure, we hire people with a broad set of technical skills (and from a wide variety of backgrounds) who are ready to take on some of the most challenging problems in the industry – from reliably handling 100M API requests per day, to building adaptive machine learning as a result of years of data science and infrastructure work, and enabling entrepreneurs worldwide to start a global internet business.
We look at Stripe as a constant work in progress and the same is true of our people; for all of us, we believe the best is yet to come. We’re here to support each other in our curiosity and creativity – which we pursue through thoughtful discussion and knowledge-sharing among a diverse set of peers and colleagues.
We encourage all engineers to transition teams once every year and a half and also take on short-term projects with other teams across Stripe. This enables engineers to learn how different parts of Stripe work while also establishing stronger ties and cross-pollination between groups.
We contribute to existing open-source projects and the people working on them, and we release several tools as open-source.
We want to work in a company of warm, inclusive people who treat their colleagues exceptionally well. The kind of people who are committed to going out of their way to help other Stripes in the short-term and pushing them to improve over the long-term (by helping them to get better at what they do).
We’re a highly cross-functional organization and view that as part of the fun: we design our space to encourage as much collaboration as possible. We have long tables in the kitchen for a reason (to enable everyone to meet new people and learn from them). We also have a culture of transparency that we carry through to email communication, ensuring that Stripes all around the world have the information they need to make good local decisions.
In both our products and our people, we aim to reflect, represent and advocate for all of our users, globally. Our users transcend geography, culture and language; what we share, collectively, is a drive to create a fairer, more economically interconnected world.
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.