
Lessons from Stripe - rspivak
https://markmcgranaghan.com/lessons-from-stripe
======
kbyatnal
The point about optimism is very interesting and I completely agree re:
ambition - hard problems are more feasible than easy ones. However, I don't
agree with the point about ad clicks.

> "Ambitious problems for Stripe look like enabling more internet businesses
> and supporting entrepreneurs in more countries, not getting more ad clicks."

I used to have a similar mindset until I actually ended up working on Ads at
Google. There are hundreds of thousands (if not millions) of small business
merchants, mom and pop stores, etc that rely on ads (be that Google, Facebook,
Instagram, whatever) to run their businesses. In fact, these are the vast
majority of ad buyers! The huge multi-billion dollar corporations are far and
few between.

That's what drove many of the engineers (including myself). A small increase
in conversion ratio (be that through better ranking, filtering, query
interpretation, etc) meant a huge deal to these merchants and in some cases,
could be the difference between life and death for some of these small
companies. And at the scale Google operates at, very small incremental changes
= huge impact. The engineers and projects, at least in my team, were driven by
exactly the same goals mentioned here - to "enable more businesses" and
"support entrepreneurs" all across the world.

It's easy to get sucked into the hype and blanket statements of "ads are bad"
(I was guilty of that too). I've since left Google, but that experience really
internalized for me that things like this are never so black and white.

~~~
DenisM
Three small businesses can easily end up bidding against each other on Google
Ads for the same keywords, higher and higher, until they drive each other to
the point of having precisely zero profit left to them, and all of the profit
going to Google.

Making money is all well and good, but this is not empowering anyone.

~~~
rogerkirkness
Much of small business is about geographic monopoly where simply putting
yourself in front of customers that didn't know about you before is wealth
creating.

~~~
DenisM
That's a good point, though I have to wonder how often is there an actual
micro-monopoly?

I imagine that two dry-cleaning places a mile away from each other would end
up in competition eventually, and Google will drain all the profits from both.

Something is fundamentally unbalanced about this.

~~~
rogerkirkness
Coffee shops can be make or break depending on the corner of the intersection
they are on so it can be a little bit ridiculous in terms of how small the
geography is. I agree re: Google capturing the spread. Always want to control
the means of distribution for your own business, ultimately.

------
SaveClyde
I recently had my onsite for Engineering Manager role at Stripe. Stripe
interview process is lengthy, I met 14-15 people. There's a mini onsite (3 45
minute interviews) if you cleaer that one there will be a full day onsite
which consists

1:1 Management Roleplay, Technical Roleplay, Technical Discussion, 3
behavioral interviews

there is a lot of overlap between mini onsite and full day onsite.

After meeting so many folks and spending so much time, the feedback you get is
minimal. In my case the recruiter informed that everything was great but the
team did not feel the spark.

~~~
tempsy
Maybe I'm wrong about this but it seems odd for a company to hire externally
for engineering manager except in extremely rare cases? From experience in a
few companies I can't think of people who were hired directly to that role
(e.g. a people manager of engineers). I basically only see external ICs and
senior engineering leader hires and internal promotion of engineers to
engineering managers.

~~~
toephu2
Hiring externally for any role at any company is very normal (e.g., FANG
companies hire external EMs all the time).

------
vfc1
I don't know, this super optimism as a value might lead to situations where
something is going clearly in the wrong direction, but people get afraid of
pointing it out due to fear of going against the company values, and getting
natural overly optimistic personalities out of their delusional high and back
into reality.

~~~
throwaway_str
From the engineering friends I know at Stripe, you'd be correct: there's a
strong cultural push to not question the status quo / prevailing wisdom.

On the tech side, they continue to build on top of a broken foundation
(MongoDB), resulting in millions of man hours wasted dealing with the complete
lack of transactions. Mongo now has transactions, but last I heard Stripe was
still running a very outdated version and spending absurd amounts of time
dealing with issues that transactions would have entirely avoided. If you
suggested that maybe it'd be worth changing course to something like Postgres
because of the insane amount of work being wasted, you'd be shut down for not
being optimistic enough.

