Behind every in-app purchase—from rides to restaurant deliveries—all of your online payments run on code. And for the developers building your purchasing experiences, simple but secure tools can make the difference between a sale and an abandoned cart. For eight years, Stripe has made accepting payments online simple with a developer-friendly suite of payment APIs. Even if you’ve never heard their name, they’ve likely processed your funds. More than 80 percent of Americans have made a purchase on Stripe, the payment platform of choice for millions of companies of all sizes.
In 2010, Stripe was several lines of code in a GitHub repository—a prototype connecting developers with the tools they needed to build novel buying experiences. Today, Stripe has topped 2,000 employees and is live in 34 countries, with engineering hubs in San Francisco, Seattle, Dublin, and Singapore. Behind this growth is a product built for developers and developer workflows above all. Their careful attention to engineering is fundamental to their success. And, as their development team will tell you, tools are just part of the story. They combine a dedication to open source and a rigorous approach to security to create a friendly and empowering experience for everyone whose code touches Stripe.
Stripe is constantly working to improve security. In 2016, they launched an initiative to move a critical piece of infrastructure, their source control, in-house. They evaluated BitBucket and Phabricator but ultimately chose GitHub Enterprise Server for its familiar UI, flexible APIs, and proximity to the open source community. By April 2017, the team had migrated over 600 private repositories from GitHub.com to GitHub Enterprise, including their highest traffic Ruby monorepo.
Stripe’s GitHub Enterprise repository is the center of their entire development workflow. “Sometimes we’re blown away at the sheer volume of transactions happening in one application,” said Chris Traganos, Developer Advocate at Stripe. The repository is home to more than 160,000 non-trivial pull requests and almost 10 years of commit history. As a result, each piece of code comes with a commit and a URL—easily linkable in a Slack chat or meeting.
One place for the company’s code also encourages team connectivity and workflow efficiency, according to Developer Advocate Michael Glukhovsky. “For us, velocity is a huge advantage,” he said. With one repository, developers around the world can stay connected, run tests in a central place, and share processes and tooling that work for every user at Stripe.
Beyond shared tools and workflows, Traganos feels the main benefit to working on GitHub is community. Even from on-premises, Stripe developers can connect with open source software and the larger developer community. “Open source is deeply ingrained into Stripe’s engineering culture,” said Traganos. And, though they may seem at odds, it co-exists peacefully with the security needs of a product that processes billions of dollars per year for public companies, startups, nonprofits, and more.
GitHub Enterprise Server locks down Stripe’s source code in a private data center, but many of its projects are open for contribution on github.com/stripe. There, the team can collaborate with external developers and partners and take contributions to API libraries, SDKs, and other sample code. “There is a huge open source community of code and developers to work with and draw inspiration from on GitHub,” said Traganos. “To build better developer tools, we need a direct line to it. GitHub accelerates production, progress, and connections, bringing us closer to our users.”
Stripe’s team is fundamentally dedicated to open source workflows—from forking code to supporting critical software. Employees often maintain open source projects, join community efforts to evolve core technologies, or sit on committees to improve standards across the web. But their relationship to community isn’t informal or part-time. Many employees find themselves regularly making open source commits for work.
Stripe currently supports nine public libraries and almost 90 public repositories. “When we build tools others can benefit from, we consider what we’ve learned from our infrastructure, then share it with the world,” explained Glukhovsky. “And hopefully, we elevate the state of engineering at other organizations, too.” When developers build a tool, they think others can use, they open it up. Ultimately, their process looks much like any well-run open source organization. Every pull request to an SDK or API library, for example, kicks off an internal workflow to review and accept the contribution.
I have seen some truly revolutionary actions happen in communities on GitHub. People are collaborating on code but they’re also having foundational conversations on best practices and how software, as a whole, is built. More and more, GitHub is an internet archive. It’s a deeply social and critical piece of our infrastructure.
Their Ruby typechecker Sorbet made its official open source debut in 2019 and sits at the heart of Stripe’s codebase. As a payments platform, regularity and consistency in the data that passes through their system is important. To bring static typing to Ruby, Stripe developers worked with Ruby maintainers and made it available for teams in every industry using the language at scale. In just a few months, the project gained hundreds of commits, growing the core team to a community of supporters, developers, and organizations contributing to and building with Sorbet.
Before customers even create accounts, their first interaction with the company is often through its open source code. “The best part is we’re actually building with these maintainers and organizations.” Glukhovsky said. “They’re an important link to the Stripe experience, and it’s important to support and empower them. We’re no longer asking ourselves how we can take from the ecosystem around us—instead, we’re asking how we can plug into other ecosystems and support them in our work.”
Stripe’s focus on open source isn’t just ideological—their business is built on open source. It’s about speeding up workflows, providing critical infrastructure, and sharing how the team works. Showing the rigor behind their software lets customers know they can trust Stripe as a reliable part of their infrastructure. And on GitHub customers, businesses, and open source developers alike, can join the conversation, provide direct feedback, and help push Stripe forward. “GitHub is where this entire interconnected community happens,” said Glukhovsky. “This value can’t be underestimated.”
Traganos has also seen investing in the open source community pay off in recruiting. Stripe hires contributors they’ve worked with for years and finds new recruits through their developer community. “That’s the value of embracing open source culture beyond our own contributions—our developers have connections to their own communities. When others see who works here, they might consider joining, too.”
Stripe develops the core of its product behind closed doors, but engineers still apply a shared set of principles as they work on critical pieces of their product. One of these principles, innersource, empowers any Stripe developer to get involved in any project and share their ideas and solutions. “This internal community removes friction as we build software, while making all of our projects more open and social,” said Glukhovsky.
Together, this internal community has not only created a better product; they’ve also contributed to a better developer experience, within the company and beyond. Some of Stripe’s internal tooling just doesn’t exist anywhere else—from custom Slack integrations to unattended deploys that automatically run CI and prepare a pull request for deployment.
And it’s not just developers who benefit from Stripe’s innersource culture. The company encourages contributions across all groups, from infrastructure to marketing. No matter where a change originates, it always goes through the same review process. “It’s definitely empowering,” he said. “If you see something that needs to get fixed, you can submit a pull request and start a conversation.”
A typical GitHub workflow often happens outside the GitHub interface through text editors, keyboard shortcuts, and command lines. Stripe works to make parts of this flow more accessible to those without a tech background through more visual tools and interfaces. “We try to teach team members to use our tools and collaborate alongside engineers,” said Glukhovsky, “but we’re also able to use UI components—like one-click previews—and custom services we built around GitHub to make it easy for anyone to join in.”
For Glukhovsky, GitHub is more than a development platform or a collaboration tool. He thinks of it as where software happens at Stripe and beyond. “I have seen some truly revolutionary actions happen in communities on GitHub,” he explained. “People are collaborating on code, but they’re also having foundational conversations on best practices and how software, as a whole, is built. More and more, GitHub is an internet archive. It’s a deeply social and critical piece of our infrastructure.”