1,145 pull requests per day

(saile.it)

Comments

thewisenerd 23 May 2025
> few nuggets scattered on the internet regarding how Stripe does things (ex. #1, #2, #3) and in general the conclusion is that they have a very demanding but very advanced engineering culture

#3 is "What I Miss About Working at Stripe" (https://every.to/p/what-i-miss-about-working-at-stripe) reminiscing about 15-hour days, missing vacations, and crying at work.

discussed here; https://news.ycombinator.com/item?id=32159752 (131 comments)

darth_avocado 23 May 2025
The comments so far are surprising. Yea counting PRs and lines of code isn’t impressive, and yes you may also do them at your own company. Any engineer will tell you, if you push code often and continuously move it to production, regression is inevitable. In finance, at a scale that stripe operates, not making mistakes is very critical. Being able to do what the articles describes is very impressive in any engineering organization. Being able to do that as Stripe is even more impressive.
danpalmer 23 May 2025
My previous company averaged 2 PRs (and deploys) per engineer per day across a small team. At my current company I'm averaging about 2.5 CLs per day (they're a bit smaller changes). Stripe is good at this, but this is very achievable.

Often the problem is that we put too much into a single change. Smaller changes means easier reviews, better reviews, less risky deploys, forces better tooling for deployments and change management, often lower latency, and even often leads to higher throughput because of less WIP taking up head space and requiring context switching. The benefits are so compounding that I think it's very undervalued in some orgs.

nitwit005 23 May 2025
How many of those people are actually working on the core payments flow that they're measuring the uptime of?

I'm sure most people are working on some settings UI, fraud or risk tools, etc.

xeromal 23 May 2025
PRs merged is the LOC count. Completely useless measure of anything really.
riffraff 23 May 2025
The article seems surprised that you can do so many changes at scale, but IMO that's the wrong perspective. The larger the scale you have, the easier it must be to ship a change.

Yes, regressions will be more painful if you manage trillions of dollars, but it also means shipping a fix for such regressions needs to be easy and fast, which you can only do if you have a good and frequent CI/CD pipeline.

See also "The Infallible five-tier system for measuring the maturity of your Continuous Delivery pipeline". You should live on "Friday".

https://qntm.org/cd

metalrain 23 May 2025
Having minute of downtime per year is quite a big tradeoff.

It makes sense for Stripe, they would lose lot of money when not operating. But in smaller companies you can choose to take more downtime to reduce engineering time.

Instead of skirting around doing gradual data transformations on live data, you could take service offline and do all of it once.

AdamJacobMuller 23 May 2025
Diminishing returns at some point, but, I think the counterpoint to this is companies who are doing a single huge manual deployment every month (or less) which is scheduled into a 4-hour outage window where many if not all services will be down for this period.

I do agree there isn't a lot of delta between a company doing 2 or 10 deploys a day and a company doing 1,200, but, there's a huge engineering gap between companies who do approximately .03 deploys per day and those doing multiple.

cuttothechase 23 May 2025
Is counting the number of pull requests a useful measure of engineering performance ergo product performance and company perf?

Isn't it more like a BS counter that keep incrementing and that is indicative of churn but nothing else reliably.

One of the most low effort, easily to game metric that can be skewed to show anything that the user wants to show.

sverhagen 23 May 2025
It is undoubtedly very impressive. But once you're set up for it, it's probably easier than saving up the changes and doing a big release at the end of the month, because the amount of change and the amount of risk, per deployment, then is also a lot higher.

Like other commenters here have said, it doesn't mean that I can say "(scoff --) we're doing the same" if I'm doing the same relative number of releases with my tiny team. But it is validating for a small team like mine to see that this approach works at large scale, as it does for us.

dgrin91 23 May 2025
This sounds like how PMS sometimes tout the number of tickets per sprint. It's not a relevant metric, and it's easily gamed

How many of those prs were small fixes? How many went to low used services, or services only used internally?

They clearly have strong set of tooling for dev ops stuff, and I do believe that stripe has strong technical chops, but this number does not show that they are delivering value. It just shows they are delivery something... Somewhere

eviks 23 May 2025
> The goal is not 1,145 deployments per day. It's removing the friction that makes that pace impossible. What's really stopping you from rapidly shipping value to users?

But you haven't identified any value, just mindless cited some throughput stat. Merge your code changes in 1-letter increments and you can juke the stats even higher!

TowerTall 23 May 2025
Why do they need to change their software that much that often?
ath3nd 24 May 2025
I don't know if it's jusst me, but a company with 8000 devs having 1000 PRs per day doesn't look impressive at all? That means...a dev is producing a PR less often than a once a week on average? That's not only underwhelming but downright bad. Their uptime is much more impressive here, but it still doesn't strike me as anything exceptional.

If you use tooling like renovate/dependabot and run them daily over a large list of repos, you already get your 1000 PRs automatically, without humans even looking at the codebase.

hellojimbo 23 May 2025
Conventional "dev" wisdom says that LOC and PR count don't matter but I think its very easy to combine this data point with the nature of a dev's work to come up with a great heuristic on productivity.
deepsun 23 May 2025
We do a lot of PRs as well. Most are automatically created and pushed.
cadamsdotcom 23 May 2025
Something to question though: does the A/B test system generate a changeset when an engineer flips a feature flag or changes the cohorts or percentage it’s rolled out to? Those are very safe changes generated by a template and with easy (maybe even automated) rollback, so they can happen all the time without really risking downtime.

There’ll still be plenty of changes made by humans. But some of those 1145 per day are so low-risk that they’re almost better off making more of them.

madduci 23 May 2025
Is there any description of Stripe's architecture and infrastructure somewhere published?
sandspar 23 May 2025
It's hard for outsiders and novices to fathom what an assembly line feels like. Elite performers are often cranking things out at a scale that normal people wouldn't believe.
Sytten 23 May 2025
More is not always better though. The simplicity of Stripe that made its success is not there anymore, ask anyone that had to build a stripe integration recently.
hoppp 23 May 2025
Maybe they make a lot of very small PR-s? Each one should be reviewed by more than 1 person so keeping it very small is the only way imho
m3kw9 23 May 2025
Sure, looks cool but really means nothing without looking at the type of changes. I could think of many tricks if I wanted to chase this stat
mdaniel 23 May 2025
I hope they're not using GitHub; my inbox is unusable from GitHub talking to itself and choosing to stand next to me at the party, and we're not [currently] doing anywhere near that volume

I've gotten some handle on it by some gmail filters but holy hell if you want to make sure I don't see something, smuggle it in a From:github.com email

With the new Copilot makes PRs, I could easily imagine getting to 1145 PRs per day, of which 45 will actually make it across the line and not be filled with horseshit

m3kw9 23 May 2025
I would think they have elite testing and QA team to make that happen
AstralStorm 23 May 2025
1145 really untested changes pushed to prod per day. :)

No, unit tests do not count.

revskill 23 May 2025
Non engineers stop that from reality.
xena 23 May 2025
404
burnt-resistor 23 May 2025
Impact is what matters. Not PRs/diffs or LoC. These are PHB KPIs.

Basically, they're bragging about how busy their engineers are making themselves look.

userbinator 23 May 2025
How often and how much you change your codebase is not something to brag about.
nektro 24 May 2025
nearly once per minute if in the same monorepo
webprofusion 23 May 2025
Lol, yeah but a PR won't fix that expired cert.