Software Engineer, Developer Tools
Build the infrastructure powering economic growth
The Developer Productivity group is responsible for making Stripe’s developers happy and productive. We work on tools, processes, and code refactoring to accelerate Stripe engineering as Stripe scales. We’re looking for people with an interest in building the tools to improve the day to day experience of Engineers in Stripe. The ideal candidate will have a mix of technical expertise in either language processing tools, version control systems, contract testing, build systems, but most importantly a passion for solving developer experience problems, and a pragmatic ability to ship results iteratively. You’ll be working on a mix of fault tolerant distributed systems and also software which runs on individual developer machines.
- Design, build, and maintain the core infrastructure used by all of Stripe’s engineering teams.
- Plan for the growth of Stripe’s Engineering workforce. How can the systems and services you maintain be evolved, or transformed, to improve the velocity and happiness of Stripe’s engineering teams?
- 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.
We’re looking for someone who has:
- 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
- Are able to write high quality code in a programming language (e.g. Ruby, Java, Go).
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.
Projects you could work on:
We have a ton of important work to do, which is why we’re hiring! Our active projects change all the time, but here are a few examples of recent projects so you can get an idea of the types of work we do:
- Plan and implement multi-region availability for our CI 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!
- Design and implement industry-leading infrastructure to support contract tests. You’ll help define the features and capabilities of the system, including the generation of synthetic data where appropriate. If you like cross-functional collaboration, and solving real-world problems faced by teams striving to reach five 9s of reliability, this is the area for you!
- Build fantastic code review tools! If you love helping developers be more effective at their jobs, we have a ton of interesting projects in this area. Related projects: you could help us have better reproducible builds with Bazel and build great developer environments.
- Improve the reliability, speed and efficiency of our largest builds. One of the key ways to execute builds efficiently is to bake incrementality into every aspect of the build process. We have accomplished a significant amount in this area, but have a long way to go! Additionally, when an incremental test run consists of a few hundred thousand tests, a handful of bad tests which randomly fail can cause a cascade of build failures. Building and enhancing the system responsible for detecting these will be critical to keep Stripe scaling!
Who you’ll work with:
At Stripe, we encourage you to write and speak about your work and share your knowledge! Also, we think it’s important to get an idea of who you’ll be working with. Here are a few Stripe infrastructure engineers giving talks! (If you don’t like to give talks, that’s fine – many very well-respected Stripe engineers don’t.)
- Amy Nguyen, “UX Design and Education for Effective Monitoring Tools”
- Julia Evans, “A swiss army knife of debugging tools”
- Evan Broder, “The Architecture that Helps Stripe Move Faster”
- Oscar Boykin, “Counting Approximately at Scale”
- Andreas Fuchs “I’m not a number, I’m a free file descriptor!!” (this talk isn’t really about “work” so much as “interesting systems things”, but it’s a delightfully Andreas talk)
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.
Please find our EU applicant personal information notice here
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.