Software Engineer, High Availability
Published on November 03, 2023
Stripe is a global technology company that builds economic infrastructure for the internet. Build the core of Stripe products, services and APIs in spectacularly robust fashion. Banking Platform is crucial in helping Stripe globalize its payout capabilities by building the interfaces that allows users as well internal Stripe teams to move money. As a platform company powering businesses all over the world, Stripe processes payments, runs marketplaces, detects fraud, helps entrepreneurs start an internet business from anywhere in the world, builds world-class developer-friendly APIs, and more. We are currently on an inflection point thinking on how we make the platform 10x better. The Banking Platform team works to ensure money gets to its destinations safely, reliably and in a cost effective manner. As Stripe expands globally, we realize that we haven’t won yet, and know that successfully being able to take pay out to different countries is crucial to our progress in economic globalization. We’re investing in the Banking Platform team to run the infrastructure that supports a wide variety of bank payouts and payment methods. You’ll help abstract the rails for money and movement while rigorously understanding properties such as speed, cutoff, currency and fees.
Who we are
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
In this role, you will be joining the High Availability and Disaster Recovery team. At Stripe, availability is a core feature of our products. This team designs and builds new solutions to allow latency-critical, stateful applications to survive any type of disaster. We build distributed systems on top of unreliable architecture to provide highly available and resilient customer solutions. This team is creating greenfield solutions which will serve as the basis for Stripe’s architecture 5, 10, or 20 years into the future.
This is a distributed team with many remote engineers. You are encouraged to apply if you meet the minimum requirements and are able to work from anywhere in the United States or Canada.
What you’ll do
You will help develop our global architecture by combining less-available components and data centers into a highly available and resilient whole. You will work on latency-critical solutions where every millisecond matters and data redundancy is a hard requirement. You will learn quickly and work on a broad range of problems - one day may be investigating Mongo write concerns, the next may be minimizing cross-region TLS handshakes, followed by developing new systems to automate disaster detection and failovers. Your work will enable Stripe to increase the GDP of the internet by providing uptime and data protection which have historically been impossible.
- First and foremost, you will write code
- Scope, design, implement, and deploy solutions using multiple technologies (Ruby, Java, Mongo, Postgres, and a variety of other tools as necessary)
- Investigate issues in live, distributed production systems
- Work with teams across Stripe to help them understand multi-region architectures, high durability implementation patterns, and best practices
- Learn, meet, and uphold high engineering standards through design and code review
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.
This is where you’ll include the minimum requirements for the job. These are the absolute minimum experiences and skills needed to be considered for the position. Any candidate, whether outbound, inbound, or referred, who does not meet these, will not be considered so be fastidious when listing these.
- 2+ years of experience in software development
- Professional working proficiency in English
- Bachelor’s degree in Computer Science or related field or equivalent work experience
- Understanding of distributed system concepts (ex. leader election, voting, quorum)
- Understanding of data reporting and analysis using SQL
- Experience with cloud infrastructure
- Experience with document databases like MongoDB