5 lessons
Caching
Keep hot data close to the reader, and handle the two hard parts — invalidation and eviction.
Databases — SQL vs NoSQL
Choose a data store based on access patterns and consistency needs rather than on which one is fashionable.
Message Queues & Async Processing
Stop making users wait for slow work by handing it to a queue and doing it in the background.
API Design & Communication
How the pieces of a system talk to each other, and how to pick between REST, GraphQL, gRPC and WebSockets.
CDNs, Blob Storage & Search
Serve files from near the user, store them somewhere sensible, and make text searchable.