The Avg. Comp for Meta E5 Level in India is over 75 Lakhs+, including bonuses and stocks, it goes over 1Cr+, and this is just at the Sr. Software Engineer level (5 YOE+)
The Avg. Comp for Google E5 Level in India is over 60 lakhs+, including bonuses and stocks, it also goes over 1Cr+, this is the Sr. Software Engineer level (5 YOE+)
If I were targeting Sr. Roles are Meta, Google, and Microsoft with my 5+ YOE, this is 1 cheat I would 100% use, created from my own experience.
How to use this cheatsheet in an interview?
Think in three quick steps:
1. Listen to the problem and label the pattern
Example in your head:
This is mostly read-heavy with some writes or
This is real-time fanout, lots of live updates
2. Pick the closest pattern from the list below
3. Use the lines like this when you speak
– First arrow → what kind of systems does this pattern fit
– Second arrow → what really matters here
– Third arrow → which tools or building blocks to mention
– Fourth arrow → how you might summarise it to the interviewer
This will help to structure your thinking.
By the way, if you are preparing for DSA or system design, try our mock interview tool on Layrs for free:http://layrs.me/interviews
1. Read heavy systems
→ Fits: feeds, product pages, profiles, dashboards
→ Focus: fast reads, acceptable staleness, low DB pressure
→ Tools: cache in front of DB, read replicas, search index, background jobs
→ How to say it:
"This is read heavy. I would put a cache and maybe a search index in front of the main DB, and refresh it with background jobs so most requests never hit the core database."
2. Write heavy, event-driven systems
→ Fits: logs, clickstream, payments events, audit trails
→ Focus: durable writes, ordering, handling spikes
→ Tools: queues or streams, consumers, batching, idempotent handlers, dead letter queue
→ How to say it:
"Here writes are the main thing. I would land everything on a queue or stream first, then process with consumers that are idempotent and can batch work to the database."
3. Real-time fanout systems
→ Fits: chat, live scores, delivery tracking, notifications
→ Focus: low latency push, many consumers, avoid constant polling
→ Tools: websockets or SSE, pub or sub layer, in memory cache, fanout service
→ How to say it:
"This needs real time fanout. I would keep a websocket layer or similar, push updates through a pub or sub channel, and avoid going to the database for every small update."
4. Batch and analytics systems
→ Fits: reports, BI dashboards, recommendation training pipelines
→ Focus: huge volume, freshness in minutes or hours, cheap scans
→ Tools: data lake or warehouse, ETL or ELT pipeline, columnar formats, pre aggregated tables
→ How to say it:
"This is batch and analytics. I would separate the OLTP database from the analytics store, load data in batches, and build pre-aggregated tables for the dashboards."
Check the comments as well, please…