Meta E5 product system design interview experience
Summary
I shared my recent system design interview experience at Meta for a Senior Product Engineer (E5) role, detailing two rounds that tested for E5 and E4 levels. The interviews included a complex combined design problem and a more straightforward one.
Full Experience
Hey everyone,
I wanted to share my recent experience from the system design loop at Meta for a Senior Product Engineer (E5) role. I hope this helps others prepare, and it's my way of giving back to this amazing community that has helped me so much.
A special thanks to "hellointerview" for their amazing content, which was instrumental in helping me prepare.
First, I want to share a key observation from my interviews. This is just my take, so feel free to share your own experiences in the comments.
Observation: The Two-Round Interview for Leveling
I had two system design rounds, which seems to be a common practice when Meta is trying to level a candidate between two roles (e.g., Mid-level E4 vs. Senior E5). My theory is that candidates whose leveling is clear beforehand may only get one round. For senior roles, however, it seems they need more data points to make a decision.
My reasoning comes from the significant difference in difficulty and ambiguity between the two problems I was given.
- Round 1 (The E5 Test): This question was not a standard, standalone problem. It was a direct combination of two complex designs.
- Round 2 (The E4 Test): This was a more straightforward, medium-difficulty question: "Design LeetCode Competitions."
It felt strongly like the first interview was designed to test me at the E5 level, while the second established a baseline at the E4 level. This gives the hiring committee flexibility to down-level a candidate but still extend an offer if they don't meet all the senior-level criteria.
The Combined-Problem Question
The prompt for my senior-level interview was:
"Design a system like Instagram that also features a real-time 'Trending Hashtags' leaderboard. This leaderboard should show the top 10 hashtags being used globally in the last hour, ranked by frequency."
This problem combines news-feed generation (with its fan-out complexities) and real-time stream processing for Top K aggregation. The expectation was to cover the full design process (FRs, NFRs, Schema, APIs, HLD) and then deep-dive into the trade-offs at the integration points between the two systems.
I managed to get through most of the required steps and did deep dives on the biggest bottlenecks I identified. It wasn't possible to cover every detail, but the recruiter's feedback was positive. My take is that the interviewers know it's a hard problem and adjust their expectations; they seemed satisfied that I addressed the highest-priority NFRs and challenges.
Interview Questions (2)
The prompt for my senior-level interview was:
"Design a system like Instagram that also features a real-time 'Trending Hashtags' leaderboard. This leaderboard should show the top 10 hashtags being used globally in the last hour, ranked by frequency."
This problem combines news-feed generation (with its fan-out complexities) and real-time stream processing for Top K aggregation. The expectation was to cover the full design process (FRs, NFRs, Schema, APIs, HLD) and then deep-dive into the trade-offs at the integration points between the two systems.
This was a more straightforward, medium-difficulty question: "Design LeetCode Competitions."
Preparation Tips
For anyone interviewing for E5+ roles, my advice is to prepare for these curveballs. Hereโs a structured approach:
- Master the Fundamentals: First, get comfortable with core concepts and how to resolve common system bottlenecks (scaling, latency, availability).
- Practice Individual Problems: Work through the standard design problems (like Ticketmaster, TinyURL, etc.) in isolation to build a strong foundation.
- Practice Combining Problems: This is the key step. Start thinking about how different systems could be merged. If you find it hard to come up with scenarios, use AI to help. You can give an LLM a list of individual problems and ask it to generate plausible combinations.
I was curious myself and used a prompt to see what other combos could exist, and the results were eye-opening. If anyone needs help with a prompt for that, just let me know!
Wishing you all the best in your interviews!