~~~
cookiecaper
The fact that Stripe _ever_ used MongoDB is dubious enough, but that they've
endured on it well past the fad's expiry is reason enough for me to avoid
doing business with them in the future.

Handling money is serious business and if one insists on using the unproven
flavor-of-the-week to do so, they'd better make sure it has at least the
fundamental requirements to accomplish its task, e.g., transactions/MVCC.
Stripe apparently failed to do so, and has chosen to propagate that failure
for many years.

One can make excuses for the spunky startup with a handful of employees
needing to save time by using what they know or whatever, but Stripe is well
past that point, and serious people should've taken over by now. I'd expect
"replace Mongo with a real database" to be near the top of the todo list for
any serious people.

~~~
danpalmer
FWIW, having worked with the Stripe API for ~5 years and put all our sales
through them for the lifetime of the business, I wouldn’t have guessed they
used MongoDB. The API is mostly excellent, and it has always presented a
consistent view of the world to our side.

The same cannot he said for a number of other services we use, including those
from some companies with supposedly very good tech credentials. We’ve had to
back out of integrations due to the clear evidence that they are non
transactional and/or eventually consistent.

~~~
benologist
You couldn't tell what backend they use just from their API unless there's
some errant exceptions leaking information. Their test API might give us some
clues. It can only purge your data one record at a time, at about 1.5 records
a second, and locks your API credentials for however long it takes to crash or
finish iterating through each object. I don't know what storage engine would
have that constraint but they've stuck with it for years and simulate a fast
test API with a whole other piece of software instead of just having a fast
test API.

What storage options don't have the ability to delete all your records at once
quickly? If it was MongoDB there would surely be an index attaching the data
to your account. Same with PostgreSQL.

~~~
Rapzid
You can make all those mistakes with a traditional RDBMS. Iterating over
objects to delete them one at a time with database round trips is also a
common mistake people make with ORMs(along with many other things that could
have been done in one statement).

------
andrewingram
How do you teach optimism in the way Stripe is looking for though?

As someone with a hefty amount of anxiety and depression weighing down on me
most of the time, I often feel like I'm the only person in the room who can't
get excited about things, but I don't want to be the weight bringing everyone
else down. Is there not a danger of this value becoming a proxy for "people
with depression and similar mental health problems aren't welcome at Stripe"?

~~~
berkayozturk
I have a similar problem. I'm always pessimistic, stressful and anxious. After
my job interview for a machine learning job, HR gave me a personaly test. It
turns out that they were literally horrified by the results and told me that
every response I made was the exact opposite they were looking for. I got the
job nevertheless but mental issues do become a barrier in one's career. I
knowingly try to be alone in the office, don't take any breaks and don't talk
to anyone unless it's necessary. Haven't heard a complaint yet. But I would
suggest to the opposite, communication is important.

~~~
rabidrat
That's interesting, what was the point of the personality test? I mean it's
crappy if you can 'fail' it, so in that sense I'm glad it's not an actual
hurdle, but then why give a candidate the test in the first place? If it's to
know how best to work with you, then they should save it for after you've been
hired.

~~~
berkayozturk
They said they wanted to see if I was a good fit for the organization's
culture. Technical interview went really well, so they did not cared that much
about the test results. But they requested me to take the test again hoping I
would get better results. What a joke :)

------
deedubaya
It's interesting to hear an internal perspective of how "great" Stripe's
recruiting processes is.

As an external applicant, I would say it was better than most, but still an
internal recruiter shit-show. Week-long windows between email responses,
dropped balls, and even no-shows for scheduled calls. Seeing this contrast
makes me wonder if Stripe employees are just high on their own supply?

Recruiting is hard. I can only imagine it gets harder at scale. I'd bet that
Stripe's best recruiting is done through employee referrals... and that is
probably building a mono-culture.

