Hey everyone! Wanted to share my full Meta interview experience, from the recruiter reaching out to the virtual onsite and final decision. Hopefully, this helps anyone preparing!
Got a LinkedIn message from a Meta recruiter with two job postings—one for Infra and one for Product roles. Since I have a web dev background, the Infra role seemed more systems-focused, so I picked Product. I let him know, and he sent a calendar link to schedule a call. I also attached my resume directly in the LinkedIn chat.
On the call, he asked about my background, location, visa status (OPT), and experience—specifically my projects, technologies, and if I had any mentorship/leadership experience.
Then he explained the process:
🔹 First, a coding screening round (2 LC-style questions)
🔹 If cleared, virtual onsite with coding + system design + behavioral rounds (for E4)
Got an NDA to sign (so technically, I shouldn’t be posting this but I will post whatsoever) and filled out a US work authorization form.
I was in India at that time, so I requested 3 weeks to schedule the screening instead of the usual 2 weeks. He agreed, and I booked it for Dec 23rd.
Interviewer joined 3 mins late (literally looked like he rolled out of bed lol). Super friendly though. Quick intros, then straight to coding.
First Question: Given a directory path and starting directory, return the final directory after following the path. (Classic stack-based problem with edge cases like /./, ~, etc.)
Went well, dry-run successful. But I was super nervous since it had been a while since I last interviewed. I felt the nervousness
Second Question: Diameter of a binary tree—but return nodes count instead of edges.
I defaulted to returning edges (common LC question). Interviewer hinted at it, but I didn’t realize until the end of dry-running test cases.
Thought I bombed it, but the next day, I got an email I passed!
Meta prefers splitting 4 rounds in two days, but I requested to combine all of them in a single day due to my current job constraints. My reschedule request was ignored by recruiter coordinating the interviews, so I reached out to my original LinkedIn recruiter, who was super helpful and suggested to take them in two days instead of a single day. Adjusted the interviewes schedule to my comfortable dates and got it done.
Each coding round is 45 mins, and you’re expected to:
Interviewer was stern with a heavy accent (hard to follow, but managed). No small talk, straight into coding.
First Question: Given course prerequisite pairs [[1,0],[2,1],[3,1]], return the max courses you can complete. (Topological sort variation, checking for cycles.)
Completed and dry-ran with multiple test cases. Took ~28 mins.
Second Question: Count subarrays whose sum equals a given target (elements may have negatives included).
Tried explaining the prefix sum + hashmap approach. Interviewer didn’t followed my approach, made me dry-run a lot before coding itself, which ate up my time. Never got to writing the code.
Interviewer was chill & friendly. Standard Amazon LP-style questions: Examples are below. Was asked 7-10 of these questions.
This interviewer was super strict (even stern than the first one). No intros, just straight to coding which makes sense given the time constraint.
First Question: Implement a^b (a power b) using only +,-,/,*.
Used recursio*, handling negative b, edge cases (a=0, b<0, etc.).
Interviewer made me dry-run TWICE before & after coding for this simple questions which consumed lot of my time.
Second Question: Merge three sorted arrays into one sorted, unique array (removing duplicates).
Initially solved in two passes, then optimized to three-pointer approach.
Handled all the logic in arraylists and Time ran out while converting ArrayList → Array before return. Asked for 1 more min to finish, but interviewer denied it (he said it is strictly 40-min only for coding and rest 5 mins for questions).
Interviewer was a very senior manager, super serious throughout.
Task: Design a news feed system (like FB/Instagram).
Listed functional & non-functional requirements
Designed HLD and explained edge cases like how fan-out works for celebrity accounts etc
Discussed DB choices for media storage, large video handling
Detailed API design + data models
Ran out of time for non-functional aspects (consistency vs availability, CDN, etc.).
Got the decision exactly 3 days later. Recruiter said, "Feedback is confidential, but it’s not positive." When I asked which area I needed to improve, she just said, "All rounds need improvement." I felt upset and low but revisited my experience. I am not ashamed. I felt with the coding capability I have at this point I gave my best. All I need to improve is doing it even faster. Fast enough to fit two coding questions covering all requirements, edge cases, followups, time-space complexities and dry runs in 40 mins(sometimes 35-37) mins if you are unlucky and interviewer joins late.
Coding rounds are FAST. You need to:
System Design (for Product) = API & Data Models focus. Less about distributed systems, more about data flow & API design.
Mock interviews matter. I should’ve practiced timed mocks to improve pacing.
Interviewer styles vary A LOT. Some are friendly, some are super strict, some make you dry-run excessively before coding. Adapt quickly.
Time management is everything. Knowing when to go deep vs. when to move on is a needed skill especially for sys design.
Cool-down period is 1 year for META, but I’ll come back stronger! In the meantime, onto other companies and back to grinding. Hope this helps someone. I feel I have given something back to the community and it feels good :) If you’re preparing, good luck! Drop any questions, happy to help!