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
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.
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.
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:
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.
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.
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.
Pretty cool to see the top "lower hanging fruit" they saw: app startup, tile caching, animations, binary optimizations, and detecting performance regressions.
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.