~~~
sfrench
I previously worked at Stripe. Mark's post mirrors my experience internally as
a hiring manager, and as a candidate. But as you said, at scale things get
harder; I'm sure the experience does vary and some percentage of people come
out with experiences that don't match the ideal.

My own experience was that Stripe was able to take me from a prospect to a
hire in less than 30 days. My interviews and calls were all on Friday, and I
would hear back on Monday with results and schedule the next round for that
very same week.

~~~
danpalmer
30 days seems exceptionally long, unless that was driven by your timeline?

~~~
sfrench
Given I had a job while interviewing, I was driving it as fast as I was
comfortable. But the part that was important to me as a candidate is that I
was getting feedback within 1 business day, and getting the next step
scheduled for later that same week.

------
elwell
> When considering ideas, we think “how might it work?” is more interesting
> than “why will it fail?”

Engineering involves critical thinking. You should have a firm belief that
what you wish to create _can be created_. However, that is simply a foundation
upon which to throw as many "why will it fail?" permutations as you can
generate. This isn't pessimism, it's the culling of error, like a sculpture
from a block of marble.

~~~
yawboakye
Some clarification on the "why will it fail?" question. It's different and
less constructive than "how will it fail?" which asks for failure modes and
mitigations. It's a superior discussion to "why will it fail?" That said, "why
will it fail?" is also inferior to the pre-mortem discussion starter: "why did
it fail?"

------
docker_up
One criticism I've heard from former Stripe employees is that many of the
people in high positions are Stripe are young with no management training,
especially in the non-engineering parts of the company. So it sets up for a
lot of problems, and cultural problems because they don't know how to manage
people or large organizations well.

~~~
disgruntledphd2
Sounds like basically every successful startup in Silicon Valley.

Certainly I heard the same from friends at FB and Google back in the day.

