Meta (formerly Facebook) stands as one of the world's leading technology companies, renowned for its "move fast" culture and rigorous interview process. The E5 level represents a senior software engineer position requiring strong technical fundamentals, problem-solving abilities, and the capacity to deliver meaningful impact. This article provides a detailed account of a candidate's journey through Meta's interview process for an E5 software engineering role based in London, offering valuable insights for aspiring candidates.
Interview Process
Getting the Referral
In July 2021, the candidate reached out to a friend working as a software engineer at Meta to request a referral for an open engineering role. Within one week of submitting the resume, a recruiter from Meta's talent acquisition team made contact via email to schedule an introductory call.
Introductory Call with Recruiter
The recruiter provided a comprehensive overview of Meta's interview process, detailing the initial screening round followed by four final interview rounds: two coding assessments, one system design interview, and one behavioral or culture-fit interview. The candidate was strongly advised to thoroughly review data structures, algorithms, and coding skills to successfully clear the screening rounds.
The candidate openly acknowledged having been out of touch with coding interviews for over 2-3 years and requested one month to prepare before appearing for the screening interview. The recruiter was supportive of this request and provided online preparation resources, sample coding questions across various topics, and useful interview preparation tips.
Preparation for Screening Round
The candidate dedicated the month of August to intensive preparation:
Language Choice: Opted to use Java instead of C++ for coding interviews due to low-level design considerations
Core Java Concepts: Thoroughly revised data structures, the Collections framework, and object-oriented design patterns in Java
Collections Mastery: Developed a routine of revising all functions associated with each Collections class, focusing on HashMap, TreeMap, PriorityQueue, and understanding how to utilize collection classes effectively
Data Structure Problems: Solved coding questions tailored to specific data structures
Algorithm Review: Revisited well-known algorithms including Dijkstra, Prim's, Kruskal's, Kosaraju's, Kadane's, 2D Kadane, quicksort, mergesort, and binary search
LeetCode Practice: Tackled approximately 60-70 LeetCode problems, filtering by company and frequency with acceptance rates above 60%
Original Source
This experience was originally published on medium.com. Support the author by visiting the original post.
The candidate's family contracted COVID-19 during India's second wave, necessitating a request to reschedule the interview. The interview was rescheduled to the first week of September 2021.
Screening Round
Meta strongly adheres to its "move fast" principle. Candidates are expected to solve problems efficientlyâwith only 35 effective minutes available in a 45-minute interview to address 2-3 coding problems.
The initial question centered on arrays and proved surprisingly straightforward. The candidate provided a solution and coded it within 3-4 minutes. The interviewer then posed a follow-up question that extended the previous solution.
Shifting focus, the interviewer presented a tree-based problem involving post-order traversal of a binary treeâa LeetCode problem that the candidate successfully solved within 6-8 minutes.
With 15 minutes remaining, the interviewer introduced a graph-based question requiring application of in-degree and out-degree concepts. The candidate initially presented a solution using Disjoint Set Union but, following the interviewer's suggestion of a simpler approach, provided a streamlined solution and implemented it in 4-5 minutes.
Advancing to Final Rounds
The candidate received positive feedback within 3-4 days and was invited to proceed to the actual interviews. After requesting another month for preparationâ which the recruiter accommodatedâthe candidate received valuable resources including approximately 20 coding problems from Meta's dedicated career page.
The candidate spent October in intensive preparation:
LeetCode Problem Solving: Solved three LeetCode problems daily
Tech Blog Reading: Devoted time to reading at least one tech blog article each day
System Design Practice: Completed approximately 20 system design case studies
System Design Concepts: Thoroughly studied scaling, caching, load balancing, and sharding
The recruiter shared the interview sequence: two coding rounds, one system design round, and one behavioral round. The candidate scheduled final interviews for the first week of Novemberâtwo coding rounds on the same day, followed by the remaining rounds after a five-day interval.
Technical Rounds
Round 1: First Coding Interview
The first question involved Topological Sortâa LeetCode Hard problem. The candidate spent approximately 10 minutes devising the optimal solution and an additional 10-15 minutes writing the code.
The second question was a heap-based problem. The candidate presented 2-3 solutions but was unable to devise the most optimal one within the allotted time and ran out of time before fully addressing the second question.
Round 2: Second Coding Interview
The first question was based on Binary Searchâa LeetCode Medium problem. Fortuitously, the candidate had encountered a similar problem previously. Although the problem suggested dynamic programming with O(N²) complexity, the more efficient approach involved modified binary search. The candidate invested approximately 20 minutes solving the problem, including a dry run.
The second question was based on Disjoint Set Union. After analyzing examples, the candidate recognized the potential application of this data structure, explained the solution, and swiftly translated it into code.
The third question, based on string and sorting, was introduced with around 5 minutes remainingâan easy LeetCode problem. The candidate identified the optimal solution after several attempts but ran out of time to implement the code.
Round 3: System Design Interview
The system design interview centered around crafting a feature for the Instagram app:
Requirements Understanding (5 minutes): The candidate dedicated the initial 5 minutes to comprehending requirements
Functional and Non-functional Requirements: Formulated requirements aligned with Instagram's extensive user base, with particular consideration to the celebrity use case
High-Level Design: Presented a high-level design grounded in distributed systems for horizontal scaling
Follow-up Questions: Addressed numerous follow-up questions exploring alternative approaches
Low-level Design: Focused on API management strategies, client-side optimization, database schema, and implementation-related queries
The system design round concluded positively overall.
Round 4: Behavioral Interview
The candidate had an insightful discussion around previous project work relating to Meta's core values: Focus on Impact, Move Fast, and Live in the Future. Real examples were provided for situational and behavioral questions, demonstrating the candidate's approach to dealing with conflicts, handling mistakes, and taking initiatives.
Offer and Negotiation
One week later, the recruiter arranged a call to discuss the outcome. The candidate had been nervous about coding performanceâhaving solved only one problem in the first round and failing to code the third problem in the second round.
To the candidate's delight, the feedback revealed three strong hire ratings and one hire rating. The recruiter provided detailed feedback, extended congratulations, and offered the E5 software engineer position at Meta in London.
After clearing interviews, the candidate conducted online research to ascertain optimal compensation for an E5 Meta engineer in London and prepared a counteroffer. After three days, the recruiter called to discuss the offer. The candidate provided a counteroffer and disclosed competing offers. The recruiter advocated for the expected offer, and after two days conveyed approval of an enhanced offer.
Meta provided generous relocation benefits: 45 nights of accommodation in London, business class tickets for family, unlimited freight shipment from India, and a one-time bonus for relocation expenses. The candidate relocated to London in December 2021 and joined Meta.
Key Takeaways
The entire process spanned approximately 4 months from referral to offer. Meta's recruiters and engineers were consistently friendly and welcoming throughout, making the experience conversational rather than stressful.
Preparation is Key: With passion and diligent preparation, candidates can achieve their dream job at top tech companies
Interviewing is a Skill: The ability to perform well in interviews can be honed over time through consistent practice
Persistence Matters: Early setbacks should not discourage candidatesâlearning from both successes and failures leads to steady improvement
Time Management: Meta's "move fast" culture emphasizes the importance of solving problems efficiently within time constraints
System Design Matters: For senior positions, system design skills are crucial and require dedicated preparation
Conclusion
Meta's interview process for E5 software engineer positions is comprehensive and demanding, testing candidates across coding proficiency, system design capabilities, and cultural fit. The journey from referral to offer requires approximately 4 months of dedicated preparation, including technical skills refinement and behavioral preparation. Candidates who approach the process with thorough preparation, persistence, and a growth mindset position themselves well for success. The rewardâjoining one of the world's leading technology companies with competitive compensation and generous relocation benefitsâmakes the effort worthwhile for those aspiring to advance their careers at top tech companies.