Today’s episode of of practical software engineering tips & tricks: load testing 3rd party services/APIs in prod.

Aka how we made sure Uber’s payments providers would also be ready for the New Years Eve surge in the early years. A thread.
Up to around 2018, Uber saw a 5-10x traffic spike on NYE. Funny enough the spike would become the new “baseline” traffic for the next September.

But the first few years this spoke would nearly cripple the company. So we started preparing ahead of time and load testing the fall.
After we’d load test most internal services and ensure they’d cope, the next failure vector: 3rd party services.

We knew what would happen on NYE and were on standby. They had no clue and though assured over email they can take a 10x load... let’s say it wasn’t always the case.
So we’d bring NYE a few months earlier. But for payments calls, we couldn’t do it with mock data. Every request meant moving real money.

So we stopped moving money for a few hours. Accumulate the backlog.

Then send it all at once, at 20x our normal rate for an extended time.
Obviously we’d do this when we had the PSP on the ready.

Almost always something wild break down that the PSP did not expect.

And the PSP wild spend the next months actually preparing for *our* surge. We just proved they were not ready, despite what they assured us. 🙃
Uber was unique in the highest business loads (and most new users) coming in at holidays, and a lot of things evolved around this characteristic.

When you have lemons, make some good lemonade. Batching prod payments requests well ahead of peak loads was a pretty good one.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Gergely Orosz

Gergely Orosz Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @GergelyOrosz

25 Feb
The engineering career framework for @prezi, with typical post-college experience years of experience, as shared by their former CTO. He's talking about what makes for a good software eng growth framework.

They settled on 6 levels to allow for enough space for growth. Image
They created an internal tool so people can browse definitions & examples, and for people to be able to rate themselves.

Engineers started to rate themselves, and use it as a starting point for career conversations with managers.

It worked out FAR better than they expected. Image
Promotions, merit increases are pretty standard (note to self: I'll share some details on this for non-EMs).

Promo committees are what you'd expect from a "modern" tech company their size.

Uber used to have more eng-heavy, as well as more manager-heavy committees: Image
Read 4 tweets
24 Feb
For anyone looking for their first job in tech: it’s a beast to get - including the first in a new country.

The story of how I was a week or two away from leaving the UK, failing to get *any* response from recruiters, despite having years of work exp and a stellar CV. Thread.
I’m from Hungary and graduated top of the class at Budapesti Műszaki Egyetem with a degree in Technical Informatics. You probably never heard of it: neither have recruiters.

It’s the #1 CS college nationwide - perhaps phrasing it like this might have helped.
I worked fulltime for 2 years as a web (.NET) developer and placed #3 worldwide at Microsoft Imagine Cup 2008 - from 200K contestants.

A pretty good resume, if I might say so.

Odd enough, applying remotely for .NET positions in the UK for no responses. So I packed up and moved.
Read 11 tweets
22 Feb
Preparing for a meetup tomorrow on engineering your CV.

A reminder that there are things that could matter just as much as your skills:
- Your location (for many companies, still)
- Referrals
- Visas

The less senior you are & the more "local" the company, the more these matter.
The meetup is this one: meetup.com/Tech-on-the-Ty…

And the graphics are from my book thetechresume.com (free for any engineer currently out of a job).
You might wonder "why bother applying for local companies or ones that don't support visas when many of Big Tech does"

Well, one important part: competition. The companies hiring worldwide, offering remote work? They'll see a huge number of candidates & it's hard to stand out.
Read 4 tweets
16 Feb
The 12 most important pieces of information and concepts I wish I knew about equity, as a software engineer.

A thread.

1. Equity is something Big Tech and high-growth companies award to software engineers at all levels. The more senior you are, the bigger the ratio can be:
2. Vesting, cliffs, refreshers, and sign-on clawbacks.

If you get awarded equity, you'll want to understand vesting and cliffs. A 1-year cliff is pretty common in most places that award equity.

Read more in this blog post I wrote: blog.pragmaticengineer.com/equity-for-sof…
3. Stock options / ESOPs.

The most common form of equity compensation at early-stage startups that are high-growth.

And there are *so* many pitfalls you'll want to be aware of. You need to do your research on this: I can't do justice in a tweet.

blog.pragmaticengineer.com/equity-for-sof…
Read 9 tweets
3 Feb
Building well-performing (native) mobile apps: a thread.

As I'm writing the chapter on mobile performance in Building Mobile Apps at Scale, I'm doing a lot of reading on this topic.

A collection of the 9 most interesting iOS and Android app performance pieces.
1. Building a blazing fast Android app from @LinkedInEng: engineering.linkedin.com/blog/2019/buil…

I love this overview: it seems so... simple. Try doing it and you realize it's far from it. Iterating *so* key for a performant mobile app.

Bonus: they use Nanoscope! (cc: @LelandTakamine )
2. Grab speeding up their "super app": engineering.grab.com/journey-to-a-f…

Pretty cool to see the top "lower hanging fruit" they saw: app startup, tile caching, animations, binary optimizations, and detecting performance regressions.

A years' work summarized in a short article.
Read 10 tweets
25 Jan
Writing is one of the best things you can invest in, as a software engineer. The more experienced people become, the more they tend to realize this.

Here's a thread on the 6 best writing resources I've found - both to "convince" you to write more and to help you "level up":
1. My extended thoughts on why writing is an undervalued software engineering skill, and the tools (Grammarly, Hemmingway) and books (Writing Well, Sense of Style) that helped me improve my writing.

Writing becomes *so* important at larger companies.

blog.pragmaticengineer.com/on-writing-wel…
2. It's time to start writing by @alexnixon_uk . I like the story about making a technical decision, gathering around to talk.

What if they wrote instead? It would be more durable, scalable, and - with COVID - much more feasible.

alexnixon.github.io/2019/12/10/wri…
Read 8 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!