------
pliao39
I'm impressed that Stripe has been able to maintain it's culture over the
years, as it grows in headcount and size. I recall reading this blog from 2012
(although I read it in 2014): [https://blog.alexmaccaw.com/stripes-
culture](https://blog.alexmaccaw.com/stripes-culture)

And the consistency between then and now is fairly impressive. Ambition and
Optimism seem like codified values that have emerged over time. But the one
thread that is consistent is their thoughtfulness on hiring.

It should be no surprise to anyone here though, given that their interviewing
doesn't consist of the standard 4-5 leetcode questions, but rather much more
thoughtful rounds like a bug squash, architecture, and lots of hands on coding
- algorithm rounds exist, but kept to a minimum.

Not to say that this is good and should be the new standard - just that it is
extremely thoughtful and was going against the grain. Wish more companies
would think about their hiring practices from first principles and didn't just
copy Google

~~~
tempsy
Unless you actually work there, how are you so confident that Stripe's actual
culture has been "maintained" outside of reading company sanctioned blog
posts/think pieces...? Or that the actual culture has ever even closely
mirrored the one that has been outwardly portrayed?

Glassdoor is not perfect, but I think I get more insight into the reality on
the ground looking through recent reviews than a blog post, and at least from
what I can see recent reviews over the last few months are extremely mixed.

------
tempsy
Stripe's Glassdoor profile consistently perplexes me. For a company that large
that has been around as long as it has to only have 81 reviews is _very_
strange. There is no easy way with Glassdoor to get a true measure of #
reviews per total active FTEs per year but it feels much lower than other
companies that are both younger and smaller.

~~~
novok
With a staff level under a few hundred, it isn't that strange. People only
tend to complain more about negative experiences vs. positive and the internet
lurker rule (%99 lurk, %1 write content) explains the rest of the numbers.

------
echelon
How does one build a strong startup culture like Stripe? I'm looking to strike
out on my own, and while I know there are other fundamental concerns I should
be worried about, this is something that I continue to dwell on. A strong team
can make or break a company.

I'd appreciate any advice or reading material.

~~~
tyingq
I don't know if this is right, but from the outside, it looks like a company
where the tech team has the most seats at the table.

Versus sales, or some separate product management team running the show. That
model seems to work well with what Stripe does. It probably doesn't work well
in many other niches.

------
kamyarg
Optimism I believe does have a very positive effect on both productivity of
the people and how much they love working in a place. But in my experience
overdoing it might make your employees start developing this "This does not
make sense at all, why are these people living in dreams?" mindset. From chats
I had, I could feel some of my colleagues also had a hesitation towards the
goals etc. It was interesting to see people become frustrated especially if
they have been used to being slightly pessimistic and cautious due to their
background(title(Finance background), nationality(mostly non-US and UK people)
etc.)

Overall very nice article though, I do believe moving fast in hiring is the
most yield/effort you can do to hire great people. Best companies I worked
for(above one included) moved extremely fast in hiring, worst take 2-3 weeks
just to reply to an email let alone scheduling an onsite. Wish decision makers
in recruiting knew this.

p.s. love the Stripe Docs and Technical blog posts, this one specifically was
very informative: [https://stripe.com/en-de/blog/api-
versioning](https://stripe.com/en-de/blog/api-versioning)

------
rossdavidh
I have seen a lot more problems come from an excess of optimism, than an
dearth of it. You should not be so optimistic that you don't think about how
to roll back changes if they turn out to be a bad idea, for example. Backups
and rollback plans and code reviews and etc. are all fundamentally
pessimistic. An excess of optimism can lead to no plan B. Every startup pivot
relied upon NOT having so much optimism that you will not believe a pivot is
required.

Not to say that optimism is all bad, but it's not all good either, and in the
U.S. corporate world I see a lot more problems from an excess of optimism than
from the reverse.

------
bgentry
I had the pleasure of working with Mark for ~3.5 years at Heroku just prior to
him joining Stripe. Since leaving Stripe, he’s been working on research
projects at Ink & Switch, one of which they recently chose to focus on as a
stand-alone business: [https://museapp.com/](https://museapp.com/)

------
leowoo91
Most values and keeping the team healthy, reflects the vision of founders I
suppose.

------
starptech
... and why have you left stripe ??? :/

~~~
iliekcomputers
You can feel good about a workplace and still leave (need a change, better
opportunities elsewhere etc)

------
purple_ducks
Not directed at author but I looked at his bio after reading the article. He
spent his time mostly as an engineering manager and yet in his bio has:

"I led engineering teams at Stripe"

Do managers in software companies actually think they lead teams? I've seen or
heard "led engineering" or variants so much from mid level management that I
wonder if my perspective is skewed.

Seems crazy to me.

~~~
burlesona
Two reasons it shouldn’t sound crazy:

1\. Just grammatically, managers need some verb to use. If he said “I managed
Engineering,” it would be really difficult to argue that isn’t what an
engineering manager does. But good managers lead, so they prefer the word lead
over manage, even though the meaning in context is quite similar.

2\. You seem to be implying that managers suck and don’t know anything about
engineering, so how could they claim leadership?

Speaking from my career path, most eng managers come out of engineering and
are pretty technical. At Atlassian (where I’m a front-line Engineering
Manager), you have to earn your way to Senior Engineer before you can join the
management track, and the managers for several steps up the ladder are
accountable for technical outcomes.

It’s very common in our office for the front line managers (aka Team Leads) to
lead whiteboarding and pair a lot during the early phases of a project to make
sure it’s built on a sound design, and to be similarly involved throughout
projects to ensure they’re tracking to completion on schedule and hitting our
quality bar.

My understanding is Stripe works very similarly. So, yeah, I buy that he “led”
engineering teams there.

~~~
sbarre
> But good managers lead, so they prefer the word lead over manage, even
> though the meaning in context is quite similar.

I would actually argue that good managers _support_ their teams, they don't
lead them.

A tech lead or architect should be leading the engineering team, and the
manager should be supporting the team's efforts and clearing the path for
them.

