Summary
I recently went through an online assessment for Meta on CodeSignal. The assessment involved implementing a task management system with multiple levels of functionality. The first level focused on basic task operations, while subsequent levels added more complexity, such as user management and task assignment. The final level had some unclear requirements, but the overall experience was challenging and provided a good understanding of system design concepts.
Full Experience
I participated in the Meta online assessment on CodeSignal. The assessment was divided into multiple levels, each adding more complexity to the task management system. Level 1 involved basic operations like adding, updating, and retrieving tasks. Level 2 introduced search and list functionalities with specific sorting rules. Level 3 added user management with quotas and task assignment. Level 4 had some unclear requirements, but it was a comprehensive exercise that tested both data structures and system design skills. The entire process was quite intense and required careful planning and attention to detail.
Interview Questions (1)
Implement a task management system with multiple levels of functionality. The first level involves basic operations like adding, updating, and retrieving tasks. The second level adds search and list functionalities with specific sorting rules. The third level introduces user management with quotas and task assignment. The fourth level has some unclear requirements but is part of a comprehensive system design exercise.
Summary
Had a Meta onsite E5 interview which included coding, AI, and system design rounds. The AI round was particularly challenging and had a negative impact on the overall experience.
Full Experience
Started with a coding round where I was asked to merge three sorted arrays and then solve the Binary Tree Right Side View problem. The interviewer was very supportive, asking me to explain my code and how I would test it.
In the AI round, I was given a problem where I had to find a subset of words that uses as many characters as possible without repeating any letters. The hint suggested using DFS, but the interviewer wasn't helpful, leading me to focus on passing unit tests. I managed to solve the first two but struggled with the third and fourth, and the interviewer's guidance was unclear.
The system design round involved designing Instagram with posts, images, and friends, and the interviewer asked about consistent hashing and handling high read traffic for the feed service.
The behavioral round covered conflicts with coworkers, negative feedback from managers, and handling ambiguous requirements. The AI round was a significant setback, affecting the overall outcome.
Interview Questions (4)
Given three sorted arrays, merge them into a single sorted array.
Given a binary tree, return the values of the nodes visible when viewed from the right side of the tree.
Given a list of words, find a subset that uses as many characters as possible without repeating any letter. The solution should use DFS and pass all unit tests.
Design a system for Instagram that handles posts, images, and friends. The interviewer asked about consistent hashing and strategies for handling high read traffic for the feed service.
Summary
I recently had a 45-minute phone screen interview with Meta for an SDE-2 role, which involved solving two Data Structures and Algorithms problems. I was selected for onsites.
Full Experience
I recently completed my phone screen interview for an SDE-2 role at Meta. The interview lasted 45 minutes and consisted of two challenging Data Structures and Algorithms problems, leaving very little time for overthinking.
I successfully navigated both problems and am pleased to share that I have been selected to proceed to the onsite rounds. I look forward to sharing my onsite experience soon.
Interview Questions (2)
Given an array of numbers nums and an integer K, determine if any subarray of exact length K contains duplicate elements.
Example:nums = [1, 2, 3, 4, 2, 5, 6], K = 4
Answer: true (subarray [2, 3, 4, 2] contains duplicates)
If K = 3
Answer: false
Given a binary tree, implement two specific view traversals:
1. Left View (Bottom-Up): Imagine standing on the left side of the tree and recording all visible nodes from the bottom up.
2. Right View (Top-Down): Imagine standing on the right side of the tree and recording all visible nodes from the top down.
The interviewer emphasized clarifying edge cases early on.
Preparation Tips
I found it crucial to use meaningful variable names, break down logic into small helper functions, and keep concerns separated (input parsing / core logic / output). Walking through test cases, including edge cases, was also important to demonstrate thoroughness.
Summary
I interviewed for an E6 ML-SWE role at Meta, encompassing multiple coding, system design, and behavioral rounds. Although I received a downleveled offer for E5, I ultimately declined it due to other compelling opportunities.
Full Experience
Coding Round 1
This round focused on algorithmic problem-solving. I was asked:
- The "K Closest Points to Origin" problem. I had to find the K points closest to the origin (0,0) from a given set of points.
- A variant of the "Subarray Sum Equals K" problem. Beyond just finding if a sum exists, I also had to return the length of the largest sub-sequence that sums to K.
Coding Round 2
The second coding round also tested my data structure and algorithm skills:
- The "Kth Largest Element in an Array" problem, with a variant where I needed to return the index of the element instead of the element's value itself.
- A unique, non-LeetCode problem. I was tasked with designing a system to issue tokens from a 16-bit integer space. The core constraint was that once a token is returned, the smallest available token should be re-issued next. I also needed to consider and handle various edge cases.
System Design Round
This round involved two significant system design challenges:
- Designing the entire end-to-end system for Instagram's video feed.
- Designing the feed ranking system for Facebook, with a specific emphasis on the second-stage ranker component.
Behavioral Round
The behavioral interview covered common topics such as conflict resolution, handling situations requiring pivoting, and other leadership principles.
Outcome
After completing all rounds, I received feedback that I was downleveled to an E5 offer. However, as I had other strong opportunities in both tech and finance, I decided to pass on the offer from Meta.
Interview Questions (6)
Given a 16-bit integer, I had to design a system to issue a token. The constraint was that once a token is returned, the smallest available token should be issued the next time. I also had to handle various edge cases.
Design an end-to-end system for Instagram's video feed.
Design the feed ranking system for Facebook, with a specific focus on the second-stage ranker.
Summary
I interviewed for an E4 Software Engineer role at Meta in Bangalore. After successfully clearing the screening rounds, I progressed to the main interview phase which included coding, an AI-assisted coding challenge, a behavioral assessment, and a product design round. Regrettably, I did not receive an offer.
Full Experience
Screening Rounds
The recruitment process for Meta began after a recruiter reached out to me via LinkedIn. I'm currently employed as an SDE-2 at a MAANG company. The initial screening involved an online assessment (OA) where I tackled a problem that evolved across 4-5 stages, with new conditions added progressively. I managed to solve all but the final stage. The core of the problem was about designing a cache for a database, necessitating a strong understanding of maps and LRU implementation.
Following the OA, I participated in a 45-minute coding interview with a Meta engineer, during which I was asked two specific problems. I successfully solved both, though the first problem was unfamiliar to me, causing me to spend a significant amount of time on it. I later received feedback from the recruiter that I had marginally passed the screening, primarily because my OA score wasn't perfect and my coding performance was considered 'OK' rather than a 'strong' signal.
Main Interview Rounds
The main interview consisted of four distinct rounds: one dedicated to coding, another to AI-assisted coding, a behavioral assessment, and a product design challenge. While initially scheduled over four separate days, it was consolidated into two rounds per day, approximately 14-15 days after I cleared the screening.
1. Coding (45 min)
This round was quite similar to my second screening interview. I was presented with two problems and had 45 minutes to solve them. I managed to complete the first question within just 10 minutes, which afforded me ample time to tackle the second problem and explore various approaches. I felt I delivered a strong positive signal in this round.
2. AI Assisted Coding (60 min)
This round mirrored the first screening OA, but with the added element of a 'weak AI' to provide assistance. The interviewer had a pronounced accent, making communication somewhat challenging, and after about 30 minutes, they ceased direct communication entirely, instructing me to direct any questions to the AI. The simplified problem involved being given 16 random cards and needing to select 3 that summed to 15 (with Ace=1, Jack=10, Queen=11, King=12). Once a set of 3 was chosen, those cards would be replaced from the deck. The ultimate goal was to successfully perform this 12 times until all cards were dealt. I was tasked with writing a program to achieve this. The interview started with debugging a failing unit test, which I successfully completed. However, I was unable to solve the primary problem. I perceived this round as a strong negative signal.
3. Behavior Round (45 min)
This round comprised standard behavioral questions, with a notable emphasis on scenarios involving challenges or negative outcomes at Meta. For instance, I was asked about resolving conflicts with managers, convincing team members to support my initiatives, my proudest project, dealing with difficult co-workers, instances of changing direction mid-execution, my biggest weakness, and a time I introduced a bug into production and what I learned from it. Overall, I felt this round went quite well and constituted a positive signal.
4. Product Design (45 min)
I was tasked with designing a food delivery website. I approached the problem using conventional methods often discussed in interview preparation videos. The discussion delved deeply into specific areas such as geospatial indexing for location-based restaurant searches, utilizing Elasticsearch for text-based search functionalities, and implementing cron jobs for managing real-time delivery notifications. While I personally felt the round progressed effectively, the interviewer did not appear entirely satisfied, though they did not explicitly articulate any specific concerns despite my attempts to engage them. I rated this round as an 'Ok to positive' signal.
Outcome
Three days following the interviews, I received notification that I had not been selected for the role. The only feedback provided by the recruiter was that one of my rounds had received a negative rating, which I strongly suspect was the AI-assisted coding round. Despite my repeated requests, no direct feedback was provided for the other rounds.
Interview Questions (14)
The online assessment problem was centered around building a cache for a database system. It required an understanding of how to use maps and implement the Least Recently Used (LRU) eviction policy efficiently.
Implement the next permutation algorithm, which rearranges numbers into the lexicographically next greater permutation of numbers. If such an arrangement is not possible, it must rearrange it to the lowest possible order (i.e., sorted in ascending order). The replacement must be in place and use only constant extra memory.
The second coding problem involved stream processing where operations needed to be performed based on the last 'k' elements. The most challenging operation was finding the median of these 'k' elements, similar to the well-known LeetCode problem 'Find Median from Data Stream' but with a sliding window constraint.
In the AI-assisted coding round, the simplified problem was as follows: I was given 16 random cards (Ace is 1, Jack is 10, Queen is 11, King is 12, other cards use their face value). I needed to pick 3 cards that sum to 15. Once these 3 cards were chosen, they would be removed from the deck and replaced. The objective was to successfully perform this selection 12 times, effectively dealing out all cards from the deck. I had to write a program to accomplish this.
How do you resolve conflict with your manager or higher-ups?
How do you convince others in your team to complete a task or initiative you are leading?
Tell me about a project you are proud of.
How do you deal with a difficult co-worker?
Tell me about an instance where you had to change direction mid-execution on a project.
What is your biggest weakness?
Tell me about a time you pushed a bug to production or something went wrong because of you. What did you learn from that experience?
I was asked to design a food delivery website. The discussion involved deep dives into geospatial indexing for location-based restaurant searches, utilizing Elasticsearch for word-based search functionalities, and implementing cron jobs for managing notifications related to deliveries.
Preparation Tips
My preparation involved general practice of data structures and algorithms, likely through platforms like LeetCode. For the product design round, I specifically adhered to the standard problem-solving approaches demonstrated in videos from 'Hello interview'.
Summary
I recently completed my full interview loop with Meta for a full-stack role but was unfortunately rejected. Despite what I felt was a strong performance across coding, system design, and a new AI-enabled round, I did not receive an offer.
Full Experience
Hey everyone, I recently finished my full interview loop with Meta and unfortunately got rejected at the end. Still, I wanted to share my full experience since posts like these really helped me during preparation.
My background includes an education from IIT Kanpur, working at a product-based startup, with 2.5+ years of full-time experience, plus 6 months + 2 months of internships.
Recruiter Reach-out (25th Sept)
A recruiter contacted me via LinkedIn, and we had a detailed conversation where she explained the role and expectations, the full hiring process, the elimination stage, timeline, interview structure, and prep tips.
The elimination stage consisted of three parts:
- Live DSA Elimination Interview (Zoom): This was 45 minutes. I received two DSA questions and managed to solve both within ~20 minutes. These were Ocean View Buildings (a standard LeetCode problem) and a Pattern–Target Matching problem where repeated characters can be removed to match the pattern. The interviewer was nice.
- Hard DSA Online Assessment: This one was genuinely tough. There were 4 questions, and I barely managed to finish them in time.
- Behavioral Assessment: This had situational questions like “In this scenario, what would you do?” which I answered using a Likert scale (Strongly Agree / Agree / Neutral / Disagree / Strongly Disagree). I found it simple overall, but I'd highly recommend understanding Meta’s values beforehand, as it helps align your responses.
Two days later, I was told I cleared the elimination stage and could schedule the full loop. I booked my interviews from 27th–31st October 2025.
Full Interview Loop (4 Rounds)
Every round was 45 minutes, except the AI-enabled round which was 60 minutes. Each round also included 5 minutes for an intro and 5 minutes at the end to ask questions.
1️⃣ Round 1 — Behavioral (45 minutes)
This round consisted of standard Meta behavioral questions, including topics like a project I’m proud of, a conflict with a teammate, a time I disagreed with someone, a time I had to follow someone else’s opinion, and ownership and failures. The interviewer asked rapid follow-up questions, which made it harder to strictly follow the STAR framework, but overall, I felt I handled it fine. My self-verdict: Hire.
2️⃣ Round 2 — Product Architecture (45 minutes)
Since the role was full-stack, I got a Product Architecture round instead of classical System Design. The prompt was to Design an Online Food Delivery App. I followed my complete framework: clarifications, high-level architecture, entities, services, API design, functional + non-functional requirements, scalability + edge cases, and follow-up questions. This felt like my strongest round, and the interviewer seemed impressed. My self-verdict: Hire → Strong Hire.
3️⃣ Round 3 — AI-Enabled Coding Round (60 minutes)
This is a new Meta format, introduced around October 2025. I received a partially built game scenario and had to understand the existing codebase, fill in missing logic, and optimize a final strategy. The interviewer was very friendly and helpful. Since this format was new, I didn’t have much prior information, but I still felt I did well. My self-verdict: Leaning Hire → Hire.
4️⃣ Round 4 — Pure DSA (45 minutes)
This round had two coding problems: LRU Cache and a String manipulation problem to check if a string can be made palindrome after deleting certain characters. For both, I explained the brute force approach, then an optimized approach, wrote clean code, and covered edge cases. My self-verdict: Hire → Strong Hire.
Final Result ❌
I was honestly expecting a positive result based on how the interviews went… but after 10–12 days, I received the rejection email. They did not share any specific feedback, which would have been really great. It stung, because I felt I performed well in most rounds — but that’s how interviews go sometimes.
Let me know if you have any questions!
Interview Questions (5)
Given an array of building heights, return a list of buildings that have an ocean view. A building has an ocean view if all the buildings to its right are shorter. This is a standard LeetCode problem.
Given a pattern and a target string, determine if the target string can be matched to the pattern by removing repeated characters from the target string.
Design an online food delivery application. The design should cover various aspects including clarifications, high-level architecture, identifying key entities, defining services, designing APIs, considering functional and non-functional requirements, scalability, and handling edge cases.
Implement a Least Recently Used (LRU) Cache, which is a common data structure challenge.
Given a string, determine if it can be made into a palindrome by deleting certain characters.
Preparation Tips
For behavioral rounds, I focused on understanding Meta's values to align my responses, which I highly recommend. For system design, I utilized a comprehensive framework covering architecture, entities, APIs, and requirements. I also found that reviewing interview experiences shared by others was beneficial for my overall preparation.
Summary
I recently interviewed with Meta for an E4 Product role, navigating through a phone screen and multiple onsite rounds, where I successfully tackled various coding, system design, and behavioral challenges.
Full Experience
My Meta E4 Interview Experience
I recently interviewed with Meta for their Product role at the E4 level and wanted to share my experience across the phone screen and onsite rounds.
Before the phone interview, I completed two assessments:
- A coding assessment with 4 stages
- A work-style assessment
Phone Screen
- Count number of 1s in a given subarray in a large array of 1s and 0s. I was given indices for the start and end of the subarray. I started with a simple linear approach, then optimized it to a prefix-sum solution:
prefix[end] - prefix[start - 1]. Follow-ups included questions on handling digits 0–9 instead of binary, and how to handle cases likestart > end. - Find Lowest Common Ancestor of a Binary Tree. I implemented the standard recursive LCA algorithm and walked through examples. I missed one edge case where
pandqhave the same value, and needed a small hint for the scenario where both references point to the same node.
Overall Phone Screen Feedback was positive: strong coding, clear communication, and fast implementation. Improvements were suggested in clarifying questions and edge-case coverage.
Onsite Rounds
Round 1
- Find first 1 in a sorted binary matrix. I solved this problem cleanly.
- Trapping Rain Water. I solved this problem cleanly.
Round 2 (Design Round)
I was asked to design a concert ticket booking service for a small scale (one venue, many concerts). I discussed requirements, user flows, API design, data model, and bottlenecks. I drove the conversation end-to-end, providing detailed but clear explanations, and moved quickly through the design choices. I also pushed back when needed to clarify assumptions.
Round 3
- Valid Palindrome II.
- Valid Word Abbreviation.
I solved both of these problems without any issues.
Round 4 (Behavioral)
This was a standard behavioral round with questions focused on handling ambiguity, conflict resolution, and using data to drive decisions. It was a straightforward conversation centered around my past experiences, demonstrating ownership, and highlighting collaborative efforts.
Interview Questions (8)
Given a large array of 1s and 0s, and indices for the start and end of a subarray, count the number of 1s within that subarray. Follow-ups included handling digits 0-9 instead of binary, and cases like start > end.
Find the Lowest Common Ancestor (LCA) of two given nodes in a binary tree.
Find the position of the first '1' in a matrix where each row is sorted and contains only 0s and 1s.
Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it can trap after raining.
Design a concert ticket booking service, specifically for a small scale scenario with one venue and multiple concerts. The discussion covered requirements, user flows, API design, data modeling, and identifying bottlenecks.
Given a string s, return true if the s can be palindrome after deleting at most one character from it.
Given a word and an abbreviation, check if the word matches the abbreviation. For example, 'internationalization' can be abbreviated as 'i12n' or 'i5s4n'.
This round involved standard behavioral questions, with a focus on topics such as handling ambiguity, resolving conflicts, and using data to inform decisions. The conversation revolved around past experiences, ownership, and collaboration.
Summary
I interviewed for a SWE Product role at Meta in the USA, facing two coding problems: a binary tree column traversal and a complex problem involving friend request logic for centaurs. I couldn't fully solve the second problem but explained my approach.
Full Experience
I recently had an onsite coding interview at Meta for the SWE Product role in the USA. The interview session included two non-AI coding challenges. The first question was a standard binary tree column traversal problem, which I found quite straightforward. The second problem was more involved: designing friend request logic for mythical creatures called centaurs, based on several age-related rules. I struggled a bit with this one and wasn't able to code up a fully working solution covering all the rules within the given time. However, I made sure to clearly communicate my thought process and approach to the interviewer, detailing how I would tackle the problem. I later revisited the problem myself and realized it's manageable if framed correctly.
Interview Questions (2)
Given a binary tree (NOT BST), print the column traversal from leftmost column to rightmost column. If two nodes are in the "same column", the top most node in that column should appear before the bottom most node.
We are building facebook for mythical creatures called centaurs. Centaurs live much longer than humans and we want to understand the number of friend requests when we launch the app. Here's how centaur friendships work (you will be expected to gather some requirements though b/c the interviewer explained the problem in a confusing way):
- Centaurs younger than 100 can friend other Centaurs younger than 100
- Centaurs older than 100 can friend centaurs that are strictly older, but not younger than 100
- Centaurs older than 100 can friend Centaurs older than x/2 + 7
Given a list of ages, return the number of friend requests. Friend requests for centaurs are directional (eg: just because I friend request you doesn't mean you automatically reciprocate the same)
Summary
I interviewed for a SWE Product role at Meta, participating in an AI coding round. This unique experience involved debugging existing utility functions and implementing a solution for an NP-Complete problem involving word subsets, which I solved but struggled to optimize.
Full Experience
My onsite interview process at Meta for a SWE Product role included an AI coding round, a non-AI coding round, a system design interview, and a behavioral interview. For the AI coding round, I was presented with a coderpad equipped with 'AI Assist' mode, offering lightweight foundation models. I chose Claude Haiku 3.5 and was given a codebase consisting of main.py, test.py, solve.py, utils.py, and a data/ directory.
My first task was to fix two failing unit tests in utils.py, which involved minor logic errors and debugging with print statements. The second task was to implement solve.py, a stubbed function designed to take a list of words and identify a subset meeting a specific property. I leveraged AI Assist to craft a good prompt, which helped me generate working code that passed the provided unit tests. However, my solution for this part was exponential time. When asked to optimize, I struggled to find a more efficient approach, later discovering from the interviewer that it was an NP-Complete problem. This was quite an unforgettable experience, highlighting the practicality of such rounds despite the challenging time complexity question.
Interview Questions (2)
I was given a utils.py file with utility functions, where 2 out of 4 unit tests were failing. The task was to fix these minor logic errors. The coderpad provided 'run code' and 'run tests' buttons for debugging, so no manual tracing was required.
The problem involved implementing a stubbed function in solve.py. This function needed to take a list of words and identify a subset of these words that met a certain, unspecified property. This was later revealed to be an NP-Complete problem.
Preparation Tips
To prepare for the AI coding round, I learned to set aside traditional LeetCode grinding, as it wouldn't be as helpful. Instead, I focused on understanding how to effectively use AI Assist with lightweight foundation models like Claude Haiku, practicing careful prompt crafting. A significant part of my preparation involved working with medium-sized codebases across several files (e.g., main.py, test.py, utility modules), similar to the sample codebase Meta provides. The key was to demonstrate responsible AI usage rather than relying on it as a crutch.
Summary
I recently completed my first technical phone screen at Meta for a Mid-level Software Engineer role, where I was tested on two data structure and algorithm problems.
Full Experience
I just got done with my first technical screen in Meta for a Mid-level Software Engineer position, specifically targeting Java roles. The interview involved two distinct data structure and algorithm questions. I felt prepared for both, and I'm looking forward to the next steps.
Interview Questions (2)
Given the root of a binary tree, find the minimum element present in each level. This problem is similar to a standard level-order traversal, but the objective is to track and return only the minimum value found within each level. A follow-up question was posed: how would one achieve this solution with an O(log n) space complexity?
Implement a `Sorted List Iterator` that operates on a collection of `k` sorted lists (given as a `List>`). The iterator should expose two primary functions:
public boolean hasNext(): Returnstrueif there are more elements to iterate,falseotherwise.public int next(): Returns the next minimum element across all `k` sorted lists.
This problem combines concepts from 'Merge K Sorted Lists' and an iterator design, specifically referencing an Airbnb interview question.
Summary
Applied for the Senior Security Engineer role at Meta in London. The screening process included a few questions related to IAM concepts and a coding problem. The outcome of the interview is pending.
Full Experience
Company: Meta
Location: London
Position : Senior Security Engineer
1. Few Questions related to IAM - RBAC, ABAC
2. Check if a number is strobogrammatic
Interview Questions (2)
Questions related to IAM concepts, specifically focusing on RBAC (Role-Based Access Control) and ABAC (Attribute-Based Access Control). These questions likely covered the principles, use cases, and differences between the two models.
Determine whether a given number is strobogrammatic. A strobogrammatic number is one that appears the same when rotated 180 degrees. Valid digits after rotation are 0, 1, 8, and the pairs 6 and 9, 9 and 6.
Summary
I interviewed for a Software Engineer position at Meta in Bengaluru and was rejected after the phone screen, despite solving both technical questions asked.
Full Experience
I was recently approached by an HR from Meta for a Software Engineer role. During the phone screen round, the interviewer asked me two coding questions. I believe I solved both of them correctly with proper code and logic. Despite my efforts, I unfortunately received a rejection for the Software Engineer role.
Interview Questions (2)
Summary
I interviewed with Meta, navigating through a phone screen and two onsite coding rounds, including a custom BFS problem, and culminating in a system design discussion about an online chess game.
Full Experience
My interview journey with Meta began with a phone screen, where I was presented with LC 408 (Valid Word Abbreviation) and LC 791 (Custom Sort String). The onsite rounds followed. In Coding Round 1, I tackled LC 1650 (Lowest Common Ancestor of a Binary Tree III), where the interviewer specifically delved into the rationale behind the optimal space-efficient solution, and LC 1249 (Minimum Remove to Make Valid Parentheses). Coding Round 2 involved a variation of LC 8 (String to Integer (atoi)) and a challenging custom problem: '0-1-2 BFS on a Grid' to find the minimum cost path. I initially approached it with BFS and a heap, but the interviewer pressed for a solution without a heap, which I couldn't provide within the time limit. The final round was a System Design interview, where I was asked to design a 1v1 online chess game along with a leaderboard.
Interview Questions (7)
You are given an m × n grid. Each cell contains an integer value from {0, 1, 2} representing the cost to enter that cell. You can move up, down, left, or right. Your task is to find the minimum cost required to move from the top-left cell (0, 0) to the bottom-right cell (m-1, n-1). [this is not min of total sum of path]
Example 1:
grid = [
[0, 0, 2],
[0, 1, 1],
[1, 2, 1]
]
Output: 1
Example 2:
grid = [
[0, 0, 2],
[0, 2, 2],
[2, 2, 0]
]
Output: 2
Design an online 1 vs 1 chess game along with a leaderboard system.
Summary
I recently interviewed for an E5 role at Meta in London, which consisted of a comprehensive loop including a screening round, two data structures and algorithms rounds, a behavioral round, and a system design round. I encountered a variety of challenging problems ranging from merging sorted arrays to designing a messaging service like WhatsApp.
Full Experience
Screening Round
My interview process began with a screening round, which featured two questions that I would classify as easy to medium difficulty.
Full Loop Interviews
Following the screening, I moved on to the full loop, which was structured as follows:
1. Behavioral Round
This round focused on my past experiences and how I handled various situations, typical of a behavioral interview.
2. DSA Round 1
In the first data structures and algorithms round, I was presented with two problems:
- One involved determining if a matrix represented as an array was a Toeplitz matrix.
- The other was a problem similar to finding the maximum consecutive ones with some allowed flips.
3. DSA Round 2
The second DSA round also had two questions:
- The first asked me to remove extra parentheses to make a string valid.
- The second was about finding the shortest path in a 1-0 matrix from the top-left to the bottom-right corner.
4. Design Round
The final round was a system design interview where I was asked to design WhatsApp, specifically emphasizing the use of API calls instead of websockets for communication.
Interview Questions (6)
Given an array, determine if it represents a Toeplitz matrix. A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same elements.
A problem similar to finding the maximum number of consecutive ones in a binary array, potentially allowing a certain number of zero flips.
Given a string s of '(' , ')' and lowercase English characters, remove the minimum number of parentheses ( '(' or ')') so that the resulting parentheses string is valid. Return any valid string.
Given an n x n binary matrix grid, return the length of the shortest clear path in the matrix. A clear path is a path from the top-left cell (0, 0) to the bottom-right cell (n - 1, n - 1) such that all visited cells are 0 and all adjacent cells in the path are 8-directionally connected.
Design a system similar to WhatsApp, focusing on using API calls for communication rather than websockets.
Summary
I had a tech screen at Meta where the interviewer guided me through two coding problems. While I initially struggled with the problems, I was able to suggest the correct approach for the first one. I'm currently unsure about the outcome due to the significant help I received.
Full Experience
My recent tech screen at Meta was quite an experience. The interviewer was incredibly supportive, guiding me throughout the session. Even though I had prepared extensively with the top 70-75 LeetCode questions, the problems presented were distinct. I initially explored a few approaches that didn't quite work out, but for the first question, I eventually proposed the correct strategy, which involved using prefix sums. The second question was also unique, not following the typical patterns of problems like 2sum or 3sum. Overall, I received a fair bit of assistance from the interviewer, leaving me uncertain about the final outcome, as I understand that naive solutions are generally not sufficient.
Interview Questions (2)
Given an array, return an index for which the sum of the elements to its left is equal to the sum of the elements to its right. For example, in [2,3,4,5], the index 2 is the answer because arr[0]+arr[1] (which is 2+3=5) equals arr[3] (which is 5).
Given an array, find the maximum of two numbers in the array such that these two numbers are not adjacent.
Preparation Tips
I prepared for the interview by studying the top 70-75 LeetCode questions.
Summary
My Meta onsite interview experience in Bangalore, India, involved four rounds: AI-enabled coding, DSA, behavioral, and product architecture design. A key takeaway was the importance of clarifying ambiguous problem statements throughout the process.
Full Experience
I went through a comprehensive onsite interview experience at Meta in Bangalore, India, which consisted of four rounds. The order of these rounds was flexible and depended entirely on panel availability.
Round 1: AI-Enabled Coding Interview (60 minutes)
This round was quite unique. I was given an existing codebase, complete with .h and .cpp files, along with test files. The goal was to assess my problem-solving, code development and understanding, verification and debugging, and technical communication skills. It wasn't about using AI as a crutch, but rather as a tool to demonstrate my coding proficiency more efficiently and in a job-relevant manner. I had to run and execute code using existing data files and/or codebases to work through a coding problem. It felt very different from the standard coding interview format.
Round 2: DSA Round (45 minutes) This round presented two problems. The first problem involved determining if two given rectangles, specified by their coordinates, intersect. If they did, I was asked to return all points of intersection. This problem seemed straightforward initially, but I ended up wasting a significant amount of time on it. The second problem was quite vague and related to graph DFS. The interviewer initially asked me to implement two functions, but after I pressed for a lot of clarifying questions, he revealed that those functions were already implemented, and I only needed to implement a third function. By this point, only 7-8 minutes were left. He asked me to code whatever solution I could, and I managed to code the entire solution to his satisfaction. I realized how crucial it is in Meta interviews to proactively clarify the problem statement myself.
Round 3: Behavioral Round In this round, the interviewer focused on understanding how my skills and experience would benefit Meta and how I approach unfamiliar problems. Key areas of discussion included resolving conflict and embracing ambiguity. No specific coding or design problems were posed here.
Round 4: Product Architecture Round This round, which shouldn't be confused with a typical system design interview, challenged me to design privacy level settings for a user within the Facebook app. The settings included options like "Me," "Public," "Friends," and "Friends of Friends." I had to ask numerous clarifying questions to fully grasp the problem statement. I'm uncertain about my performance in this round, but I attempted to list all functional and non-functional requirements, sketch a high-level architecture diagram, identify key entities, and discuss API aspects. The interviewer rigorously questioned me on the database schema and entity relationships, particularly focusing on the "Friends of Friends" case and potential optimization techniques.
Overall, I found that the questions across all interview rounds were often presented in a very vague and open-ended manner, and candidates are clearly expected to proactively clarify them.
Interview Questions (2)
Given the coordinates of two rectangles, determine if they intersect. If they do, return all the points of intersection.
Design privacy level settings for a particular user for the Facebook app, covering options like 'Me', 'Public', 'Friends', and 'Friends of Friends'.
Summary
I had my first round interview for a SWE II, Product role at Meta, which was a 45-minute session involving two coding problems. I managed to achieve an optimal solution for the first question and a working solution for the second, and I'm currently awaiting feedback.
Full Experience
I recently completed my first round for a SWE II, Product role at Meta, for a US-based position. The interview itself was 45 minutes long, and I was expected to solve two problems. My interviewer was quite chill, and I had a good 5-10 minutes at the end to ask them about their experience working on the Brand Ads Team within Monetization. I felt good about my performance on the first question, as I achieved an optimal solution. However, for the second question, I only managed a working solution. I couldn't come up with a more optimal time or space complexity for the second problem, and I'm hoping my working solution is enough to move me forward in the process.
Interview Questions (2)
Given a string and an ordering (presumably a mapping or an array of indices), shuffle the characters of the string such that the specified ordering is met. I discussed a few edge cases with the interviewer, but the implementation was really straightforward.
You are given an M x N grid where '0' represents safe cells and '1' represents walls. You need to determine the shortest path from the top-left cell (0,0) to the bottom-right cell (M-1, N-1). The shortest path is determined by the least number of steps.
Summary
I recently interviewed with Meta for an E6/E5 role. After a successful phone screen and strong performance in most onsite rounds, I received a downlevel offer for an E5 position and am currently in the team matching phase.
Full Experience
My interview journey with Meta started with a phone screen, which included both a coding and a behavioral segment. For coding, I tackled Merge Two Sorted Arrays and a variant of Time Based Key-Value Store. The interviewer for the latter asked me to implement a treemap from scratch, and I managed to build all core functionalities, excluding tree balancing due to time limits. The behavioral part focused on conflict resolution, with several follow-up questions.
The onsite interviews for the E6 level were quite comprehensive. I had two system design rounds: one for Designing a Price Tracking and Alerting System and another for Designing a Create and Search System for Posts. Unfortunately, I couldn't deep dive into the second system design problem as much as I would have liked.
My coding rounds were intense. In the first coding session, I worked on Count Nodes Equal to Average of Subtree and a variant of Minimum Window Substring, each with a couple of follow-up questions. The second coding round presented Nested List Weight Sum and Find Kth Smallest Element Amongst N Sorted Arrays. I struggled to get to the follow-up for the second problem due to time.
Finally, I had a behavioral interview with 7-8 questions covering aspects like scope, impact, and how I handle conflicts. Overall, I felt that most of my interviews went almost perfectly.
The outcome was a downlevel to E5, and I am now in the team matching phase.
Interview Questions (10)
Merge two given sorted arrays into a single sorted array.
A variant of the Time Based Key-Value Store problem. I was asked to implement a treemap data structure from scratch, including its core functionalities, excluding the tree balancing part.
Behavioral question focused on how I resolve conflicts, followed by several follow-up questions.
Design a system capable of tracking product prices and sending alerts when prices change or meet certain criteria.
Design a system that allows users to create posts and search for existing posts efficiently.
Count the number of nodes in a binary tree where the node's value is equal to the average of the values in its subtree (including the node itself).
A variant of the Minimum Window Substring problem, followed by 1-2 follow-up questions.
Given a nested list of integers, return the sum of all integers in the list weighted by their depth. Each element is either an integer or a list -- whose elements may also be integers or other lists.
Find the kth smallest element among N given sorted arrays, followed by follow-up questions.
A session with 7-8 behavioral questions covering topics such as scope, impact, and conflict resolution.
Summary
I recently completed my Meta E5 interview, which included a screening round, two coding rounds, a system design round focused on infrastructure, and a behavioral round. Despite solving most problems and thoroughly discussing the system design, I have a mixed feeling about the overall outcome.
Full Experience
I recently finished my Meta E5 interview process.
Screening
The screening round consisted of two coding problems:
- Minimum Remove to Make Valid Parentheses
- Valid Palindrome II
Both were straightforward string problems, and my focus was on clean implementation and handling all edge cases effectively.
Onsite Rounds
Coding Round 1
In the first coding round, I tackled two problems:
- Dot Product of Two Large Sparse Vectors: I discussed all possible approaches, including hash map and binary search. Due to time constraints, I implemented the hash map approach.
- Left View and Right View of a Binary Tree: I successfully solved this problem using a Breadth-First Search (BFS) approach.
Although I managed to solve both problems within the allotted time, clearly explained the time and space complexity, and performed complete dry runs, I still have a weird feeling about this particular round.
Coding Round 2
The second coding round also had two problems:
- Move all even numbers to the left (in-place): I used a two-pointer approach for this, as the order of elements didn't matter.
- Basic Calculator II: I walked through both stack-based and an optimized single-pass solution. For the actual implementation, I opted for the without-stack approach for better clarity.
System Design (Infra-focused)
For the system design round, the prompt was to design LeetCode for 50,000 users. I took the lead throughout the discussion, clearly defining the functional and non-functional requirements, sketching out APIs, and detailing the architecture (API Gateway → Queue → Worker → Sandbox → Storage). We delved into aspects like async job handling, container orchestration, and fault recovery.
Cross-questions were also posed, such as "Why DynamoDB over SQL?" and "What happens if a container or worker node fails?" I thoroughly explained retry semantics using SQS and the node re-spawn behavior in detail.
Behavioral
The behavioral round consisted mostly of standard questions. While one of my answers didn’t come out as structured as I had intended, overall I felt this round went acceptably.
Interview Questions (7)
This was a straightforward string problem, focusing on clean implementation and handling edge cases.
This was a straightforward string problem, focusing on clean implementation and handling edge cases.
I explained all possible approaches (hash map vs. binary search) and ended up implementing the hash map approach due to time constraints.
I was able to solve it using BFS.
I solved this problem using a two-pointer approach, noting that the order of numbers didn’t matter.
I walked through both stack-based and optimized single-pass solutions, and implemented the optimized version without a stack for clarity.
I led the conversation end-to-end, clearly defining functional and non-functional requirements, APIs, and the architecture (API Gateway → Queue → Worker → Sandbox → Storage). We also discussed async job handling, container orchestration, and fault recovery.
Summary
I recently interviewed onsite at Meta for an unspecified role, going through four rounds covering data structures, algorithms, system design, and behavioral questions. I believe I performed well, coding and dry running all problems, and am now awaiting the results.
Full Experience
I had my onsite interview at Meta, which consisted of four challenging rounds.
- Round 1 focused on data structures and algorithms. I was asked to implement the left and right view of a binary tree, and then to merge three sorted arrays while also removing any duplicate elements.
- Round 2 was a behavioral round where I answered questions about my past experiences and how I handle various situations.
- Round 3 was a system design interview where I had to design a system for ad recommendations.
- Round 4 involved more coding, specifically implementing a basic calculator that handles only addition and multiplication, and then designing a data structure that supports insert, delete, update, and getRandom operations all in O(1) time.
I was able to code everything and dry-run several examples for each problem. I'm currently waiting for the final results.
Interview Questions (5)
Given a binary tree, I had to implement algorithms to find its left view and its right view. The left view includes the nodes seen when looking from the left side, and the right view includes nodes seen when looking from the right side, typically the first node at each level.
I was given three already sorted arrays and tasked with merging them into a single sorted array. An important constraint was to remove any duplicate elements in the final merged array.
I was asked to design a system that can provide relevant ad recommendations to users. This involved discussing various components like data collection, user profiling, ad selection algorithms, ranking, serving infrastructure, and considerations for scalability and latency.
I needed to implement a basic calculator that could evaluate an expression string involving non-negative integers, addition ('+'), and multiplication ('*') operators. The key was to correctly handle operator precedence (multiplication before addition).
The task was to design a data structure that supports four operations—inserting an element, deleting an element, updating an existing element, and retrieving a random element—all with an average time complexity of O(1).
Summary
I recently interviewed with Meta for a Software Engineer position. Despite successfully solving two coding problems during the technical screen, I later realized a critical error in one of my solutions, which ultimately led to a rejection.
Full Experience
I've been preparing on and off for over a year, constantly trying to get calls from leading companies. Finally, I received an interview invitation from Meta for a Software Engineer role, which felt like a significant breakthrough as it was the first FAANG company to reach out to me after numerous applications. I asked for three weeks to prepare and dedicated that time to solving around 150 Meta-tagged problems.
On the interview day, I faced two coding challenges. The first was 'Missing Elements in Sorted Array'. I managed to solve it, although I felt I struggled a bit with explaining my thought process. The second question was 'All Nodes Distance K in Binary Tree'. I was genuinely happy to see this problem as I was quite familiar with it. I almost made a mistake but caught it during my dry run and corrected it. I left the interview feeling confident that I had performed well and would advance to the next round.
However, a few hours later, a crushing realization hit me: I had completely forgotten to implement a visited set in my BFS approach for the second problem. This oversight rendered my entire solution incorrect. The very next day, I received a rejection email. A small part of me had hoped for a different outcome, but it wasn't meant to be. This experience has left me feeling quite disheartened, especially after dedicating three weeks to intense preparation that now feels wasted. I also acknowledge my weaknesses in LLD/HLD, which have been factors in previous interview failures, and this latest rejection just adds to a streak of disappointments.
Interview Questions (2)
The first coding problem I encountered was titled 'Missing Elements in Sorted Array'. I was tasked with identifying elements that were absent from a given sorted array.
The second problem was 'All Nodes Distance K in Binary Tree'. This involved finding all nodes in a binary tree that are exactly 'K' distance away from a given target node.
Preparation Tips
My preparation involved consistent effort over a year. Specifically for this Meta interview, I dedicated three intensive weeks to solve approximately 150 problems tagged for Meta on LeetCode.
Summary
I interviewed for an E5 (Prod) Engineer role at Meta in the U.S. After navigating through both phone and onsite rounds, I unfortunately received a rejection, which left me feeling quite exhausted.
Full Experience
My interview process for the E5 (Prod) Engineer position at Meta in the U.S. involved two main stages: a phone screen and an onsite loop.
The phone screen included two coding problems:
- Binary Tree Vertical Order Traversal
- Minimum Window Substring
The onsite interviews were quite intensive, covering a range of topics:
- Coding Round 1: Buildings With an Ocean View, with a follow-up on handling views from two sides.
- Coding Round 2: A modified version of Insert Delete GetRandom O(1) - Duplicates allowed, where the
remove()function wouldn't take a value, and the value to be removed had to be random. - Coding Round 3: Power(x,n)
- Coding Round 4: Minimum Remove to Make Valid Parentheses
- System Design: Design Netflix
- Behavioral: A standard behavioral questions round.
I heard back after about a week. Despite my efforts, I was rejected. The process took a lot of my time and energy, and honestly, I'm feeling quite exhausted and low on motivation now. Good luck to others going through it.
Interview Questions (7)
You are given an integer array heights of size n representing the heights of n buildings located from left to right. Return an array of the indices of the buildings that have an ocean view. A building has an ocean view if all the buildings to its right are strictly shorter than it. Follow up: Consider the scenario where you can view from two sides (left and right).
Design a system similar to Netflix.
Summary
I recently interviewed for a Production Engineer role at Meta, encountering both a coding challenge involving file processing and a system troubleshooting scenario. Despite my efforts, I was ultimately rejected.
Full Experience
I recently had a phone screen for the Production Engineer role at Meta. The interview consisted of two main rounds. The coding round involved two questions. One was a difficult 'Battleship board variant' that I don't recall the exact details of, but it was beyond what I had practiced, requiring strong DFS/BFS skills. The second coding question asked me to write a program to read multiple files and identify common words, along with the files they appeared in. The troubleshooting round presented an open-ended scenario: given standard system metrics (I/O, disk, CPU), what additional information would I gather for a frequently crashing site? I felt I performed around 8/10 in coding and 10/10 in troubleshooting. However, the recruiter informed me that my performance wasn't satisfactory in either, which felt disheartening, as if they had already decided not to move forward.
Interview Questions (2)
Multiple files were given, and I had to write a program to read those files and print the common word(s) along with the file(s) they belong to.
If all the standard metrics (I/O, disk, CPU, etc.) are already provided, what additional information would you gather from the system for a site that frequently goes down?
Preparation Tips
My preparation involved thorough practice of DFS and BFS algorithms. However, I found that relying solely on LeetCode's 'Meta' tagged questions was insufficient, as the problems I faced, particularly the file-handling ones, were quite unique and unpredictable. My advice for others would be to expand beyond common tagged questions and focus on a deeper understanding of fundamentals and diverse problem types.
Summary
I successfully cleared the technical screen at Meta for an E4 level position after progressing through an online assessment. The interview primarily focused on two data structures and algorithms problems, and I'm now scheduled for the full onsite loop.
Full Experience
I was initially approached by a recruiter and had a phone screen. Following that, I completed an online assessment which was cloud-based. I managed to progress through all four stages of the OA; although I didn't ace every hidden test in the final stage, my score was sufficient to move forward to the next round. The technical screen for the E4 level was my next step, which I successfully cleared. The interview revolved around two specific coding questions. I have a full onsite loop scheduled in the coming weeks.
Interview Questions (2)
Summary
I interviewed for an E4 position at Meta in London, completing a behavioral round and two coding rounds. My system design interview is scheduled for next week. I felt demotivated after the first coding round due to a challenging question I didn't fully solve optimally.
Full Experience
My interview journey for an E4 role at Meta in London started with a behavioral round where I tackled standard questions, ensuring my answers were backed by real-life examples and could handle follow-up questions effectively.
The first coding round presented two problems. First, I was asked to find the Closest BST Value. After discussing BST properties, I provided and coded an optimal solution. The second question, Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit, was unexpected. I proposed a two-pointer approach, coded it, and dry-ran it. The interviewer seemed satisfied, but post-interview, I discovered the optimal solution involves two deques, which left me feeling a bit disheartened.
In the second coding round, the first problem was to find the Kth Largest Element in an Array. I initially described a brute-force solution and then optimized it using a min-heap. A follow-up explored how the approach would change with many reads and memory constraints. The second problem was Peak Element. I started with a brute-force approach and struggled slightly with explaining the binary search solution before coding the optimal one. A minor bug in my conditions was subtly hinted at by the interviewer during a follow-up.
My System Design round is scheduled for next week, and I will update once it's completed. Overall, the unexpected difficulty in the first coding round's second question has left me quite demotivated given Meta's expectations.
Interview Questions (3)
Find the longest continuous subarray where the absolute difference between any two elements is less than or equal to a given limit. I initially proposed a two-pointer approach, which I explained and coded, and then dry-ran. Although the interviewer seemed satisfied, I later realized the optimal solution requires two deques.
Find the Kth largest element in an unsorted array. I initially gave a brute-force approach, and when asked for optimization, I suggested the min-heap approach. There was a follow-up about how the approach would change if there were many reads and the array could fit in memory.
Find a peak element in an array. A peak element is an element that is strictly greater than its neighbors. I first described a brute-force method. I struggled a bit while explaining the binary search approach. I coded the optimal solution, and the interviewer gave a hint about a minor bug in my conditions through a follow-up question.
Summary
I recently completed my Meta E4 interview in London, which included a behavioral round and two coding rounds, with a system design round pending. I felt somewhat discouraged after encountering an unfamiliar problem in the first coding round, despite performing well in other areas.
Full Experience
I had my E4 interview at Meta in London. The process started with a behavioral round, where I answered standard questions with follow-ups, ensuring to provide real-life examples.
My first coding round featured two problems. The first was on 'Closest BST Value'. I discussed various questions related to BSTs, then presented an optimal approach for this specific problem and successfully coded it. The second question, 'Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit', was completely unexpected. I hadn't seen it before, and it wasn't among the top 100 tagged problems. I proposed a two-pointer approach, explained it thoroughly, wrote the code, and dry-ran it. I even asked the interviewer twice if they were satisfied, and they confirmed yes. However, after the interview, I realized the optimal solution involves two deques, making me question why the interviewer didn't guide me, especially since we finished 5 minutes early. This particular question left me feeling quite discouraged, given Meta's high expectations.
The second coding round also had two questions. For 'Kth Largest Element', I initially presented a brute-force approach and then optimized it using a min-heap. The interviewer then asked a follow-up on how the approach would change for frequent reads with an in-memory array. The second question was 'Peak Element'. I started with a brute-force idea and then moved to the binary search approach, struggling a bit with the explanation. I coded the optimal solution, but there was a minor bug in my conditions, which the interviewer subtly hinted at during a follow-up.
My System Design round is scheduled for next week, so the overall process is still ongoing. The challenge with the second question in the first coding round has certainly made me reflect.
Interview Questions (4)
I was asked a few questions on Binary Search Trees, then specifically this problem. I provided an optimal approach and then coded it up.
This question caught me off guard as I hadn't seen it before. It's not among the top 100 tagged problems. I proposed a two-pointer approach, explained it, wrote the code, and dry-ran it. The interviewer confirmed satisfaction with my solution, but later I realized the optimal solution involves two deques, which I missed.
I initially gave a brute-force approach. When asked for optimization, I suggested using a min-heap. The interviewer followed up on how the approach would change if there were many reads and the array could fit in memory.
I first explained a brute-force approach and then tried to explain the binary search approach, which I struggled with a bit. I coded the optimal solution, and the interviewer hinted at a minor bug in my conditions during a follow-up question.
Preparation Tips
My preparation involved practicing various LeetCode problems. However, encountering a question like 'Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit' that wasn't among commonly tagged problems highlighted the need for more comprehensive preparation beyond just popular questions.
Summary
I recently completed the full interview loop with Meta, which included a technical screening, two coding rounds, a system design discussion on Netflix API, and behavioral questions. My preparation involved focusing on Meta's top 100 questions.
Full Experience
I recently went through the complete interview process for Meta. It began with an HR call, followed by an Online Assessment that covered both technical and behavioral aspects.
The technical screening involved a coding problem described as a 1D Candy Crush variation, for which a link to Max Consecutive Ones III was provided.
The full loop consisted of two intensive coding rounds. In the first coding round, I tackled 'Closest Value to Target in a BST' and Next Permutation. The second coding round presented Sum Root to Leaf Numbers and Simplify Path.
Following the coding rounds, I had a Product Design round where I was challenged to design the Netflix API. Finally, the Behavioral Round covered topics like my proudest project, a situation where I faced pushback, and my approach to unknown technical problems.
Interview Questions (9)
This coding question was described as a 1D Candy Crush variation. A link to Max Consecutive Ones III was provided, suggesting the problem involves finding the longest subarray of 1s in a binary array with the ability to flip at most K zeros.
I was asked to find the closest value to a given target in a Binary Search Tree (BST).
The problem involved implementing the algorithm to find the next lexicographically greater permutation of numbers. A link to the LeetCode problem Next Permutation was provided.
I had to calculate the sum of all numbers formed by traversing root-to-leaf paths in a binary tree, where each path represents a number. A link to the LeetCode problem Sum Root to Leaf Numbers was provided.
The task was to simplify a given Unix-style absolute path. A link to the LeetCode problem Simplify Path was provided.
In the Product Design round, I was tasked with designing the API for Netflix, which involved considering system architecture, scalability, and various functional requirements.
I was asked to discuss my proudest project that I had worked on.
I had to describe a situation where I faced pushback and how I addressed it.
I was asked about my approach when encountering unknown technical problems.
Preparation Tips
My preparation primarily focused on solving the top 100 Meta questions.
Summary
I recently interviewed at Meta for an E5 Software Engineer position and, despite some initial doubts, I successfully passed all rounds and received an offer for an IC5 role.
Full Experience
Phone Screen
My initial phone screen included two coding problems: 'Find local minima' and a 'Valid Palindrome variant.' I made a minor error on the first question, leading to an incorrect answer. Despite this, the interviewer was very gracious and passed me through, which I consider extremely lucky and humbling.
Coding 1
This was my weakest round. I was asked about 'insert-into-a-sorted-circular-linked-list' and 'vertical-order-traversal-of-a-binary-tree.' For the second problem, I had to correct a bug after the interviewer pointed it out. However, I managed to complete both problems within the allotted time. I felt this round was, at best, a 'Lean Hire.'
Coding 2
This was my strongest performance. I tackled 'nested-list-weight-sum' and a 'basic-calculator variant.' I demonstrated great communication, delivered an optimized solution, and had bug-free code. I felt confident this was a 'Strong Hire' round.
System Design
The main problem was designing 'Top K heavy hitters.' I addressed all aspects, but we ran out of time before I could dive deeper into one specific question. I also felt the interviewer might have veered off-topic, and I had to guide the discussion back. Overall, I thought this round was a 'Hire' or 'Lean Hire' for E5.
Behavioral
This round focused on Meta's standard Leadership Principles. The questions were very pointed, and I answered over 25 questions, including follow-ups, in 40 minutes. My examples were all relevant to E5/E6 scope and based on genuine experiences, which helped with the follow-up questions. I strongly believe in being honest in this round as interviewers can discern authenticity.
Overall, I initially expected a reject for E5 or a downlevel to E4 due to my performance in Coding-1 and my mixed feelings about System Design. However, the recruiter contacted me the very next day to confirm an IC5 offer and the next steps for team matching.
Interview Questions (8)
Find a local minimum in an array or matrix.
A variation of the Valid Palindrome problem.
A variation of the Basic Calculator problem series (e.g., I, II, III, IV).
Design a system to find the Top K most frequent items (heavy hitters) from a stream of data.
Behavioral questions centered around Meta's specific Leadership Principles, including targeted follow-ups.
Summary
I successfully passed my phone screen at Meta, solving two LeetCode problems: Minimum Remove to Make Valid Parentheses and Range Sum of BST, even though I had a brief moment of struggle on the second question.
Full Experience
I recently had my phone screen at Meta and passed last week. I'm really glad to share my experience. My interviewer was incredibly nice and chill, which I believe really helped me out, especially when I fumbled a bit in places I shouldn't have. He didn't ask for many follow-ups or questions during my implementation, besides having me run through another example for each problem. I think I was able to pass mainly because my interviewer was cool and understanding.
Interview Questions (2)
For the first question, I was given Minimum Remove to Make Valid Parentheses. I finished this one pretty quickly. I discussed using a stack-based approach but then mentioned I could also achieve an O(1) space solution. I was provided example inputs and outputs, and I did dry runs for a couple of them.
The second question I faced was Range Sum of BST. I almost blanked on this one but thankfully managed to pull myself together. The code I wrote was a bit clunky, but I checked it later, and it passed on LeetCode. I did a dry run of a provided example, getting a bit mixed up in the middle but quickly getting myself back on track.
Summary
I had a screening round at Meta for an E5 position in the USA, where I tackled two coding problems. Despite a slight delay at the start, I was able to discuss my solutions and correct a mistake with a hint from the interviewer.
Full Experience
I recently completed my PS screening round at Meta. The interviewer, a bit stern about my setup, asked me to remove my background blur and close all other applications. This initial hiccup unfortunately consumed the first five minutes of the interview. However, he quickly transitioned, providing his introduction and explaining the interview's structure before diving into the coding challenges.
The first problem involved balancing parentheses in a string. I began by verbally outlining my solution, touching upon a stack-based approach, and then proceeded to code it. I made sure to test with my own example and explain how I'd handle various corner cases. During a dry run, I spotted an error, which the interviewer kindly hinted at, allowing me to correct my solution effectively.
Next, I faced a vertical order traversal problem. Again, I started by verbally explaining my approach, even performing a mental traversal, before coding. My only minor misstep was including a sort that's often needed in LeetCode for same-row/column sorting but wasn't strictly required for their specific test case, which the interviewer gently corrected. I am now awaiting the outcome, expecting to hear back on Monday.
Interview Questions (2)
Given a string containing parentheses (e.g., '))((' or '(())'), determine the minimum number of removals or additions required to make the string balanced.
Implement the vertical order traversal of a binary tree.
Summary
I recently interviewed at Meta for an IC4 position in London and successfully advanced to the team matching phase after completing a phone screen, two coding rounds, system design, and a behavioral interview.
Full Experience
I had a recent interview experience at Meta for an IC4 position in London. The interview process consisted of a phone screen, followed by two coding rounds, a system design interview, and a behavioral interview. I am glad to share that I have received a mail today indicating that they are moving me to the team matching phase. It's a positive step forward, and I'm hopeful for the next stage.
Interview Questions (6)
Given a very large sorted array (length > 1010), the task was to count the distinct elements.
Input: arr[] = {1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 5, 5, 7, 7, 8, 8, 9, 9, 10, 11, 12}
Output: 10
Explanation: The 10 unique elements are: 1, 2, 3, 5, 7, 8, 9, 10, 11, 12
I was asked to implement the right side view of a binary tree, but from leaf to root, and the left side view from root to leaf. After successfully completing this, the interviewer then asked me to also return all the leaf nodes as part of the solution.
Summary
I recently completed a screening round interview at Meta, which included two coding challenges: Range Sum of BST and Expression Add Operators. It was an interesting experience covering different algorithm types.
Full Experience
My screening round with Meta involved tackling two distinct coding problems. The first one was 'Range Sum of BST', which felt like an easy-to-medium problem primarily focusing on binary search tree traversal. The second challenge was 'Expression Add Operators', a hard problem that required me to think about backtracking and string manipulation techniques. The problem statement for the second question was clearly articulated, asking to find all possible ways to insert binary operators (+, -) between digits in a string to reach a given target value.
Interview Questions (2)
Summary
I had a phone screen interview for an E5 role at Meta in the US, where I was tested on two specific LeetCode problems: Lowest Common Ancestor of a Binary Tree III and Group Shifted Strings.
Full Experience
I recently interviewed with Meta for an E5 position, participating in a phone screen located in the US. During the interview, I was presented with two coding challenges. The first problem involved finding the Lowest Common Ancestor in a binary tree (LCA III), and the second task was to group strings that are "shifted" versions of each other. I focused on discussing my approaches and implementing efficient solutions for both.
Interview Questions (2)
Summary
Successfully navigated the Meta E6 interview process in London, but received mixed feedback on system design. Focused on coding for 3 weeks and minimal system design prep, leading to a potentially negative feedback outcome.
Full Experience
I recently completed the full-loop interview with Meta for the E6 level and wanted to share my experience with the LC community.
Screening Round
1. Subtree of Another Tree — Solved it correctly.
2. Insert intervals variant — Shared the algorithm to solve it, but couldn’t complete the full solution due to time limits. The interviewer seemed somewhat satisfied with my approach.
Coding Round 1
1. Variant of Basic Calculator II — Solved it using a stack and covered all edge cases. It could be solved using string split as well, but the stack solution looked cleaner to me.
2. Minimum Add to Make Parentheses Valid — I started with a stack-based solution, wrote the complete code, and covered edge cases. The interviewer asked me to optimize it, but I couldn’t think of the two-pointers greedy approach within the time limit.
Coding Round 2
1. Closest Binary Search Tree Value — Solved well with proper dry run and edge cases.
2. Variant of Random Pick with Weight — Took a few hints from the interviewer for this question and finally solved it with proper edge cases.
Behavioral Round
1. Tell me about a high-impact project with an aggressive deadline.
2. Have you ever had a conflict with a colleague?
3. Tell me about a time you influenced without formal authority.
4. Describe a time you took ownership beyond your scope.
5. Did you ever fail? What did you learn from it?
6. Did you receive any feedback from your manager, and how did you act on it?
7. Did you face any challenges handling cross-team requirements?
8. How have you helped your peers or juniors grow?
9. How did you convince your leads/managers to optimize a specific flow/process?
10. Additional follow-ups on these questions.
I felt I did well in this round, answering using the STAR pattern.
Product Architecture 1
1. Design Spotify —
I feel I could have done better here. I didn’t handle the deep dives and follow-ups well. I had a hectic day at the office, but that’s just an excuse.
Product Architecture 2
1. Design Dropbox —
I think I nailed this one. The interviewer was excellent.
Result
All the interviewers were really good, and I had a great learning experience. I prepared for only 3 weeks, focusing mostly on coding. For system design, I only prepared for a single day, which wasn’t sufficient. I heard from my recruiter that the feedback wasn’t positive, at least not for the level they were hiring for. I’ll be receiving detailed feedback next week.
I’ll work on the gaps, improve, and come back stronger.
Interview Questions (5)
Preparation Tips
Prepared for 3 weeks, focusing mostly on coding. For system design, only prepared for a single day, which wasn’t sufficient.
Summary
Interviewed at Meta for E4 role. Passed coding rounds and system design, but outcome not specified.
Full Experience
Applied for an E4 position at Meta. The interview process had three rounds. The first round was coding, where I faced two questions: finding the longest palindromic substring and implementing array flattening. The second round was a system design question about creating an Instagram news feed, which required considering read/write patterns and data storage. The third round was behavioral, focusing on past accomplishments and learning experiences. The interviewer emphasized aligning answers with Meta's values like leadership and teamwork.
Interview Questions (1)
Find the longest palindromic substring (easy). For a substring, if it is a palindrome and its length is greater than 2, then after removing the first and, the interviewer nodded in agreement throughout.
Summary
I cleared the E5 interview at Meta in India. The interview process was challenging, with a mix of coding and design questions. I received an offer after a successful interview experience.
Full Experience
Hey folks, I just cleared the E5 interview with Meta. The process was intense but rewarding. I was given a series of coding and design challenges that tested my problem-solving skills and system design knowledge. The coding questions were a mix of algorithms and data structures, while the design questions required me to think about scalability and user experience. I felt confident in my answers and was happy to receive the offer.
Interview Questions (6)
Implement a solution for a robot to clean a room. The robot can move in four directions and clean a cell. The challenge is to ensure the robot covers all cells efficiently.
Calculate the rolling window average of an array. For each window of size k, compute the average and return the result as an array.
Print the elements of a matrix in spiral order. The challenge is to traverse the matrix in a spiral pattern, starting from the top-left corner and moving clockwise.
Given two lists of intervals, merge them into a non-overlapping list of intervals. The intervals are represented as pairs of start and end times.
Design a system for booking tickets for a very popular concert. The system must handle a large number of users and ensure that tickets are allocated efficiently and without errors.
Summary
Recently completed the Meta Screening round for the Application Engineer role. The 45-minute interview included 25 minutes of Role specialization questions followed by a DSA problem, LeetCode 443: String Compression.
Full Experience
Hi Everyone, I recently gave the Meta Screening round for the Application Engineer role. It was a 45 mins interview which started with 25 mins of Role specialization questions, followed by the DSA question, Leetcode 443, String Compression.
Interview Questions (1)
Summary
Successfully navigated through Meta's IC5 interview process, covering coding challenges, system design, and behavioral rounds. Demonstrated strong problem-solving skills and technical knowledge, with positive feedback from the interviewer.
Full Experience
Round 1: Coding started with a Meeting Scheduler problem involving two-way pointers and arrays. Initially, I struggled to understand the problem but eventually sorted the input and considered boundary conditions, using merge sort and quick sort. The second question was Find the Duplicate Number, which I solved using the fast pointer method similar to linked-list cycle detection. I explained the approach and provided the optimal solution within 10 minutes.
Round 2: System Design focused on designing a Movie Review Aggregator. Since it related to my current work, I outlined the business and ML objectives, discussed feature engineering, and proposed a high-level design. The interviewer emphasized machine learning aspects, and I elaborated on model selection, loss functions, and evaluation metrics.
Round 3: Coding included Next Permutation and Binary Tree Vertical Order Traversal. For the first, I traversed backward to find the first node smaller than subsequent nodes, then swapped and reversed the subarray. For the second, I used BFS with a hash map to track column positions.
Round 4: Behavioral questions covered managing priorities, resolving conflicts, and receiving feedback. I used the STAR method, focusing on team building and leadership. The interviewer was satisfied but asked about my preferred machine learning area.
Interview Questions (4)
This question involves two-way pointers and uses two arrays, with many boundary conditions. At first, I didn't understand it clearly. It is actually similar to a linked list problem. First, I sorted to cover all cases, then drew a diagram while considering the boundary conditions, which was more comprehensive. I mainly used merge sort and quick sort. When the interviewer asked for test cases, I identified several overlooked boundary conditions and made corrections.
I used the fast pointer method, similar to the linked-list cycle detection method. It is essentially a generic algorithm for checking linked-list cycles and is not particularly complex. I explained the solution approach and provided the optimal solution within 10 minutes. I recorded the time and space complexity, but due to time constraints, I only ran a few test cases verbally.
My approach here was to traverse backward from the end, finding the first node smaller than subsequent nodes. I then traversed from the tail, found the node larger than the one found, and swapped it with the smallest value in the subarray. Finally, I reversed the subarray to obtain the answer. Note that the subsequent subarray is monotonically decreasing.
I used BFS. I used a hash map to store the node values at all column positions and recorded the maximum and minimum column values.
Preparation Tips
Prepared for the interview by focusing on problem-solving techniques, including sorting algorithms and data structure concepts. For the system design round, I reviewed machine learning objectives and design patterns related to my current work. For behavioral rounds, I practiced STAR method examples related to team building and leadership.
Summary
I had a phone interview at Meta where I successfully solved two data structure and algorithm problems, and I am currently awaiting a reply.
Full Experience
Had a phone interview 1.https://leetcode.com/problems/swap-nodes-in-pairs/description/ 2.https://leetcode.com/problems/insert-delete-getrandom-o1/
I was able to solve both questions awaiting for reply
Hope this helps for other users
Interview Questions (2)
Implement the RandomizedSet class:
RandomizedSet()Initializes theRandomizedSetobject.bool insert(int val)Inserts an itemvalinto the set if not present. Returnstrueif the item was not present,falseotherwise.bool remove(int val)Removes an itemvalfrom the set if present. Returnstrueif the item was present,falseotherwise.int getRandom()Returns a random element from the current set of elements (at least one element must exist when this method is called). Each element must have the same probability of being returned. I must implement the functions of the class such that each function works in averageO(1)time complexity.
Summary
Shared a solution for a Meta-related problem, LeetCode 2265, and discussed a variant where the task is to determine if every node in a binary tree is the average of its subtree. The problem involves understanding postorder traversal and optimizing it within a short time frame.
Full Experience
Hey y’all! Got another solution for another tagged Meta problem, LeetCode 2265 Count Nodes Equal to Average of Subtree, as well as its variant.
This one’s been asked quite a bit more lately and it’s tripped up a bunch of candidates, and understandably so: deducing postorder traversal and knowing how to manipulate it for optimization in 20 minutes is tricky.
The variant is this: what if you had to return a boolean whether every node in the binary tree is the average of its subtree?
Fyi I've not seen this asked a lot in phone screens but this is speculation from what I've been seeing.
Wishing everyone good luck on their interviews!
Interview Questions (2)
Variant of the previous problem: determine if every node in the binary tree is the average of its subtree. This requires checking each node's value against the average of its subtree and returning a boolean result.
Preparation Tips
The candidate focused on understanding postorder traversal and optimizing algorithms for binary tree problems, particularly those involving subtree calculations. They likely practiced problems related to tree traversals and subtree properties to handle such questions efficiently during interviews.
Summary
Meta Phone Screening Interview Experience
Full Experience
Position: E4
Location: London
Round Summary
Got 2 coding questions in my interview:
1. Valid Word Abbreviation
- Spent most of the time (~30 mins) on this one.
- Interviewer asked me to list all possible test cases — I gave several, but missed the case with a 0 in the abbreviation. He pointed it out, and I updated my code to handle it.
- Not sure if missing it initially will count against me.
2. Pow(x, n)
- This was given when very little time was left, so I was a bit nervous.
- I first explained the brute force approach, then moved on to the O(log n) optimized approach.
- Got slightly confused while discussing space complexity.
Summary
I interviewed for an E5 role at Meta, going through a full loop that included two coding rounds, a product architecture round, and a behavioral round.
Full Experience
Coding Round 1
- Binary tree question on the lines of getting Left side view + right side view of the tree
- 2 pointer problem on strings called Internationalization(Meta tagged)
Coding Round 2
- Get path from entry 0,0 to exit gate 2-d array traversal problem
- View ocean array problem (Meta tagged)
Product Architecutre
- Online coding competition platform
Behavioural
- General/usual kind of questions
Interview Questions (5)
Given the root of a binary tree, imagine myself standing on the left side of it and return the values of the nodes I can see, ordered from top to bottom. Do the same for the right side view. The question was on the lines of combining these two concepts.
A 2-pointer problem focused on strings, specifically named 'Internationalization' and described as 'Meta tagged'.
Given a 2D array, find a path from the entry point at coordinates (0,0) to an exit gate.
A problem specifically referred to as 'View ocean array problem' and tagged by Meta.
Design a system for an online coding competition platform.
Summary
I passed the phone screen interview at Meta for the E5 role in the US, where I was asked two LeetCode problems for which I provided optimal solutions.
Full Experience
Updated: Passed.
1. https://leetcode.com/problems/shortest-path-in-binary-matrix/description/
2. https://leetcode.com/problems/minimum-window-substring
Self-eval:
1. Gave the optimal solution and dry-run perfectly
2. Gave the optimal solution but only dry-run half of an example due to time constraint (Crazy to think that I was targeted for this question & just had 15 mins)
Verdict: 50-50 game.
Summary
I participated in a Meta Online Assessment which featured a complex system design problem to implement a banking system with various functionalities including account management, transactions, and a cashback mechanism.
Full Experience
Banking System // Meta-style Banking System Implementation with Cashback and Prioritized Processing
interface Transaction { timestamp: number; amount: number; }
class Account { id: string; balance: number; history: Transaction[]; cashback: Map<string, { amount: number; processedAt: number, status:"complete"|"in progress" }> = new Map();
constructor(id: string) { this.id = id; this.balance = 0; this.history = []; this.cashback=new Map(); } }
class BankingSystem { private accounts: Map<string, Account> = new Map(); private transactionId = 1;
createAccount(id: string): void { if (this.accounts.has(id)) throw new Error("Account already exists"); this.accounts.set(id, new Account(id)); }
deposit(id: string, amount: number, timestamp: number): void { this.processCashbacks(); const acc = this.getAccount(id); acc.balance += amount; acc.history.push({ timestamp, amount: acc.balance }); }
pay(fromId: string, toId: string, amount: number, timestamp: number): void { this.processCashbacks(fromId, timestamp); this.processCashbacks(toId, timestamp); const from = this.getAccount(fromId); const to = this.getAccount(toId); if (from.balance < amount) throw new Error("Insufficient funds");
const txId = "payment" + this.transactionId++;
from.balance -= amount;
to.balance += amount;
from.history.push({ timestamp, amount:from.balance });
to.history.push({ timestamp, amount: to.balance });
const cashbackAmount = Math.floor((amount * 0.02));
from.cashback.set(txId, { amount: cashbackAmount, processedAt: timestamp + 86400000, status:"IN progress" });
}
transfer(fromId: string, toId: string, amount: number, timestamp: number): void { this.pay(fromId, toId, amount, timestamp); }
getBalanceAt(id: string, timestamp: number, timeAt): number { this.processCashbacks(); const acc = this.getAccount(id); let balance = 0; for (const tx of acc.history) { //return balance of account } return tx.balance; }
paymentStatus(id: string, paymentId: number): 'pending' | 'complete' | 'none' { this.processCashbacks(); //return cashback status }
mergeAccounts(fromId: string, toId: string): void { this.processCashbacks(); const from = this.getAccount(fromId); const to = this.getAccount(toId);
to.balance += from.balance;
to.history.push(...from.history);
//move cashbacks too this.accounts.delete(fromId); }
topSpenders(n: number): string[] { this.processCashbacks(); const spendMap: Map<string, number> = new Map(); for (const [id, acc] of this.accounts) { let total = 0; for (const tx of acc.history) { if (tx.type === 'payment') total += tx.amount; } spendMap.set(id, total); } return Array.from(spendMap.entries()) .sort((a, b) => b[1] - a[1]) .slice(0, n) .map(([id]) => id); }
private getAccount(id: string): Account { const acc = this.accounts.get(id); if (!acc) throw new Error("Account not found"); return acc; }
private processCashbacks(accountId: string, timestamp: number): void {
const acc = this.getAccount(accountId);
for (const [txId, entry] of acc.cashback.entries()) {
if (entry.processedAt <= timestamp) {
acc.balance += entry.amount;
acc.history.push({
timestamp: timestamp,
amount: acc.balance,
});
}
}
} }
Interview Questions (1)
Implement a banking system with the following interfaces and classes:
interface Transaction { timestamp: number; amount: number; }
class Account { id: string; balance: number; history: Transaction[]; cashback: Map<string, { amount: number; processedAt: number, status:"complete"|"in progress" }> = new Map();
constructor(id: string) { this.id = id; this.balance = 0; this.history = []; this.cashback=new Map(); } }
class BankingSystem { private accounts: Map<string, Account> = new Map(); private transactionId = 1;
createAccount(id: string): void { if (this.accounts.has(id)) throw new Error("Account already exists"); this.accounts.set(id, new Account(id)); }
deposit(id: string, amount: number, timestamp: number): void { this.processCashbacks(); const acc = this.getAccount(id); acc.balance += amount; acc.history.push({ timestamp, amount: acc.balance }); }
pay(fromId: string, toId: string, amount: number, timestamp: number): void { this.processCashbacks(fromId, timestamp); this.processCashbacks(toId, timestamp); const from = this.getAccount(fromId); const to = this.getAccount(toId); if (from.balance < amount) throw new Error("Insufficient funds");
const txId = "payment" + this.transactionId++;
from.balance -= amount;
to.balance += amount;
from.history.push({ timestamp, amount:from.balance });
to.history.push({ timestamp, amount: to.balance });
const cashbackAmount = Math.floor((amount * 0.02));
from.cashback.set(txId, { amount: cashbackAmount, processedAt: timestamp + 86400000, status:"IN progress" });
}
transfer(fromId: string, toId: string, amount: number, timestamp: number): void { this.pay(fromId, toId, amount, timestamp); }
getBalanceAt(id: string, timestamp: number, timeAt): number { this.processCashbacks(); const acc = this.getAccount(id); let balance = 0; for (const tx of acc.history) { //return balance of account } return tx.balance; }
paymentStatus(id: string, paymentId: number): 'pending' | 'complete' | 'none' { this.processCashbacks(); //return cashback status }
mergeAccounts(fromId: string, toId: string): void { this.processCashbacks(); const from = this.getAccount(fromId); const to = this.getAccount(toId);
to.balance += from.balance;
to.history.push(...from.history);
//move cashbacks too this.accounts.delete(fromId); }
topSpenders(n: number): string[] { this.processCashbacks(); const spendMap: Map<string, number> = new Map(); for (const [id, acc] of this.accounts) { let total = 0; for (const tx of acc.history) { if (tx.type === 'payment') total += tx.amount; } spendMap.set(id, total); } return Array.from(spendMap.entries()) .sort((a, b) => b[1] - a[1]) .slice(0, n) .map(([id]) => id); }
private getAccount(id: string): Account { const acc = this.accounts.get(id); if (!acc) throw new Error("Account not found"); return acc; }
private processCashbacks(accountId: string, timestamp: number): void {
const acc = this.getAccount(accountId);
for (const [txId, entry] of acc.cashback.entries()) {
if (entry.processedAt <= timestamp) {
acc.balance += entry.amount;
acc.history.push({
timestamp: timestamp,
amount: acc.balance,
});
}
}
} }
Summary
I am sharing an anonymous phone screen interview experience with Meta, where three specific LeetCode variant problems were discussed. The candidate passed the interview and heard back after 6 business days.
Full Experience
Hey y'all, sharing a recent interview experience on behalf of anonymous. This ain't me but I hope these data points help. OP was asked the variants, not the OG - so, I linked the variant posts below.
Q1: LC199 Right Side View
Variant: what if you had to return both views, the left- and right side views? It was noted you can combine the two lists into one, rather than just using a singular list. So, there was no need to overly optimize here.
Q2: LC56 Merge Intervals
Variant: What if you had to merge two interval lists? The interviewer copied and pasted text that mentioned each interval list "containing intervals in ascending order. Merge them."
The interviewer had followed up with testcases for the candidate to go through.
...I can only imagine it was due to a lack of communication from the candidate's end. Or a lack of dry-running. Or if there were bug(s).
Q3: LC103 Binary Tree Zigzag Level Order Traversal
Variant: What if you had to return the order from right to left for the first level, then left to right, etc? It's the opposite than the OG problem.
There was time left so Q3 was given. Code was required.
---
I don't know information beyond this, other than the fact that the person heard back after 6 business days.
Good luck with your studies!
Interview Questions (3)
Variant: What if you had to merge two interval lists? The interviewer copied and pasted text that mentioned each interval list "containing intervals in ascending order. Merge them."
The interviewer had followed up with testcases for the candidate to go through.
...I can only imagine it was due to a lack of communication from the candidate's end. Or a lack of dry-running. Or if there were bug(s).
Summary
I had an interview experience for an E4 role at Meta in London, covering multiple coding rounds and a system design interview. I am currently awaiting the results.
Full Experience
Screening Q1 given word 1 and word 2 return output baseball base : 4 landlord load : 0 hangover hanng : 4
Q2 minimum remove to make valid parenthesis
Full Loop:
Coding interview 1:
- course schedule
- given root, target k, print all nodes at kth distance from target node
Coding interview 2:
- given matrix, do diagonal traversal
- in sorted array find occurence of given word
System Design: Design auction in instagram.
Awaiting for res....
Interview Questions (7)
Given word 1 and word 2, return an output based on the examples provided: baseball base : 4 landlord load : 0 hangover hanng : 4
Given a string s of '(', ')', and lowercase English characters. Your task is to remove the minimum number of parentheses ('(' or ')') so that the resulting parentheses string is valid and return any valid string.
Given the total number of courses you have to take, numCourses, and a list of prerequisite pairs, prerequisites, determine if you can finish all courses. (Implicitly, if it's possible to take all courses without circular dependencies, or to return a valid course order).
Given a binary tree root, a target node, and an integer k, print all nodes at kth distance from the target node.
Given a matrix, perform a diagonal traversal of its elements.
Given a sorted array, find the occurrence count of a given element (word/number).
Design an auction system integrated within Instagram.
Summary
I interviewed for an E5 Infrastructure Engineer role at Meta and regrettably received a rejection. The interview process spanned a screening round and a full onsite loop, assessing my skills in coding, system design, and behavioral aspects.
Full Experience
My interview journey at Meta for the E5 Infrastructure Engineer position began with a screening round. In this round, I encountered two coding problems. The first was a variant of 'Merge Sorted Arrays,' where the input sizes 'm' and 'n' were not explicitly provided, which I believe caused me to lose some points. The second coding question was a 'Random pointer' problem, which I handled as a standard instance.
Following the screening, I proceeded to the onsite loop. The System Design round focused on designing a system similar to Dropbox. I felt I could have elaborated more effectively on the file synchronization mechanism post-upload. Additionally, there was a discussion around 'Top K Heavy Hitters.'
My first Coding Interview session included two problems. One was a variant of 'Random Pick with Weight,' which I felt confident about, aligning with similar problems I'd practiced from @codingwithminmer's playlist. The second problem asked me to find the 'Highest Sum in a Subtree,' which could also contain negative values. I later realized I might have missed a detail regarding whether it was specifically a Binary Search Tree (BST).
The second Coding Interview also featured two questions. The first was another variant from the 'Best Time to Buy and Sell Stock' series, again something I had practiced. The second question, 'Counting nodes equal to average,' presented a true/false variant, which was a bit ambiguous.
Finally, the Behavioral round covered standard top K behavioral questions commonly found in other posts. Despite my efforts, I ultimately received a rejection for the role.
Interview Questions (6)
Merge two sorted arrays. The problem included small enhancements where the sizes 'm' and 'n' of the arrays were not explicitly provided, requiring me to infer them or handle edge cases related to their absence.
Design a system like Dropbox. The interviewer particularly emphasized the file synchronization mechanism once files are uploaded, which I felt I could have explained more thoroughly.
Design a system or algorithm to find the Top K Heavy Hitters.
Implement pickIndex method to randomly pick an index based on given weights. The problem was a variant of the standard 'Random Pick with Weight' problem.
Find the subtree with the highest sum, where nodes can have negative values. I noted that the problem might have specified a Binary Search Tree (BST), a detail I might have overlooked during the interview.
A variant of the 'Best Time to Buy and Sell Stock' problem series, requiring an optimal strategy to maximize profit.
Preparation Tips
My preparation primarily involved practicing the top 150 LeetCode problems. I found @codingwithminmer's playlist particularly helpful for tackling various coding challenges and their common variants.
Summary
I completed coding, system design, and behavioral rounds for an E5 position at Meta.
Full Experience
Coding round 1: Array problems (one is from leetcode meta tagged) Coding round 2: tree problem(leetcode meta tagged with variant), binary search prbolem(leetcode meta tagged) System Design: Auction System Behavioral: as ususal questions
Interview Questions (1)
Design an auction system.
Summary
I had a Meta screening for an MLE L5 role in the US. The interview included two coding questions: one specifically linked to a LeetCode problem, and another involving merging two sorted lists of intervals. Although I didn't fully complete the second problem, my focus on communication and the interviewer's guidance helped me advance to the full-loop interview.
Full Experience
Questions from Meta screening:
a) https://leetcode.com/problems/buildings-with-an-ocean-view/description/
b) Merge two lists having intervals. Lists are sorted by the first element of interval.
I did (a) well but wasn't able to fully code (b). I focussed on communicating my thought process well and the interviewer helped me in bringing back on track in (b).
Surprisingly, I got moved to the full-loop; though I am aware I need to step up my game like anything.
Interview Questions (2)
You are given an integer array heights where heights[i] represents the height of a building at index i. You are looking for buildings that have an ocean view. A building has an ocean view if all the buildings to its right are strictly shorter. Return a list of the indices of buildings that have an ocean view, sorted in increasing order.
Merge two lists having intervals. Lists are sorted by the first element of interval.
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!
Summary
I interviewed for an E5 position at Meta, completing multiple rounds of DSA, System Design, and Behavioral questions. Unfortunately, I was rejected, partly due to not leaving enough time for the system design deep dive.
Full Experience
Hello everyone,
Current TC : 57 LPA
YOE : ~6
Sharing my full loop interview experience at Meta.
Round 1 (DSA)
: Able to code both within 40 minutes.
Round 2 (DSA)
: Able to code both within 40 minutes.
Round 3 (System Design)
Design a food delivery service like Uber Eats,
The interviewer was interested in the below functional requirements:
- Users should be able to create an order for the food of their choice
- Users should be able to view the order details.
- The restaurant should be notified about the order and should be able to accept or reject it.
- Users should receive a notification upon order confirmation.
- After the order is confirmed, the system should notify delivery personnel and obtain acceptance from one of them.
- Users should be able to track the delivery person in real time.
: While I completed the design within the allotted time(40 minutes), I didn't leave sufficient time for the interviewer to explore it in depth.
Round 4 (Behavioral)
- Standard Questions of Meta
Verdict - Rejected.
Interview Questions (6)
Design a food delivery service like Uber Eats,
The interviewer was interested in the below functional requirements:
- Users should be able to create an order for the food of their choice
- Users should be able to view the order details.
- The restaurant should be notified about the order and should be able to accept or reject it.
- Users should receive a notification upon order confirmation.
- After the order is confirmed, the system should notify delivery personnel and obtain acceptance from one of them.
- Users should be able to track the delivery person in real time.
Standard Questions of Meta
Summary
This post details a Meta Software Engineer - Machine Learning interview experience, focusing on two specific algorithm questions.
Full Experience
Q1) Find the buildings that have an ocean view. A building has an ocean view if any part of the building can see the ocean without being obstructed by another building.
Input = Array of numbers that represent the height of buildings.
Output = Return the indexes of the buildings that have ocean view
Example Input: [4, 3, 2, 3, 1] Output: [0, 3, 4]
Q2) Given a 2D array, print out its elements in diagonal order as shown in the below image. https://imgur.com/Ib0VUPO Example Input:
1, 2, 3 4, 5, 6 7, 8, 9
Interview Questions (2)
Find the buildings that have an ocean view. A building has an ocean view if any part of the building can see the ocean without being obstructed by another building.
Input = Array of numbers that represent the height of buildings.
Output = Return the indexes of the buildings that have ocean view
Example Input: [4, 3, 2, 3, 1] Output: [0, 3, 4]
Given a 2D array, print out its elements in diagonal order as shown in the below image. https://imgur.com/Ib0VUPO Example Input:
1, 2, 3 4, 5, 6 7, 8, 9
Summary
My interview with Meta approximately two weeks ago resulted in not being selected, covering coding and network topics.
Full Experience
My interview was around 2 weeks ago with Meta.
result: not selected
phone screen:
coding- battleship with returning coordinates
network- osi, tcp deep dive, bgp overview & basic troubleshooting of day to day issues
Interview Questions (2)
I was asked to implement a coding solution for the game Battleship, focusing on returning coordinates.
I was tested on my knowledge of the OSI model, a deep dive into TCP, an overview of BGP, and basic troubleshooting for day-to-day network issues.
Summary
I went through a full-loop interview at Meta for an E5 role. Despite some preparation, I felt it was insufficient due to personal commitments, leading to a difficult experience where I struggled with several coding problems and ultimately do not expect an offer.
Full Experience
Initial Call
I got the initial screening call and was asked to schedule my phone screen ASAP. I scheduled it a month out from when I got the initial call, thinking I'd have enough time to get well practiced. Other things took priority so, as I've documented below, I only spent about ~21 hours of proper practicing over those intiial four weeks.
Phone Screen
Prep time: ~21 hours total
https://leetcode.com/problems/diameter-of-binary-tree
- Solved pretty quick, no issues. Got asked about the space complexity and I probably got it wrong.
https://leetcode.com/problems/the-maze
- Explained solution, did not have time to code it out (expected to fail at this point)
Surprise, two days later I got the email that I was invited to the full loop. Again, I booked this loop out as far as possible (about four weeks) to try and get more time to study. I spent ~40 hours grinding LC over these four weeks but it was just not enough.
Full Loop
Prep time: ~40 hours total
Product Architecture
Design Online Judge (Like Leetcode)
- Think I did well here, followed helloInterview's process and was able to get into two deep-dives once the initial implementation was designed.
Coding Challenges
https://leetcode.com/problems/range-sum-of-bst
- I hadn't seen this problem before but understand tree traversal well so was a non-issue. Solved this one pretty fast, no problem. I gave $$O(N)$$ complexity considering the worst case, but I got asked about the best case, which I couldn't remember off the top of my head for binary trees- it's $$O(logN)$$ btw
And a variant of:
https://leetcode.com/problems/merge-intervals
- Somehow despite all the prep I've done, haven't seen this problem or variants and didn't prep for it, so basically froze trying to think of an implementation. Nerves always get to me in these interviews. Found the problem on LC, and looked at the solution and am kicking myself at how striaghtforward it is.
I pretty much gave up after this- stopped prep, stopped practicing, stopped reviewing anything, and just figured the rest of my loop will be a good practice interview set.
For scheduling reasons, I had a full week between my Day 1 and 2 interviews. I could have spent this time sharpening up but I was discouraged and so I just essentially gave up.
Day 2
Behavioral
Most folks skip over these but I thought they might be valuable. I think I did okay on them but my morale was super low so my responses were pretty low effort.
- Tell me about a result you achieved for your team that you are most proud of.
- Can you tell me about the most difficult working relationship that you’ve had?
- Can you tell me about a time where you faced pushback regarding your approach on a project?
- Can you tell me about a time where you needed to act quickly on something but didn’t have a clear idea of how to proceed?
- Can you tell me about a time where you faced a significant setback that forced you to re-prioritize your work?
- Can you tell me about a time a peer or manager gave you specific, actionable feedback for improvement?
- Can you tell me about feedback you’ve given to a more junior engineer or peer?
Coding
https://leetcode.com/problems/valid-palindrome-ii/
- Forgot the recursive solution and just fumbled around something super messy until the interviewer stopped me for the next problem.
https://leetcode.com/problems/valid-word-abbreviation/
- Managed to get a solution written and started testing it, after the interview I found a few bugs in my code. Seriously ready to just kms at this point.
Product Architecture
Design CamelCameCamel
- Again, probably did okay here, got through the initial design and into a couple of deep dives. Honestly I was just ready for the whole thing to be over at this point.
In summary, I'm glad it's finally over. I definitely didn't invest enough time in prep, and I knew that going into the loop, so set myself up to fail. I've got a newborn, a full-time job, and I'm in the middle of getting my Masters degree, so there was really no way I could devote enough time to this. Not feeling too bad about it, definitely not expecting an offer.
Good luck out there, see you in about a year when I get my yearly callback.
Interview Questions (15)
Design Online Judge (Like Leetcode)
Tell me about a result you achieved for your team that you are most proud of.
Can you tell me about the most difficult working relationship that you’ve had?
Can you tell me about a time where you faced pushback regarding your approach on a project?
Can you tell me about a time where you needed to act quickly on something but didn’t have a clear idea of how to proceed?
Can you tell me about a time where you faced a significant setback that forced you to re-prioritize your work?
Can you tell me about a time a peer or manager gave you specific, actionable feedback for improvement?
Can you tell me about feedback you’ve given to a more junior engineer or peer?
Design CamelCameCamel
Preparation Tips
I spent approximately 21 hours practicing for the phone screen and an additional 40 hours grinding LeetCode for the full loop, following helloInterview's process for product architecture. However, due to personal commitments like a newborn, a full-time job, and a Masters degree, I felt my preparation was insufficient and I gave up practicing between interview days.
Summary
I interviewed for an E6 MLE position at Meta, which was later downgraded to E5. The interview process included a phone screen, two data structures and algorithms rounds, a behavioral round, and a system design round focused on Instagram reel recommendations. My third round, involving a Merge K Sorted Lists variant, did not go well.
Full Experience
Phone round:
- Custom Sort String
- Find peak element
- 15 mins behavioral (as I was interviewing for E6) The downgraded to E5 after this.
Round 1:
- Remove 1 character to find palindrome
- Shortest path in binary matrix
Round 2:
- A project that didnt go well
- A project that went well
- How do you deal with difficult co-worker
- A feedback was given and you took action on it
Round 3: Interviewer had a quality assurance person with him who was off-camera.
- Merge k sorted lists (LC hard)
- Variant of merge intervals; Detect most overlapping numbers
This one didnt go well. They conducted in a different way and wanted me to come up with the optimized solution for LC hard. Didnt let me write the code at all for the first one, while asking for Time, space complexity on every possible solution suggestion.
Round 4: Instragram reel recommendation
Interview Questions (12)
Custom Sort String
Find peak element
15 minutes of behavioral questions were asked, as I was interviewing for an E6 role.
Given a string, determine if it can be a palindrome by removing at most one character.
Shortest path in binary matrix
Describe a project that didn't go well.
Describe a project that went well.
How do you deal with difficult co-workers?
Describe a situation where you were given feedback and took action on it.
Merge k sorted lists.
A variant of the merge intervals problem, focused on detecting the most overlapping numbers.
Design a system for Instagram reel recommendation.
Summary
This post details an anonymous candidate's phone screen experience at Meta, where they successfully passed after solving two variant LeetCode problems.
Full Experience
Hey y'all, sharing a recent interview experience on behalf of anonymous. This ain't me but I hope these data points help. OP was asked the variants, not the OG - so, I linked the variant posts below.
I don't know information beyond this, but if you have pressing questions, I can ask anonymous.
Good luck with your studies!
Interview Questions (2)
Summary
I recently went through the full Meta interview loop for an E5 role, which included a screening round, two coding interviews, a product architecture system design round, and a behavioral interview. Despite performing well on some technical aspects, I was ultimately rejected with feedback to strengthen technical skills across the board.
Full Experience
Hey everyone,
I recently went through the full Meta interview loop and got rejected in the end, wanted to share my experience for anyone preparing, especially if you’re grinding LeetCode from scratch like I did.
Screening:
LC408 — Valid Word Abbreviation (with a follow-up: “What if there are two abbreviations over one word?”)
LC528 — Random Pick with Weight
Onsite / Full Loop:
Product Architecture:
I got a Dropbox-style system design. Went well, similar to the classic hello-interview Dropbox question.
Coding Interview 1:
LC227 — Basic Calculator II: I knew the optimal solution and explained it, but got stuck validating my code during the interview. The interviewer helped a bit. I missed an edge case in an if but fixed it immediately.
LC670 — Maximum Swap: Said the optimal approach, coded it with a few minor bugs but nothing major, I validated & fixed on the go. I used a map to store digit indices and looped from 9→0 to find swaps. The interviewer pushed me to optimize further. I think he wanted an early exit once no bigger digit exists. Eventually did it, went fine.
Coding Interview 2:
LC88 — Merge Two Sorted Arrays: Explained optimal, wrote code. The interviewer asked “did you miss anything?” in a confusing way — it threw me off, I added unnecessary code, then removed it when I realized. Overall okay.
LC138 — Copy List with Random Pointer: Said the 2-pass hash map approach. The interviewer pushed me to optimize. I didn’t understand at first, but he wanted the in-place single-pass version where you interleave new nodes into the original list. Eventually got it.
Behavioral:
Project I’m proud of
Dealing with ambiguity
Growth mindset
A boss I had issues with (or something similar)
Felt fine here.
Product Architecture (final):
Surprised me — it was about a catalog with items and images. There’s an external blackbox to validate items aren’t weapons/illegal. I gave a high-level API design, explained image uploads with presigned URLs, but didn’t reach non-functionals due to time.
Result:
Rejected. No detailed feedback — just “strengthen technical skills across the board.”
Interview Questions (9)
LC408 — Valid Word Abbreviation (with a follow-up: “What if there are two abbreviations over one word?”)
LC528 — Random Pick with Weight
I got a Dropbox-style system design. Went well, similar to the classic hello-interview Dropbox question.
LC227 — Basic Calculator II
LC670 — Maximum Swap
LC88 — Merge Two Sorted Arrays
LC138 — Copy List with Random Pointer
Project I’m proud of
Dealing with ambiguity
Growth mindset
A boss I had issues with (or something similar)
Felt fine here.
Surprised me — it was about a catalog with items and images. There’s an external blackbox to validate items aren’t weapons/illegal. I gave a high-level API design, explained image uploads with presigned URLs, but didn’t reach non-functionals due to time.
Preparation Tips
What I learned:
Studying 1.5 months from scratch works — but you NEED to push for edge-case handling & optimizations.
ChatGPT helps a lot, but doesn’t always push for the top-level optimal version interviewers expect. Same with YouTube (NeetCode is great for base solutions but maybe not for deeper optimizations).
System design: Don’t expect only standard designs.
Coding: It’s not just about solving — it’s about clean code, validating on the fly, and actively searching for better space/time trade-offs, even if the base solution “works.”
My prep guide:
💻 DSA:
I did NeetCode 150 (skipped DP and advanced graphs like Dijkstra).
For Meta-specific questions, I used this amazing list — highly recommend: Meta Variant Compilation
https://leetcode.com/discuss/post/6615244/meta-variant-compilation-by-codingwithmi-0pm7/
🛠️ System Design:
I used helloInterview.com, bought the premium version. Their guided practice (LLM) was really solid and helped me practice frameworks for structured answers.
🗣️ Behavioral:
I used helloInterview’s story builder — made 6 stories and practiced reusing them. One thing: it didn’t cover the “boss you didn’t like” question, so prep that separately.
Final tip:
Go deeper than “accepted” — always ask how to make it more optimal. That’s what Meta really pushes for.
Good luck to everyone!
Summary
This post describes a variant of LeetCode 691, 'Stickers to Spell Word,' often encountered in Meta interviews. The specific twist involves using only a single sticker to recreate a target poster, which the author notes simplifies the original problem.
Full Experience
Hey y’all, got a solution for a variant of LC691 Stickers to Spell Word. Now, Meta will never ask you the OG problem but rather, this prompt: what if you only had one sticker? How many stickers do you minimally need to recreate the poster?
Although there are a few edge cases, this actually simplifies the original problem. Wishing everyone good luck on their interviews!
Check it out (or not!):
Unknown Leetcode, Stickers to Create Poster (Link)

Reference to all of the Meta Variants, Playlists & Unknowns: https://leetcode.com/discuss/post/6615244/meta-variant-compilation-by-codingwithmi-0pm7/
Interview Questions (1)
This problem is a variant of LeetCode 691, 'Stickers to Spell Word'. The specific prompt is: Given a target string target and a single sticker string sticker, determine the minimum number of times this one sticker needs to be used to recreate the target string. The post implies this simplifies the original problem. An illustrative image is also provided: 
Summary
I conducted a mock phone screen interview covering Meta variants of LeetCode Hard problems LC76 (Minimum Window Substring) and LC317 (Shortest Distance From All Buildings).
Full Experience
Hey y’all, Summer and I did another mock phone screen interview, this time going over two Leetcode Hards: LC76 Minimum Window Substring and LC317 Shortest Distance From All Buildings. IMO an interview format was the most efficient way to cover these two problems, both of which will be rephrased in your actual interview:
As you’ll see, LC76’s input will be the following:
Input: sentence = ['is', 'one', 'ok', 'you', 'the', 'frog', 'ok', 'one', 'the', 'you', 'is', 'not', 'frog'] words = ['is', 'you', 'frog']
Output: "you is not frog"
For LC317, it’ll be reworded where you’re trying to place the optimal well in a 2D matrix where a T represents a tree and an H represents a house.
Check it out (or not!):
Leetcode 76 & Leetcode 317 (Link)

As always, good luck on your interviews!!
Reference to all of the Meta Variants, Playlists & Unknowns: https://leetcode.com/discuss/post/6615244/meta-variant-compilation-by-codingwithmi-0pm7/
Please note the coderpad.io settings and tools utilized in the video is exactly what you should expect in a Meta interview.
And yes, being asked 2 Hard LC in a phone screen is unlikely but possible - another combo I see is LC987 and LC317. Or others with LC827, or LC282 (but rarely).
Interview Questions (2)
Given a sentence as an array of words and a target array of words, find the minimum window substring (contiguous words) in the sentence that contains all words from the target array, maintaining order of words in the sentence. Original LC76's input will be rephrased: Input:
sentence = ['is', 'one', 'ok', 'you', 'the', 'frog', 'ok', 'one', 'the', 'you', 'is', 'not', 'frog'] words = ['is', 'you', 'frog']
Output: "you is not frog"
Reworded problem where you're trying to place the optimal well in a 2D matrix. A 'T' represents a tree and an 'H' represents a house. Goal is to find a location to place a 'well' (implied, where the distance from all houses is minimized, avoiding trees), similar to Leetcode 317 Shortest Distance From All Buildings.
Preparation Tips
I referenced the Meta Variants, Playlists & Unknowns compilation: https://leetcode.com/discuss/post/6615244/meta-variant-compilation-by-codingwithmi-0pm7/. I also noted that the coderpad.io settings and tools utilized in the video are exactly what to expect in a Meta interview. I learned that being asked two Hard LeetCode problems in a phone screen is unlikely but possible, with other common combinations being LC987 and LC317, or LC827, or LC282.
Summary
I shared my Meta E5 Infra interview experience in London, detailing phone screen, DSA, System Design, and Behavioral rounds, ultimately receiving an E4 offer.
Full Experience
Giving back to the community where I got all the resources from
Phone Screen
1) Diagonal Traversal of matrix (LC 498) :
Similar to LC 498, but didn't need to flip the direction of traversal for each diagonal (so easier version of leetcode question).
2) LC 408 variant.(was asked the leetcode question first and after the approach was provided, he went with the followup which was varaiant)
both word and abbr can be patterns.
Solved first question and gave approach to the follow up for second but didnt have time to finish the question.
Got selected for the onsite rounds
DSA1
1) vertical order traversal (LC 314)
2) K Closest points to origin LC 973
Solved both the questions
DSA2
1) Some max K question (classic miHeap type question, dont remmeber exactly)
2) a variant of two sum
Solved both the questions
System Design
1) Adclick aggregator
Behavioural
Dont remember the questions but the usual behavioural questions.
Got offered E4 (downlevelled) position. Team matching pending but can take time.
Interview Questions (7)
Similar to LC 498, but didn't need to flip the direction of traversal for each diagonal (so easier version of leetcode question).
LC 408 variant. both word and abbr can be patterns.
vertical order traversal (LC 314)
K Closest points to origin LC 973
Some max K question (classic miHeap type question, dont remmeber exactly)
a variant of two sum
Adclick aggregator
Preparation Tips
You will defintely only have 35mins no matter the round, so make sure you prepare for it that way. You need to solve both questions in the most efficient approach for onside DSA's.
DSA:
DSA questions are repeated by meta, so definitely look into meta's recently asked questions and meta tagged leetcode questions.
Special shout out to codingwithminmer. May god bless you for all the effort you are doing to help out people with your youtube channel and clearing doubts over all the meta tagged posts.
Definitely go over codingwithminmer's playlist of meta questions and variants. If you aren't doing this you are definitely not giving your 100% for your preparation.
System Design
Hello Interview.
I have taken premium , I did like the Guided Practice section of the premium. It does help in simulating kind of an interview experience and gave me pretty good confidence. Even if you dont take the premium, hello interview is still the goto.
Summary
I am sharing the full-loop interview questions I encountered at Meta, covering system design, behavioral, and two coding rounds.
Full Experience
Hi, I am giving back to the community by sharing full loop questions.
System Desgin: desgin place recommender near user
Behavioral interview: normal questions; examples of success, what you learn from them ..etc
Interview Questions (6)
Design a system for recommending places near a user.
Standard behavioral questions, specifically focusing on examples of success and lessons learned from experiences.
Given two arrays representing departure flights and return flights, find the cheapest round trip flight.
Summary
I shared a recent interview experience at Meta on behalf of an anonymous candidate, covering multiple LeetCode problems, behavioral questions, and a system design problem.
Full Experience
Hey y'all, sharing a recent interview experience on behalf of anonymous. This ain't me but I hope these data points help!
Q1: LC199 Binary Tree Right Side View
Variant: what if you had to return the left and right side views?
It was noted that BFS was used and accepted.
Q2: LC1047 Remove All Adjacent Duplicates
Variant: 1D Candy Crush.
Q3: LC346 Moving Average from a Data Stream
Variant: The input is given upfront so use a rolling window.
I could be misinterpreting here and the candidate could've been asked the OG (in which a queue is the solution) but I've almost never seen the latter asked.
Q4: LC23 Merge K Sorted Lists
Variant: It's a list of integers. A heap was used instead of the divide-and-conquer, and it was acceptable.
Behavioral: It was questions around handling conflict, demonstrating leadership, mentorship experiences and "What project are you most proud of?"
System Design: Design Proximity Server
I don't know information beyond this, but if you have pressing questions, I can ask anonymous!
Good luck with your studies!
Interview Questions (6)
LC199 Binary Tree Right Side View
Variant: what if you had to return the left and right side views?
LC1047 Remove All Adjacent Duplicates
Variant: 1D Candy Crush.
LC346 Moving Average from a Data Stream
Variant: The input is given upfront so use a rolling window.
I could be misinterpreting here and the candidate could've been asked the OG (in which a queue is the solution) but I've almost never seen the latter asked.
LC23 Merge K Sorted Lists
Variant: It's a list of integers.
Questions around handling conflict, demonstrating leadership, mentorship experiences and "What project are you most proud of?"
Design Proximity Server
Summary
I had a phone interview with Meta in London where I was asked two questions. I successfully solved the first question but ran out of time for the second, and unfortunately, did not advance to the next round.
Full Experience
Location : London
Got 2 questions :
1.Minimum flight cost.
2.Given a mouse with 2 APIs in a maze. Design an algorithm to find a cheese in the maze using only the 2 given APIs shown below :
hasCheese()
move()
I was able to solve the 1st question completely.
Ran out of time for 2nd question.
Unfortunately, could not make it to next round.
Would like give a shout out to Mimner for his work in explaining all the different Meta variants.
Interview Questions (1)
Given a mouse with 2 APIs in a maze. Design an algorithm to find a cheese in the maze using only the 2 given APIs shown below :
hasCheese()
move()
Summary
I recently completed my full loop interview rounds with Meta for an E4/E5 role. Despite positive feedback on my system design and behavioral rounds, I was rejected primarily due to my performance in the coding rounds.
Full Experience
Hello everyone,
I recently completed my full loop interview rounds with Meta. I have not heard from the recruiter yet. My first coding round very nice -- told the optimised solutions for both of the questions asked but for the second coding round in second question, I was able to code up the brute force solution but could not tell the optimized solution despite of hints given.
For system design interview, I was able to answer all the cross questions asked but I feel, I could not cover a lot of deep dives I had thought of covering in 40 minutes.
Behaviorial round went pretty good.
Recruiter has not yet informed about the level. I am seven years of experience total. The level should be either E4/E5.
What could be my chances of getting through?
Update:
It was a reject :( majorly due to coding rounds. The feedback for system and behavoirial rounds was a HIRE call.
Sharing the questions here:
Phone Screen:
Q1) Return T/F if a given string is a number.
Example: "123", "123.", ".123", "1.2.3"
Q2) Find the valley in a given array -- Return the index which is strictly less than its neighbours
Coding1:
Q1) https://stackoverflow.com/questions/69995292/algorithm-question-finding-the-cheapest-flight
Q2) https://leetcode.com/problems/mice-and-cheese/
Coding2:
Q1) http://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree-iii/description/
Q2) https://leetcode.com/problems/shortest-path-in-binary-matrix/description/ (Expected tc: O(n^2))
System Design:
Design a system similar to Leetcode
All the best everyone!
Interview Questions (7)
Return T/F if a given string is a number. Example: "123", "123.", ".123", "1.2.3"
Find the valley in a given array -- Return the index which is strictly less than its neighbours
Design a system similar to Leetcode.
Summary
I had a phone interview with Meta, where I was asked two medium-difficulty questions: Diameter of Binary Tree and a problem similar to Kth Smallest Element in a Sorted Matrix. I moved to the onsite round.
Full Experience
Location: US
Got two questions.
Q1. Diameter of Binary Tree. [medium]
Q2. Non Tagged question but similar to Kth Smallest Element in a Sorted Matrix [medium]
Verdict: Moved to Onsite
Hope it is useful. All the best!
Interview Questions (2)
The problem asked for the Diameter of Binary Tree.
The problem was similar to Kth Smallest Element in a Sorted Matrix.
Summary
I had a phone screening with Meta for an ML/AI role in London. The interview included two Data Structures & Algorithms questions: one on making parentheses valid by removing minimum characters, and another on finding the Lowest Common Ancestor of two nodes in a binary tree, perceived as similar to finding an intersection of linked lists due to the input format. I successfully moved to the full loop after this interview.
Full Experience
Meta Phone screening
1- count all paranthese you need to remove to make a valid parenthese. I solved with loop and counting open and closed parentheses.
2- LC236 find lowest common ancestor of two nodes in binary tree. I solved it with map - TC O(N) SC O(N) ).
update -- in fact the question I got was similar to LC160 because they gave the nodes as input. --
as a follow up I discussed the optimal solution with O(1) SC
the idea being to determine the depth of the nodes and then move pointers accordingly. the interviewer did not ask me to code it.
feedback:
- I was nervous so I named the functions to solve the problems func .. feedback told me the naming was bad
- in problem 2 interviewer asked me if i want to do a dry run and if everything ok, I said yeah it is ok, then he mentioned an edge case and asked me what would be the output then I realized that i had a bug in the condition
I moved to full loop
Interview Questions (2)
count all paranthese you need to remove to make a valid parenthese.
Find lowest common ancestor of two nodes in a binary tree. The question was similar to LeetCode 160 (Intersection of Two Linked Lists) because only the two nodes were given as input.
As a follow up, the optimal solution with O(1) SC was discussed, which involves determining the depth of the nodes and then move pointers accordingly.
Summary
I successfully cleared my phone screen interview at Meta, answering two specific LeetCode problems and their follow-ups, and have been selected for on-site.
Full Experience
Q1: https://leetcode.com/problems/merge-sorted-array/description/
Follow-up: Can you merge starting from the beginning of each array instead of from the end? Yes/no - explain with examples.
Also, the size of the arrays were not given.
Q2: https://leetcode.com/problems/group-shifted-strings/description/?envType=company&envId=facebook&favoriteSlug=facebook-thirty-days
No time for follow-ups
Verdict: Selected for on-site.
Interview Questions (2)
Preparation Tips
- Eat and breath the top 150 Meta tagged questions.
- Make sure to handle all the edge cases - even the trivial ones. E.g., what will happen if the size of the array is 0, 1 etc.
- Always trace your code with the examples given. Then try to come up with some your own test cases if possible.
- Explain your code line-by-line while writing and explain why you are doing it. For example, if I use a defaultdict instead of normal dicttionary, just explain why you are doing that and how it will help. You can do this while writing the code itself.
- Time management is the key. And to manage time, you should practice the questions really well. I had submitted the above two problems at least 5 times in the last week.
Summary
I interviewed for an E5 role at Meta in London and was assessed on Data Structures & Algorithms, System Design, and Behavioral aspects through various rounds.
Full Experience
Here's the list of questions I was asked during my Meta E5 Interview Process.
Screening:
- Average of all the sub arrays of Length K
- https://leetcode.com/problems/copy-list-with-random-pointer/description/
DSA-1
- https://leetcode.com/problems/valid-palindrome/description/
- https://leetcode.com/problems/minimum-remove-to-make-valid-parentheses/description/
DSA-2
- https://leetcode.com/problems/binary-tree-vertical-order-traversal/description/?envType=company&envId=facebook&favoriteSlug=facebook-thirty-days
- https://leetcode.com/problems/merge-intervals/description/?envType=company&envId=facebook&favoriteSlug=facebook-thirty-days
DSA-3:
- https://leetcode.com/problems/diameter-of-binary-tree/description/?envType=company&envId=facebook&favoriteSlug=facebook-thirty-days
- https://leetcode.com/problems/basic-calculator-ii/description/?envType=company&envId=facebook&favoriteSlug=facebook-thirty-days
System Design:
Design a Video Streaming Service like Netflix:
- View Videos
- Start from where they left off
- Recommend good movies based on their interest
Thanks to Hello Interview for System Design Preparations!
Interview Questions (9)
Given an array, find the average of all contiguous subarrays of a specific length K.
Design a video streaming service similar to Netflix, capable of viewing videos, resuming playback from where users left off, and recommending movies based on user interests.
Preparation Tips
Thanks to Hello Interview for System Design Preparations!
Summary
I successfully interviewed for an E4 SWE role at Meta in the US, securing an offer after completing a phone screen and a 5-round onsite, which included coding, system design, and behavioral questions.
Full Experience
I was reached out to by a recruiter a few months back to apply for E4. We had a call to review my resume, then I was moved to the phone screen stage. I elected for a month to prepare for the phone screen. I was already prepping using Neetcode 150 for about two months prior at this point.
Phone Screen Two questions:
- palindrome/anagram grouping with follow ups ( can't quite remember now )
- [med] variant of i18n / valid abbreviation - input is two Strings, check if it's a valid abbreviation. both inputs can have numbers.
I got feedback within a few days that I was accepted for onsite. I requested a few more weeks to prepare. My prep split at this point was ~40% LC (felt pretty cracked in LC at this point), 55% system design (super weak here), and rest in behavioral (1-2 day of prep).
I had 5 rounds - 2 system design (1 practice), 2 coding, 1 behavioral
Onsite
-
Round 1 [Coding] [med] given an integer, find the smallest integer you can make by swapping at most 2 digits [hard] exp add ops
-
Round 2 [Coding] [med] - insert into circular LL [med] diameter n-ary tree
-
Round 3 [Behavioral] standard - conflicts, prioritization, sell yourself on biggest project
-
Round 4 [System design] heavy hitters / Top K. Follow up - what if instantaneous results weren't in scope. how would you change the design
-
Round 5 [System design] Design ticket booking system, emphasis on atomic operations, etc.
Result About 2 weeks after, I was given the green light that I was moved to team matching.
Interview Questions (9)
Group palindromes and anagrams, with follow-up questions.
Given two strings, check if one is a valid abbreviation of the other. Both input strings can contain numbers.
Given an integer, find the smallest integer you can make by swapping at most 2 digits.
Problem related to expression add operators.
Insert a node into a circular linked list.
Find the diameter of an N-ary tree.
Standard behavioral questions covering topics like handling conflicts, prioritization, and describing your biggest project.
Design a system for identifying heavy hitters or Top K elements. Follow-up question: How would the design change if instantaneous results were not in scope?
Design a ticket booking system with an emphasis on atomic operations.
Preparation Tips
Reflection
-
If you're doing Meta, tagged tagged tagged. Get to at the VERY least 75 problems last 30d/3mo/6mo, and know the top 50 by heart. I was at a state where given the title, I could immediately code the most optimal solution and talk through it end to end. I got to about 80 where I could do end to end easily and didn't feel comfortable tbh- I got super lucky with my q's. I'd go to at minimum 100 to feel at least somewhat okay.
-
Communication is key - you can breeze through impl but if you're a mime then you won't pass. There were some slip ups I had, where I fumbled a bit on answering follow-ups, etc. but I think my communication was quite good during the impl which helped a lot at least.
-
Don't skip behavioral - I felt pretty okay talking through behavioral as I have pretty good stories from my experience. Bucketize your stories based on all the big behavioral (conflict, priority, etc). I'd practice at least 3-5 days worth.
-
System design - Hello interview + Jordan has no life. In hindsight, I would've paid for HI, but I was too ego lol. But it's not necessary imo. Biggest thing is, being able to talk about tradeoffs and don't pigeonhole immediately on the 'most optimal' solution just because some material you watched said that it's the most optimal. You have to be fluid here.
-
Check out LeetCode Discuss for variants + Minmers YT channel.
-
I'm 2/2 on FAANG interviews, but I will definitely chalk it up to luck of interviewers being SUPER nice and collaborative, as well as questions not being super cracked / ones I've seen. This whole thing is a game, and you may get unlucky, and that's just the heart of the cards. Don't be discouraged or think you can't do it because you failed once. .
I will answer as many questions as I'm able to.
Hope this helps / motivates someone. I’m a complete average joe, not a CS prodigy from birth and don’t live and breathe LeetCode, but just worked super hard. I estimate about 300-400 hrs total studied. It was tough doing it along with work + life - definitely began to burn out towards the onsite. But with a bit of luck, I believe anyone could do it.
Good luck to everyone prepping!!! YOU GOT IT!
Summary
I completed a phone screen with Meta, where I was given two LeetCode questions. I fumbled on the first one due to an off-by-one error in my binary search logic, but performed well on the second, only needing an edge case and a minor optimization pointed out. I am hoping for a 3/4 score to advance to the next round.
Full Experience
Gonna give back to the community, got the two following qs for my phone screen https://leetcode.com/problems/random-pick-with-weight https://leetcode.com/problems/valid-word-abbreviation/
The first one I fumbled on; I found some edge cases, got buy-in, explained my thought process, etc. In retrospect (after the interview) I realized I updated my binary search variables incorrectly which resulted in an off by one error, just not for any of the test cases I wrote.
The second one was pretty good, I did the most optimal solution, but needed an edge case pointed out to me + a slight optimization I could make.
I'm hoping for a 3/4 score, which means I could go to the next round, but we shall see. I'm nervous about my off by one fumble and the optimization miss. We shall see.
Interview Questions (2)
Preparation Tips
My prep:
Mimer 50 and Meta Top 50 tagged, made sure I could do all of them in under 5 mins. Did the top 85 on LC for Meta tagged as well. Took me maybe two months, if I get to the next round I will do some more!
Summary
I completed a full-loop interview for an L5 Infrastructure Engineer / DevOps Engineer role at Meta (Facebook) in USA in April 2025, which consisted of 4 rounds focusing on DSA, Behavioral, and System Design.
Full Experience
Interview Date: April 2025 Status: Completed All Rounds
Interview Format & Round Breakdown
Meta’s interview process was structured, fast-paced, and focused heavily on system-level problem solving and communication. There were a total of 4 rounds over 2 days, broken into:
Day 1 – Technical Coding Rounds (Live CoderPad)
🔹 Round 1 – Data Structures & Algorithms (45 mins)
1. Merge Sorted Arrays In-Place
2. Level Order Traversal with Custom Sorting?
🔹 Round 2 – Data Structures & Algorithms (45 mins)
1. Tree BFS Level-wise Optimization: Variants on level-order traversal and memory-efficient implementation using deque, avoiding sorting inside BFS.
Day 2 – Behavioral & System Design
🔹 Round 3 – Behavioral Interview (45 mins)
• Tell me about a time you led a high-impact DevOps initiative
• Describe a time you failed — what did you learn?
• Talk about a conflict across teams and how you resolved it
• How do you drive alignment without authority?
• What’s the most innovative solution you implemented recently?
⸻
🔹 Round 4 – System Design Interview (45 mins)
• Design an Advertisement Delivery System – similar to how Meta (Facebook) delivers personalized ads to users in near real-time.
Interview Questions (9)
Given two sorted arrays, merge them in-place.
Implement Level Order Traversal with custom sorting.
Variants on level-order traversal and memory-efficient implementation using deque, avoiding sorting inside BFS.
Tell me about a time you led a high-impact DevOps initiative.
Describe a time you failed — what did you learn?
Talk about a conflict across teams and how you resolved it.
How do you drive alignment without authority?
What’s the most innovative solution you implemented recently?
Design an Advertisement Delivery System – similar to how Meta (Facebook) delivers personalized ads to users in near real-time.
Preparation Tips
Core DSA: Focus on Arrays, Strings, Hash Tables, BFS, Sorting System Design: Practice Meta-level scenarios like: Instagram, News Feed, Chat, Proximity Service, TinyURL Discuss trade-offs, scaling, consistency, fault tolerance Behavioral: Prepare stories with measurable impact. Use STAR format and align with Meta values.
Summary
This is an anonymous phone screen interview experience at Meta where the candidate passed. The interview included two main algorithmic questions: a variant of Random Pick with Weight and Valid Palindrome II with a follow-up to Valid Palindrome III.
Full Experience
Hey y'all, this ain't my experience but it's from anonymous. Hope it helps your studies!
Q1: LC528 Random Pick with Weight
Variant is with city populations. We kinda come to expect this at this point.
Q2: LC680 Valid Palindrome 2
Follow-up: LC1216 Valid Palindrome 3. I'm not certain if the person had to actually code it out. If I had to guess, it'd just be a verbal explanation. Please make sure you get the time complexity right.
---
P.S I don't know any information beyond this.
Interview Questions (3)
Implement randomPick(weights) where weights[i] represents the population of city i. The function should return the index of a randomly picked city, with its probability proportional to its population. This is a variant of LC528 Random Pick with Weight.
Given a string s, return true if the s can be a palindrome after deleting at most one character from it. (LC680 Valid Palindrome 2)
Given a string s and an integer k, return true if s is a k-palindrome. A string is k-palindrome if it can be transformed into a palindrome by deleting at most k characters from it. (LC1216 Valid Palindrome 3)
Summary
I had a phone screen with Meta where I was asked two LeetCode questions: Continuous Subarray Sum and Convert Sorted List to Binary Search Tree. I was unable to complete the second question in time and received a rejection.
Full Experience
Giving back to the community, other than meta tagged questions also practice the core DS questions
109 Convert Sorted List to Binary Search Tree
I only practices Top 50-75 Meta questions, and hence, the second question came as a surpise to me. Was able to build the logic but couldn't complete coding in time.
Got Rejection. Location - US
Interview Questions (2)
Preparation Tips
I only practices Top 50-75 Meta questions
Summary
I completed a screening interview with Meta, successfully solving two technical problems and a follow-up question for the second problem within 35 minutes.
Full Experience
Q1. Check if a str can be made into palindrome by replacing atleast one char q2. Longest Repeating Character Replacement (Sliding window)
Solved both of them, in 35mins along with a follow up for second question
Waiting for recruiter feedback
Interview Questions (2)
Check if a string can be made into a palindrome by replacing at least one character.
Longest Repeating Character Replacement (Sliding window) with a follow-up question.
Summary
I had a 45-minute phone screen with Meta, where I was asked two specific data structures and algorithms problems.
Full Experience
Meta Phone Screen Questions (2025)
Question 1: Insert a value into a sorted circular linked list and return the newly inserted node. ➤ Similar LeetCode: 708. Insert into a Sorted Circular Linked List
Question 2: Given a binary tree node, return True if every node’s value is equal to the floor of the average of its descendants (excluding itself). ➤ Similar LeetCode: 2265. Count Nodes Equal to Average of Subtree (Note: The original LC question counts such nodes; this variation checks that all nodes satisfy the condition.)
Interview Questions (2)
Summary
I underwent a full loop interview for an E5 SWE Product role at Meta, which included two coding rounds and a product architecture round.
Full Experience
Coding 1:
- Q1. Minimum remove for valid parenthesis
- Q2. Lowest common ancestor in a tree
Coding 2:
- Q1. variation of weighted sum of nested array
- Q2. variation of shortest distance from all buildings (multisource BFS)
Prod Arch:
hackerrank live contest leaderboard with quite a few custom functional requirements
Edit: Bay area location
Interview Questions (5)
Given a string s of '(', ')', and lowercase English characters. Your task is to remove the minimum number of parentheses so that the resulting parentheses string is valid. Return any valid string.
Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.
Calculate the weighted sum of integers in a nested list structure. The specific variation was not detailed, but generally involves defining weights based on depth or reverse depth for each integer in the nested array.
Given a 2D grid where each cell can be one of three values: 0 (empty land), 1 (building), or 2 (obstacle). A variation of finding the shortest total distance from an empty land cell to all buildings. The candidate mentioned a multisource BFS approach, hinting at the standard solution pattern.
Design a system for a live contest leaderboard similar to HackerRank, accommodating various custom functional requirements that were not explicitly stated.
Summary
I had a phone screen with Meta in London, where I was presented with two algorithm questions, variants of 'Random Pick with Weight' and 'Shortest Path in Binary Matrix'. I performed well on the first and mostly on the second, but I made mistakes in the time and space complexity analysis for the second question. I am currently awaiting an update on my application.
Full Experience
Q1: variant of https://leetcode.com/problems/random-pick-with-weight/description/
Q2: variant of https://leetcode.com/problems/shortest-path/description/
I aced Q1 and mostly Q2 but screwed up the TC and SC of Q2. still waiting for the update atm.
Interview Questions (2)
A variant of the Random Pick with Weight problem, which typically involves picking an index based on given weights, often solved using prefix sums and binary search.
A variant of the Shortest Path in Binary Matrix problem, which typically involves finding the shortest path from a source to a target in a grid with obstacles, often using Breadth-First Search (BFS).
Summary
I had a full loop interview for a Meta E4 infrastructure position in Seattle, which included a phone screen and a virtual on-site with coding, system design, and behavioral rounds. I was able to solve most coding problems optimally, but I believe I messed up the system design round, leading to a rejection. Despite the outcome, it was a good learning experience.
Full Experience
I recently had a full loop of Meta E4 infrastructure position for the Seattle office. I'm a backend engineer with 5+ YOE working in another big tech.
Phone screen:
- https://leetcode.com/problems/clone-binary-tree-with-random-pointer/description/
- https://leetcode.com/problems/binary-tree-vertical-order-traversal/description/
I passed the phone screen as I had already solved both problems before. I got a recruiter call the next day to schedule a virtual on-site. I scheduled on-site 3 weeks after the phone screen. My strategy remained the same, to study recently asked Meta questions, I aimed at covering at least 100 questions. However, I was not able to do so due to my current workload.
Onsite
- Interview 1
- https://leetcode.com/problems/two-sum/description/ a variant of two sum, where inputs are pairs instead of just numbers
- https://leetcode.com/problems/basic-calculator-ii/description/ variant of basic calculator where division was not required.
- Interview 2 System design interview, I was asked to design a system that can run code, like developers write the code and send it to the system and the system gives the output. Like AWS Lambda or LeetCode code runner. I followed the steps for hellointerviewdotcom but I think I messed up this round badly.
- Interview 3 Behavior interviews, I got like 6 or 7 questions standard behavior questions, I don't quite remember them, but there were those like give me an example of a time you had a conflict with a coworker, give me an example of a time you failed, give me an example of a time you took a decision without telling your manager and so on.
- Interview 4
- https://leetcode.com/problems/find-peak-element/description/ variant of this where we find minimum element and there could be duplicate values.
- https://leetcode.com/problems/subarray-sum-equals-k/description -- exactly the same
I think I got fairly easy questions and I was able to solve all 4 questions optimally with minimal hint, but ended up getting rejected which I believe is due to system design, but it was a good learning experience. For coding questions, I still highly believe that one can pass Meta interview with just 50 recently asked questions the trick is they ask variants and the variants sometimes are tricky.
Interview Questions (8)
Design a system that can run code, similar to how developers write code and send it to the system to get output. Examples include AWS Lambda or a LeetCode code runner.
Standard behavioral questions were asked. Examples include: 'Give me an example of a time you had a conflict with a coworker?', 'Give me an example of a time you failed?', and 'Give me an example of a time you took a decision without telling your manager?'.
Preparation Tips
For the phone screen, I only did 50 recently asked Meta questions as preparation. My strategy remained the same for the on-site, aiming at covering at least 100 questions, though I was unable to due to my current workload. I leveraged codingwithminmer YouTube channel sometime while prepping, noting that its videos are lengthy and might be difficult to cover if time is limited.
Summary
I had a phone screening interview with Meta where I was asked two algorithmic questions.
Full Experience
1.find local finimum in array. 2.kth closet point to origin(https://leetcode.com/problems/k-closest-points-to-origin/description/)
Summary
I attended a Meta London E5 interview in May 2025, which included coding, behavioral, and system design rounds. I am currently waiting for the results.
Full Experience
I attended Meta(London) for E5 role from Berlin.
Screening: solved both
Unfortunately I rushed through the final interview 2 weeks after screening.
Codign 1:
- Vertical order traversal -> Solved it optimally
- Tic tac toe traversal -> Solved it optimally after initial non optimal solution
Codign 1:
- Group shifted string variabtion ( instead of shifting right, left used)
- Word Search -> instead of boolen, path needed. I had only 19 mins to solve this, so rushed with time optimal and non space optimal solution by keeping a copy of list. This problem is implementation heavy, so I couldnt dry run with test data but I wrote solution very fast after got the buy in. Not sure if this round backfire.
Behavioural:
- Interviewer seems nice, answered all questions, with followups. Felt I did very well.
System Design:
- Design uber ( interviewer is quiet throughout the interview )
- Drafted use case
- BOE -> messed up in some number for a particular use case ( fumbled for 10 seconds and moved on)
- NFRs -> perfect
- API -> Wrote all missed one, interviewer pointed out, covered it.
- HLD -> neat.
- Schema neat.
- At this point we had 15 mins left and I wrote possible deep dive areas.
- Dived deep on real time tracking once trip started(interviewer interested in this),
- Driver location update before order update
- Proximity search via redis geohash
Waiting for results.
Interview Questions (6)
I was asked to solve the Vertical Order Traversal problem. I solved it optimally.
I was asked a Tic Tac Toe traversal problem. I initially provided a non-optimal solution but then improved it to an optimal one.
I was given a variation of the Group Shifted Strings problem, where instead of shifting right, left shifts were used.
I was asked the Word Search problem, but instead of just returning a boolean, I needed to return the path. I had only 19 minutes, so I rushed with a time-optimal but non-space-optimal solution by keeping a copy of the list. This problem is implementation heavy, and I couldn't dry run with test data, but I wrote the solution very fast after getting buy-in.
The interviewer seemed nice. I answered all questions with follow-ups and felt I did very well.
I was asked to design Uber. During the interview, I drafted use cases, discussed BOE (where I fumbled in some numbers), NFRs, APIs (missed one which the interviewer pointed out), HLD, and schema. We then deep-dived into real-time tracking once a trip started, focusing on driver location updates before order updates and proximity search via Redis geohash.
Summary
I had a Meta screening interview for a Senior Software Engineer role in Bangalore, where I was asked two specific coding problems from LeetCode.
Full Experience
- https://leetcode.com/problems/diagonal-traverse-ii/description/ - with 2 variations, Input: nums = [[1,2,3],[4,5,6],[7,8,9]] Output: 1 2 4 3 5 7 6 8 9
- https://leetcode.com/problems/valid-palindrome-ii/editorial/
Summary
I interviewed for a Specialist AI role (research engineer) at Meta's Menlo Park office and was ultimately rejected after an onsite experience that included coding, AI-specific coding, AI design, and behavioral rounds.
Full Experience
Giving back to the community.
Specialist AI role (research engineer in a specific field). The interview process seems to be different from general software or machine learning roles.
First, recruiter did a team "pre-match" to identify 3 or so teams that match my background.
Then 2 phone calls with potential team members with informal chats about my resume & background. There were no "interview" questions at all (no coding, ML knowledge, system design, behavioral etc.)
Onsite:
- Coding: Two LC mediums, both in Meta top 100 (around 70 or 80).
- AI Coding: One LC easy, and one about PyTorch (for a single layer network, give high level description of forward() and backward())
- AI Design 1, 2: Both were questions about my specific field. Describe a system on Excalidraw and discuss various aspects, citing different approaches used in the field. Totally different from general Meta ML design interviews on youtube/books.
- Behavioral: Usual questions you can find on the web. Describe conflict with coworker & how you handled it & what you would do differently if you could go back.
After interview, hiring managers of the pre-matched teams looked at the interview feedback to decide whether to send my packet to candidate review or not. Apparently, hiring managers decided to reject. I had to wait almost 2 weeks to hear results because recruiter also tried asking other hiring managers.
Interview Questions (2)
For a single layer network, give a high level description of forward() and backward() methods in PyTorch.
Describe conflict with coworker & how you handled it & what you would do differently if you could go back.
Summary
I interviewed at Meta 3 months ago, received an offer, and successfully matched with a team last week. The experience involved coding, system design, and behavioral interviews, featuring specific LeetCode problems, design scenarios like Dropbox, and challenging behavioral questions.
Full Experience
This is my first contribution for this wonderful forum of my experience. I interviewed 3 months ago and matched with the perfect team last week (will not reveal what team due to privacy reasons). Do not go for Monetization, WLB is atrocious.
THANK YOU TO CODING WITH MINMER FOR EVERYTHING + THIS COMMUNITY. Yes everything can come down to luck and I got very luck but there is a fair high chance you get a variant. No one else knows about these variants but us, so please use it to your advantage.
PS: union two lists of intervals but they are both sorted. follow up: N lists of intervals, union and return them in sorted order
Onsite Coding #1: leetcode 129 exactly follow up: return all the paths of the sums. This is from another leetcode problem but I cannot find it.
Onsite Coding #2: find the number of unique elements in a sorted array. Exactly like what Minmer covered. leetcode 50. I solved it with recursion but interview pushed for the iterative one. Truth be told, I needed a hint because I solved the problem the night before (Lucky, I know), but I persevered. I got a working solution and the interviewer was happy with it. Sometimes, it's all about luck.
System Design #1: Design Dropbox but they called it Facebox. Clever. Talked about chunking, resumable uploads. System Design #2 (doesn't count. Meta has a fake one): Auction bidding system
Behavioral: Conflicts? Agreements? DISagreements? Who is the worst manager you have had? This one threw me off balance so be ready for anything.
Interview Questions (6)
Union two lists of intervals, both of which are already sorted. Follow up: Given N lists of intervals, union them and return them in sorted order.
Find the number of unique elements in a sorted array. I solved it with recursion but the interviewer pushed for an iterative solution. I needed a hint but persevered and got a working solution that satisfied the interviewer.
Design Dropbox (referred to as Facebox by Meta). Discussion involved aspects like chunking and resumable uploads.
Design an auction bidding system.
Behavioral questions covered scenarios involving conflicts, agreements, and disagreements. A particularly challenging question asked was: 'Who is the worst manager you have had?'
Preparation Tips
In retrospect, Again, could not have done it without everyone here. Keep up the grind, Looking back I did around 120 leetcode problems over and over. Don't stop because you'll forget how to solve them. For the behavioral, silence is acceptable but give them a whole story, keep them captivated with specific details of your story. For beavioral I looked up many videos from Exponent, they have some helpful examples.
Summary
I had a phone screen and onsite interview for an E5 role at Meta in the US and was rejected. I am sharing my experience and learnings, including specific phone screen questions and hints for onsite questions, while honoring an NDA.
Full Experience
Giving back to the community. Since I signed an NDA right after phone screen and before the onsite, I will honour it, will post the phone screen questions, but only hints for the onsite ones.
Phone Screen-
- LC 121 - No variant
- Not LC tagged - a binary search question similar to LC 1891
Behaviour
- Standard questions, should be easy if you really have good experiences
Coding 1
- LC tagged, no variant, involves some sort of dfs on a list
- Not in LC, variant of finding a certain area in a matrix, again involves dfs
System design
- One of the "below the line" items from hello interview. Involves storing media files.
Coding 2
- Variant of LC tagged, about extracting subset of data from a given data, involves heap.
- Another LC tagged heap question, find a specific one instead of subset.
Interview Questions (3)
Given an array prices where prices[i] is the price of a given stock on the i-th day. You want to maximize your profit by choosing a single day to buy one stock and choosing a different day in the future to sell that stock. Return the maximum profit you can achieve. If you cannot achieve any profit, return 0.
A binary search problem similar to LeetCode 1891, which is 'Cutting Ribbons'. In LC 1891, given an array of integers ribbons, where ribbons[i] represents the length of the i-th ribbon, and an integer k, you may cut any ribbon any number of times. You want to obtain k ribbons of the same positive integer length x. Return the maximum possible positive integer length x that you can obtain. This problem is a variant of that concept.
Design a system for storing media files. This relates to "below the line" functional requirements discussed in 'Hello Interview' resources, indicating a focus on non-functional requirements or detailed implementation aspects.
Preparation Tips
Solve all meta tagged LC questions from at least 3 months (better 6 months), suboptimal won't work (that's what happened for me), have to be the optimal one. Don't just memorize, get to the depth of it, variants might surprise you. If you are looking at hello interview questions, also prepare for "below the line" functional requirements.
Summary
I successfully interviewed with Meta for a SWE E4 role, a process that took 6 months from recruitment to offer. Despite challenges like a tough team matching process for NYC and not achieving an E5 due to help on system design, I secured an offer with improved compensation compared to my previous role at Amazon, motivated by changes in company culture and seeking better treatment.
Full Experience
Hello all. During my time interviewing, I read a lot of other peoples' posts here to give me encouragement. I hope this post does the same for others. The total timeline from recruitment to signing was 6 months. My story is really long to help those who need details. Best of luck to everyone. Don't give up!
My Background
I have 6 years of experience at Amazon and two prior internships.
Recruitment
I met a meta recruiter at Grace Hopper, but generally Meta, Google, and other FAANG companies email or linkedin message me. I applied after Grace Hopper in November and heard back in 2 weeks. I scheduled my phone screen for January since I planned to work full time until I got an offer.
Phone Screen
Studying
I prepared for 2 months for 20 hours a week. I went over the top 150 meta tagged questions 2-3 times. I looked at multiple optimal solutions. I paid for 1 mock interview with an ex-meta engineer and did multiple practice rounds for free on Exponent with strangers.
Interview
On the phone screen day, both questions were from the top 50 meta tagged questions. I got strong feedback the next day and moved onto the onsite.
Onsite
My system design was infra. I have experience in both infra and product work. I took off about 3 2 week vacations to study 40 hours a week. When I was working, I study 20 hours a week.
Studying
System Design
My onsite was in April because I needed a lot of time to prepare for the system design because I never had a system design interview before. I was hired at Amazon straight from college. For system design I read Alex Xu's book, although it was outdated. Then I did every problem on Hello Interview 2-3 times and reviewed their youtube videos and written guides 2-3 times. TBH there are more online resources for product than infra questions on Hello Interview. I scheduled a paid system design mock with an ex-meta engineer. This process took about 5 weeks.
Leetcode
Then I went over the top 150 meta tagged coding questions over and over again until I could do all of them in 10-15 mins. I made sure I spoke outloud in the meta format of asking clarifying questions, explaining my plan, confirming the plan was valid, explaining trade offs if there were multiple good solutions, saying the time and space complexity, coding, and going through at least 1 example. The important part for me was doing all of this in 10 minutes if I could. I memorized the solutions, but also made sure I could explain every line of code.
My next step was to make sure I could do variants. I watched all of the variants from this channel https://www.youtube.com/@CodingWithMinmer and then solved them myself. I did some of them twice if they were harder.
I redid all the hard meta tagged top 150 questions one more time 2 days before the interview. This took me 6 weeks.
Behavioral
I collected previously asked meta behavioral questions from hello interview and general behavioral questions (about 30-40 questions). I practiced speaking all of them.
Then I created a list of 5-6 questions for each of the five core meta pillars.
- Resolving Conflict
- Growing Continuously
- Embracing Ambiguity
- Driving Results
- Communicating Effectively
I outlined 10 different work examples. Then I wrote a story for each of the questions based on those work examples. Then I got friends to ask me the same questions over and over again. At first I took too long to answer a question (7 minutes) and I wasn't clear with the STAR technique. After 8-10 rounds of 5 questions, I felt like I had my examples memorized and each took 3 minutes to get all elements of star.
This took about 1 week.
Final Review
For the last 2 weeks or so, I practiced interviewing. I did online interviews on Exponent for system design, leetcode, and behavioral. It was really hit or miss who I got on the site. So I stopped after 1 week and just practiced with a friend each day.
Interview
- Behavorial
I got a nice interviewer who asked standard interview questions. Some weren't exactly like the questions I had practiced, but I just picked 1 of the 10 examples I had and fitted it to the question. Interviewer was laughing and said he wanted to see me in the office sometime.
- System Design
I was thrown off guard because I didn't get one of the questions on the Hello Interview Guides. Note this question was on discussion pages of Hello Interview, but was ranked low.
I thought I could use top-k videos for this problem, but my interviewer said since he only asked me for 1 game that I was going too far. I scaled it back and went more like the leetcode leader board with a Redis sorted set and he was happy. I wanted to try for E5 even though my years put me at E4. I wasn't picked for E5 because I had help.
- LeetCode I
I got two variants of top 100 meta tagged questions. I highly recommend people review CodingWithMinmer if you have an onsite. It saved me. Both of them were from CodingWithMinmer's channel although slightly different (but not in a meaningful way). The second variant, I didn't remember as well, so I got stuck at the coding, but made it out okay because I had so much time saved from the first question.
- LeetCode II
I got another two variants. One from CodingWithMinmer and the other was a top meta tagged; but to return the list instead of the size. I finished both in 10 minutes. The only problem was that for the first one I forgot the 0 case because Minmer did only positive numbers. I got so nervous and my brain couldn't think about how to solve it. The interviewer kindly reminded me that I had 30 minutes to solve this one case and to take a breath. She was really nice and that helped me calm down enough to finish the case.
Result:
My recruiter called me 4 hours after my final interview and said my feedback was really strong. I passed E4, but because for system design I got help, I didn't get E5.
Team Matching
This was the worst part. I live in NYC and I can't move. NYC is really hard to team match. It took me 5 weeks. I heard nothing for 4 weeks. I joined a Discord of other meta TM candidates to get advice. I saw some people had been waiting months. I heard that a good idea is to message people on Linkedin or get a friend in Meta to ping HMs. I did both. After my friend spammed HMs, I got matched the same day.
Negotiation
I didn't have any other offers from other companies. I was too busy to interview for more places, but my Amazon salary is near the top of my level. My Amazon salary got me probably the highest comp that Meta was offering for E4 right now from what I saw on the discord channel. It is nothing like 2021, but it is higher than Amazon so I took it.
My NYC Amazon Salary: 190K base/300K RSU for 3 years My NYC Meta: 193k base/450K RSU for 4 years/35K bonus/15% yearly rate bonus
Summary
I used to love my teams at Amazon, which is why I stayed so long. However, things have changed and management has become more toxic as my teams grew. RTO5, salary, and poor treatment of my team is what made me leave. I hope for better treatment from my new team. I hope people also find themselves relating to this too and find that my post gave them courage to fight for what they deserve (to be treated like a human) at work. At the end of the day the hiring process is all about luck. I got lucky to have nice interviewers. Don't be too hard on yourselves as some things are out of our control. I wish everyone else luck on their journeys
Interview Questions (1)
The system design question involved designing a leaderboard for a single game. I initially considered a top-k video solution, but the interviewer clarified the scope was for one game, indicating that my initial approach was overly complex. I had to scale back my design and proposed a solution akin to a LeetCode leaderboard, specifically mentioning the use of a Redis sorted set.
Preparation Tips
For the phone screen, I prepared for 2 months, dedicating 20 hours a week to going over the top 150 Meta-tagged questions 2-3 times and studying multiple optimal solutions. I also had one paid mock interview and multiple free practice rounds on Exponent.
For the onsite, I took several 2-week vacations to study 40 hours a week, and 20 hours a week when working. For system design, I prepared for about 5 weeks by reading Alex Xu's book (though outdated) and doing every problem on Hello Interview 2-3 times, reviewing their YouTube videos and guides. I also scheduled a paid system design mock with an ex-Meta engineer.
For LeetCode, I spent 6 weeks going over the top 150 Meta-tagged coding questions until I could solve them in 10-15 minutes, practicing the Meta interview format of clarifying, planning, confirming, discussing tradeoffs, stating complexity, coding, and example walkthroughs. I memorized solutions but also ensured I could explain every line. I also watched and solved variants from the CodingWithMinmer YouTube channel, redoing harder ones and all hard Meta-tagged questions two days before the interview.
For behavioral, I spent about 1 week collecting Meta and general behavioral questions (30-40 total) from Hello Interview. I created a list of 5-6 questions for each of Meta's five core pillars (Resolving Conflict, Growing Continuously, Embracing Ambiguity, Driving Results, Communicating Effectively). I outlined 10 different work examples and wrote stories for each question based on these examples. I practiced speaking them with friends, improving my clarity and STAR technique to answer each question in 3 minutes.
For the final review (last 2 weeks), I practiced interviewing on Exponent for system design, LeetCode, and behavioral, but stopped after a week due to inconsistent partners and practiced with a friend daily instead.
Summary
I'm sharing behavioral questions asked during my Meta E5 interview, building on my previous posts about phone screen and loop questions.
Full Experience
Time to give back to the community. I have already posted phone screen and loop questions on separate threads. Posting behavioral questions. Good luck!
Interview Questions (4)
tell me about a time you lead an cross team initiave.
tell me about a time when the requirements were not clear.
tell me about a time when you had a conflict with a co-worker.
tell me about a time when you got a negative feedback.
Summary
I successfully passed my E5 Production Engineer interview loop at Meta in London, UK, after a fast interview process and a total of three weeks of preparation.
Full Experience
Giving back to the community.
Phone Screen
Round #1 - Coding
- a) Easy-to-medium problem involving string manipulations. Not on LeetCode.
- b) A version of 489. Robot Room Cleaner with slightly relaxed constraints.
Round #2 - Troubleshooting
A typical troubleshooting round that tests my debugging skills in Linux-like environments.
Full Loop
Round #1 - Coding
- a) A classical one. 125. Valid Palindrome.
- b) A problem involving reading 2 CSV files, doing some calculations, and printing the combined output. Very similar to a classical problem involving dinosaurs. Not on LeetCode.
Round #2 - Systems Design
Design a CI/CD pipeline to upgrade the kernel version on a set of thousands of machines distributed across several data centers.
Round #3 - Behavioral
Standard behavioral questions with a twist at the end. For example: Tell me about a time you convinced someone to change their mind, and later you found you were wrong.
Round #4 - Operating Systems
Standard OS questions around memory management, processes and thread management, and VFS. 2nd part of the round was dedicated to troubleshooting questions.
Interview Questions (6)
A version of 489. Robot Room Cleaner with slightly relaxed constraints.
A classical one. 125. Valid Palindrome.
A problem involving reading 2 CSV files, doing some calculations, and printing the combined output. Very similar to a classical problem involving dinosaurs. Not on LeetCode.
Design a CI/CD pipeline to upgrade the kernel version on a set of thousands of machines distributed across several data centers.
Standard behavioral question: Tell me about a time you convinced someone to change their mind, and later you found you were wrong.
Standard OS questions around memory management, processes and thread management, and VFS.
Preparation Tips
I only had a week of preparation before my Phone Screen and 2 weeks before the virtual on-site. The process was pretty fast - it took less than a week from the final round to the offer.
Summary
I passed the Meta full loop interview for an E4 role in the US, which included a phone screen, two technical rounds focusing on Data Structures & Algorithms, and a system design interview.
Full Experience
E4 US
Phone Screen
Range Sum of BST
Variation of Expression Add Operators (no multiplication)
Technical Round 1
Nested List Weight Sum
All Nodes Distance K in Binary Tree
Technical Round 2
Range Sum Query - Immutable
https://leetcode.com/problems/range-sum-query-immutable/description/
Shortest Path in Binary Matrix, follow up -> keep track of the shortest path
System Design
Design Facebook news feed
Interview Questions (7)
Given an n x n binary matrix 'grid', return the length of the shortest clear path in the matrix. If there is no clear path, return -1. A clear path is a path from the top-left cell (0, 0) to the bottom-right cell (n - 1, n - 1) such that all visited cells are 0. Follow up: keep track of the shortest path itself.
Design a scalable system for the Facebook news feed, considering aspects like feed generation, fan-out approaches, storage, and real-time updates.
Summary
I had my screening interview at Meta, during which I was asked two specific LeetCode problems: Kth Largest Element in an Array and a variation of Binary Tree Vertical Order Traversal.
Full Experience
I had my screening interview at Meta. The following questions were asked:
- https://leetcode.com/problems/kth-largest-element-in-an-array/description/
- https://leetcode.com/problems/binary-tree-vertical-order-traversal/description/ or https://leetcode.com/problems/vertical-order-traversal-of-a-binary-tree/description/ with no specific order mentioned for the colliding elements (elements in the same row and column)
For the second question, when I mentioned BFS traversal, the interviewer asked why I couldn't use DFS and requested an example to prove it.
Interview Questions (2)
Given the root of a binary tree, return the vertical order traversal of its nodes' values (i.e., from top to bottom, column by column). The specific variant discussed did not mention a specific order for colliding elements (elements in the same row and column). I was also asked to explain why BFS traversal might be preferred over DFS for this problem and to provide an example to prove it.
Summary
I recently passed a Meta MLE phone screen, which included a variant of 'Shortest Path in a Binary Matrix' and 'Remove Duplicates from Sorted Array'.
Full Experience
Hey y'all, sharing a recent interview experience on behalf of anonymous.
Q1: LC1091 Shortest Path in a Binary Matrix The variant is what if you had to return the shortest path, not the length of the shortest path? It's noted that storing the path in the queue state was acceptable and interviewer was satisfied.
Q2: LC26 Remove Duplicates from Sorted Array This was asked straight-up, and IMO I've seen it pop up a lot more recently.
I'm not sure of any information beyond that. Much luck to everyone studying!
Interview Questions (2)
Summary
I had a phone screen for a Meta SWE ML E4 position and was asked two coding problems. I received positive feedback and am now preparing for the full loop.
Full Experience
Hey everyone,
I had my phone screen for the Meta SWE ML position about two weeks ago. Here are the questions I was asked:
Minimum Round Trip Cost – Given two arrays, one representing departure costs [d1, d2, d3, d4] and the other return costs [r1, r2, r3, r4], find the minimum total cost for a round trip.
Robot Room Cleaner Variant (Mouse and Cheese) – This was a variation of the classic robot room cleaner problem. I hadn’t come across this problem before the interview and wasn’t aware of related resources like CodingWithMingmer. I was able to solve it eventually, but interviewer told me to improve my time management during coding as I took 4-5 minutes more to finish the code for this.
I gave dfs approach, and as a follow up at last, he asked me to think about bfs one .
Hope this helps !
The recruiter got back to me the next day with positive feedback.
I am currently preparing for full loop. Wish me luck .
Interview Questions (2)
Given two arrays, one representing departure costs [d1, d2, d3, d4] and the other return costs [r1, r2, r3, r4], find the minimum total cost for a round trip.
A variation of the classic robot room cleaner problem.
Summary
I received an offer from Meta for an E4 Software Engineer role after completing phone screen and onsite rounds, which included coding, system design, and behavioral interviews.
Full Experience
Hi,
I just received an offer from Meta for E4 SE role. Sharing my interview experience and giving back to the community.
Phone Screen:
Question 1:
Given a list of integers, return the maximum sum of two numbers. Constraint is that the two numbers should not be adjacent to each other
Question 2:
Given a list of Node references, return the root node of the tree if all the nodes in the list belong to one tree else return null.
Was provided with the below node definition
class Node {
Node left;
Node right;
}
Received a call from the recruiter 2 days later that I was moving on to the onsite rounds.
Onsite rounds
Round 1 (Coding):
LC 938: Range Sum of BST
LC 56: Merge Intervals. I was asked the variant of it. Given 2 sorted lists and asked to merge the intervals. You can refer to CodingWithMinmer youtube channel for all variants.
Round 2 (System Design):
Status search - similar to FB post search on HelloInterview.
Round 3 (Coding):
LC 346: Moving average from Data Stream
LC 1650: Lowest Common Ancestor of Binary Tree III
Round 4 (Behavioral):
Common behavioral questions
Interview Questions (8)
Given a list of integers, return the maximum sum of two numbers. Constraint is that the two numbers should not be adjacent to each other
Given a list of Node references, return the root node of the tree if all the nodes in the list belong to one tree else return null.
class Node {
Node left;
Node right;
}LC 938: Range Sum of BST
LC 56: Merge Intervals. I was asked the variant of it. Given 2 sorted lists and asked to merge the intervals.
Status search - similar to FB post search on HelloInterview.
LC 346: Moving average from Data Stream
LC 1650: Lowest Common Ancestor of Binary Tree III
Common behavioral questions
Summary
I interviewed for a Production Engineer role at Meta in Dublin and was ultimately hired with an overall rating of 3/5. I performed well in Leadership and Troubleshooting rounds but struggled with System Design and one of the Data Structures & Algorithms rounds.
Full Experience
Screening rounds:
Round 1: Goat Latin https://leetcode.com/problems/goat-latin/description/ & Dinosaur problem https://leetcode.com/discuss/post/391865/facebook-phone-screen-csv-dinosaurs-spli-znr1/ question 1 from here
Round 2: Troubleshooting, nothing specific to say, I was able to solve and passed the round. Just work on intuition and you need experience for this. I was in devops for a year, so was able to do it.
On-site:
Round 1: DSA -> Given a file, which has some strings, with delimiter %. the strings themselves can contain %, whenever the function is called print a random line. My file handling was not superb, so did not do that well, but arrives at the solution eventually
Solution was: find pattern %/n% as delimitter
Round 2: System Design. The interviewer had a 10yoe in netwoking, so what started off as a system design of a pipeline turned into a full blown networking interview without hints. Did pretty bad here and got demotivated
Round 3: Leadership interview -> Nothing specific
Round 4: Troubleshooting -> Was not given any specific system to troubleshoot, Generic discussion of tools, log lines etc.
Overall verdict: Hire on a rating of 3/5 overall. Had high ratings in Round 3 and 4 (both had between 4 and 4.5) and mid in Round 1 (2.5-3), and low(1.5-2/5) in Round 2
Interview Questions (3)
Given a file that contains multiple strings, with '%' acting as a delimiter between these strings. The individual strings themselves can also contain '%' characters. Implement a function that, each time it is called, prints a random line from the file.
Summary
I completed a phone screen with Meta USA for an E4/E5 role, which included two specific LeetCode questions (Range Sum of BST and LRU Cache with variants), and I have advanced to the onsite rounds.
Full Experience
Hello,
Giving back to the community since reading the problems that people got in the interviews here has been super helpful for me. Just got done with my phone screen.
Was asked the following.
- Range Sum of BST (No variant)
- LRU Cache with some additional conditions and constraints.
Was able to solve the first question easily and was asked test conditions etc. Seemed like this was important and I went over how we can have negative values, low should be less than high, etc. etc.
For LRU cache, I had not solved it recently, but remembered the Double linked list solution as I had done it at some point in the past. Was not entirely sure what to store as the hashmap value so started off by saying we should store the node value and then remove the node for the get statement.
Interviewer pointed out that it would be O(N) to traverse linkedList to the node again. So then realized that we need to store pointer/reference to the node as hashmap value (Interviewer hinted and helped me get ther). Once I realized the solution, since we were running out of time interviewer just made me implement the get() method and the get_most_recent() method.
Fingers crossed to be put through to onsites. Will update once I know more.
Update: Through to Onsite!!
Interview Questions (2)
Summary
I recently had an interview experience at Meta for an E4 Infra role, where I navigated through screening and onsite rounds, encountering various LeetCode problem variants and a System Design question.
Full Experience
I recently interviewed at Meta for an E4 Infra position. The interview process consisted of a screening round followed by several onsite rounds, including both coding and system design. During the screening, I encountered two coding problems: a variant of 'Best Time to Buy and Sell Stock' and 'Minimum Remove to Make Valid Parentheses'.
For the onsite rounds, I faced several more coding challenges, all of which were variants of well-known LeetCode problems such as 'Diameter of Binary Tree', 'Basic Calculator II' (with an O(1) space constraint), 'Shortest Path in Binary Matrix', and 'Simplify Path'. The System Design round focused on designing a Game Leaderboard.
Interview Questions (7)
A variant of the 'Basic Calculator II' problem, specifically requiring an O(1) space solution. The standard problem involves evaluating a simple arithmetic expression string containing non-negative integers, '+', '-', '*', '/' operators and empty spaces. The variant likely imposes the strict space complexity constraint.
Design a scalable system for a game leaderboard. Consider aspects like storing scores, retrieving top N players, handling updates, and ensuring low latency and high availability for a large number of users and games.
Preparation Tips
I prepared for the coding rounds by focusing on variants of common LeetCode problems, leveraging resources like @CodingWithMinmer's videos. For the System Design interview, I found the HelloInterview Premium subscription to be immensely helpful for a month.
Summary
I interviewed for an E5 role at Meta in the US in March 2025 and received a rejection. My coding and behavioral rounds were strong, but I felt less confident about the system design interview.
Full Experience
Summarizing my experience:
- Coding: Went perfect. I discussed multiple solutions, coded the most optimal one (or the one the interviewer preferred), tested thoroughly, and discussed complexities. I breezed through this round.
- Behavioral: Was standard. My answers were aligned with company values and I used the STAR method.
- System Design (SD): Went as per the standard roadmap. I had sufficient time to do a couple of deep dives. This is the only round I'm not confident about because of the nature of the interview.
Opinion: Sometimes interviewers have a solution in mind and that's what they want to hear.
The market is extremely tough; one word out of a picture-perfect answer and you're out.
Interview Questions (8)
Given the root of a binary tree, calculate the vertical order traversal of the tree. For each node at (row, col) position, its left child will be at (row + 1, col - 1) and its right child will be at (row + 1, col + 1). The vertical traversal of a binary tree is a list of lists of node values, where each inner list contains the node values in a specific vertical order. Nodes within the same row and column should be sorted by their values.
There are n buildings in a line. You are given an integer array heights of size n where heights[i] is the height of the ith building. A building has an ocean view if all the buildings to its right have a smaller height. Return a list of the indices (0-indexed) of buildings that have an ocean view, sorted in increasing order.
Summary
I had a phone screen for an E5 role at Meta in the USA, where I was asked to solve two LeetCode problems: Binary Tree Vertical Order Traversal and K Closest Points to Origin. I passed this round and am now scheduled for a full loop interview.
Full Experience
Had phone screen today
https://leetcode.com/problems/binary-tree-vertical-order-traversal/description/
Gave the tree and asked to figure out the order. I could not do it, so he gave me hint that it is vertically ordered.
For both problems, asked to print them.
Waiting for results.
Update: Pass. Full loop to be scheduled
Interview Questions (2)
Summary
I passed the Meta E4 Software Engineer interview loop for an Infra role in the USA and am currently in the team matching stage after clearing Hiring Committee.
Full Experience
Giving back the community 💯🙏
Verdict : Cleared HC, in team matching stage. Background: International candidate (Not new grad), ~2.5 years of work experience. Applied via referral in Jan.
Prep:
- Did top 200 questions from meta's most recently asked questions list.
- HelloInterview for System Design (Used the AI practice interview feature)
- Made sure to note down possible situations from work as they happened that can be used for the behavioral rounds.
- REVISE THE LC QUESTIONS
- Make sure the practice questions in the format in which you will deliver them. Talk about testcases, multiple approaches, pros and cons of those approaches, most optimal approach (its okay to learn the quickselect approach for finding the kth largest element 😂), dry run the code, time and space complexity.
- Scoured the internet for E4 experiences.
Got my recruiter call in february. At the time she mentioned that there were enough E4 positions and that I could take 3-4 weeks to prep for my phone screen rounds and thus I scheduled it in march. Due to some personal reasons, I was unable to give it then and had to reschedule this interview to March end. Halfway through to march end, the recruiter pinged me saying positions are drying up at a faster rate and that it would be advisable to move up the timeline. Anyhoo, I stuck to my timeline because of my prep and my personal life.
Phone Screen: (Did very well)
- Given a matrix, print the antidiagonals from top to bottom.
- Given a tree, print the left side view from bottom to top, then root once and then the right side view from top to bottom. (make sure to clear edge cases and talk through these possible cases).
Got my go ahead signal in 2 days, scheduled virtual onsite loop after 3 weeks. I gave this whole week as availability, got lucky with this schedule split. Again got notified that it would be advisable to move up the timeline but I wanted to prep well and was okay with being dropped due to no positions rather than being rejected due to lack of prep. (Luckily I have a job that is not bad and wanted to take my time to prep - definitely priviledged 😊)
Coding round 1 (Did well)
- Convert BST to Sorted DLL. (Make sure to talk about the edge cases)
- Variant for Robot room cleaner. I was exactly asked the cheese and mouse variant. Please checkout CodingWithMinmer's video on robot room cleaner.
In this round, I finished the first question as expected, the second one was shaky in that, I gave my approach, explained possible scenarios, gave the space and time complexity but not so perfect part was the dirty code. I had to revisit the code multiple times to make sure I had covered everything. No hints from the interviewer, just a self correction process. Did not get time to completely dry run testcases. At the end interviewer seemed satisfied but I feel the verdict for this round could have swayed both ways because of the fact that there was no clear train of thought while writing the code (Maybe I am nitpicking here but hey gotta be as perfect as humanely possible).
Coding round 2 (Did very well)
- LCA of Binary Tree.
- Print the path of the shortest path from (0,0) to (n-1,m-1) in a unweighted graph/grid.
Got through this round smoothly, no major bumps. I code in c++ so the second question took some time to type out.
Behavioral round:
The panel was sweet, luckily the interviewer and I shared the same team in our respective companies, so I assume some relatability would have happened there but no major advantage here. It was nothing more than a mere "nice, me too" kinda situation when the person mentioned their team.
I was asked the standard questions:
- Tell me about a time you took initiative and delivered impact
- Tell me about a time you had a difficult relationship with someone and how did you overcome it.
- Tell me about a time you recieved negative feedback
- Tell me about a time when your plan derailed due to factors not in your hands and how did you handle it.
This went well subjectively i.e according to me XD
System Design (Did well)
Design an ACM ICPC kinda competition platform with a real time leaderboard
This round was a little different in that
- The excalidraw tool was super laggy and the interviewer's question kept dissappearing as soon as it was pasted there. So had some difficulty in the start. Additionally, while I was typing and drawing, the tool would randomly freeze or not identify my keyboard/mouse clicks.
- The interviewer joined 2 minutes late, and took rougly 3-4 minutes to explain the question.
The first 10 minutes went in just understanding the question and adjusting to the tool. The question answering part still went pretty well according to me although at some point I had to rap about some deep dives. There was no time left for questions at the end. The main worrying thing about this round for me was that I was not able to write down around 20-25% of the stuff I said because of the crappy tool. This constitued the deep dives explanations, so yea, got a little worried there. Make sure you are going in the right direction with incremental checkups with the interviewer.
Got a call from the recruiter 3 days later saying my packet is being sent to HC and initial feedback looks positive. Got another call 2 days later saying I have cleared HC and am being put into team matching. Been there since a week now and patiently waiting :)
Huge shoutout to @CodingWithMinmer, I think all your variants are great and really good mental excerices. They really help you approach questions in a different angle, even the ones you are yet to cover. Full power to y'all!!
I hope this was helpful and all the best for your interviews!!
Cheers🥂
Interview Questions (11)
Given a matrix, print the antidiagonals from top to bottom.
Given a tree, print the left side view from bottom to top, then root once and then the right side view from top to bottom. (make sure to clear edge cases and talk through these possible cases).
Convert BST to Sorted DLL. (Make sure to talk about the edge cases)
Variant for Robot room cleaner. I was exactly asked the cheese and mouse variant. Please checkout CodingWithMinmer's video on robot room cleaner.
LCA of Binary Tree.
Print the path of the shortest path from (0,0) to (n-1,m-1) in a unweighted graph/grid.
Tell me about a time you took initiative and delivered impact
Tell me about a time you had a difficult relationship with someone and how did you overcome it.
Tell me about a time you recieved negative feedback
Tell me about a time when your plan derailed due to factors not in your hands and how did you handle it.
Design an ACM ICPC kinda competition platform with a real time leaderboard
Preparation Tips
- Did top 200 questions from meta's most recently asked questions list.
- HelloInterview for System Design (Used the AI practice interview feature)
- Made sure to note down possible situations from work as they happened that can be used for the behavioral rounds.
- REVISE THE LC QUESTIONS
- Make sure the practice questions in the format in which you will deliver them. Talk about testcases, multiple approaches, pros and cons of those approaches, most optimal approach (its okay to learn the quickselect approach for finding the kth largest element 😂), dry run the code, time and space complexity.
- Scoured the internet for E4 experiences.
Summary
I recently went through the Meta E5/E6 interview process in London, covering screening, coding, product architecture, and behavioral rounds, and was ultimately approved for an E5 role. Although I had hoped for E6, I believe my performance in the system design round might have contributed to the E5 outcome.
Full Experience
Hi everyone,
I recently received feedback on my Meta interview and wanted to give back to the community, since the posts here were really helpful during my preparation.
Screening
- LCA
- Basic calculator varient
I got feedback in about an hour and was moved on to the loop round.
Loop
Coding 1
- Balanced parentheses
- All paths in a grid from top left to bottom right (using BFS), with a follow-up about keys and locks-here, I just needed to explain my approach, not code it.
Coding 2
- Minimum window substring
- Simplify path
Product Architecture
- Online auction
Behavioral
- Proudest project
- Difficult working relationship
- Area for development
I was approved for E5 and am now in the team match stage. I was hoping for E6, but I may not have demonstrated enough signals during the system design round.
Interview Questions (10)
I was presented with a problem related to finding the Lowest Common Ancestor (LCA).
I was asked to solve a problem involving Balanced Parentheses.
The problem involved finding all paths in a grid from the top-left to the bottom-right using BFS, with a follow-up question concerning keys and locks where only an approach explanation was required.
I was tasked with solving the Minimum Window Substring problem.
The Product Architecture round involved designing an online auction system.
I was asked to describe my proudest project.
I had to discuss a difficult working relationship I've experienced.
I was asked to identify an area for my own development.
Preparation Tips
Suggestions:
The coding rounds are pretty straightforward (usually a clear accept/reject) and often feature problems similar to tagged LeetCode questions. However, the behavioral and system design rounds are the most important at Meta. You should prepare thoroughly for these, as it depends heavily on how well you communicate your solutions and stories to the interviewer also how well interviewer is able to understand what you are communicating.
Summary
I had a phone screen interview with Meta in the US, where I was asked two specific data structure and algorithm questions. I successfully passed this round.
Full Experience
I recently had my phone screen interview with Meta. The interview focused on two coding challenges. I was able to address both problems effectively, and I received a positive outcome for this round.
Interview Questions (2)
Summary
I successfully completed my Meta E4 product screen and onsite interviews a few months ago, and I am sharing the specific questions I encountered during the process.
Full Experience
Giving back to the community. Done a few months ago
Screen: i18n + range sum bst
Coding 1: minimum window substring + max diameter
Coding 2: sum root to leaf + dot product (array method)
Product Arch: ticket booking with focus on API/DB schema
Passed. US location
Interview Questions (7)
This question likely involved concepts related to internationalization (i18n), potentially covering system design aspects, API considerations, or implementation details for supporting multiple languages and regions within a software product. Given it was a product screen, it might have involved discussions around product implications or technical solutions for i18n.
Given the root node of a binary search tree and two integers low and high, return the sum of all nodes' values that are in the inclusive range [low, high].
Given two strings s and t of lengths m and n respectively, return the minimum window substring of s such that every character in t (including duplicates) is included in the window. If there is no such substring, return the empty string "".
Given the root of a binary tree, return the length of the diameter of the tree. The diameter of a binary tree is the length of the longest path between any two nodes in a tree. This path may or may not pass through the root.
You are given the root of a binary tree where each node has a value 0 to 9. Each root-to-leaf path represents a number. For example, if the path is 1->2->3, the number is 123. Return the total sum of all root-to-leaf numbers.
Implement a function to calculate the dot product of two arrays or vectors. The 'array method' specification suggests a direct implementation rather than focusing on sparse matrix optimizations, though that could have been an extension.
Design a system for booking tickets, with a primary focus on defining the API endpoints and the database schema. This typically involves considerations for user management, event/ticket management, the booking process, payment integration, and handling concurrency.
Summary
I experienced a coding round for a Meta E5 SWE Infra position in the US, which included two specific LeetCode problems.
Full Experience
Interview Questions (2)
Summary
I'm sharing the interview questions encountered during my Meta interview process, across multiple rounds.
Full Experience
Time to give back to the community.
R1 Q1: https://leetcode.com/problems/buildings-with-an-ocean-view
R1 Q2: variant of https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string
R2 Q1: https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree-iii
R2 Q2: https://leetcode.com/problems/random-pick-with-weight
Interview Questions (4)
Summary
I had a phone screen with Meta in Bangalore where I was asked two data structure and algorithm questions. One involved counting occurrences of 1s in a given range using an API, and the other was about finding the most frequent number in a set of overlapping ranges.
Full Experience
Phone Screen Round
Asked 2 questions
- Given a range of 0 and 1, count the number of occurrences of 1 within the specified range. There will be an API where you pass the start and end values, and it returns the total count of 1's.
- Given a range of numbers, find the number that occurs most frequently within the ranges. For example, with the input [[1, 4], [2, 5], [3, 6], [6, 9]], the output would be 3.
Interview Questions (2)
Given a range of 0 and 1, count the number of occurrences of 1 within the specified range. There will be an API where you pass the start and end values, and it returns the total count of 1's.
Given a range of numbers, find the number that occurs most frequently within the ranges. For example, with the input [[1, 4], [2, 5], [3, 6], [6, 9]], the output would be 3.
Summary
I underwent a full-loop interview at Meta for an E4 level position. While I performed well in the behavioral and system design rounds, I struggled to deliver bug-free code for the data structure and algorithm problems due to nerves.
Full Experience
Hi all! Just following up on my full loop experience with Meta and giving back to the community as much as I can BASED ON MY EXPERIENCE. I will skip the behavioral round details as it's fairly standard! Now to the meat of it..
C1Q1: 346. Moving average from data stream Instead of implementing the "next()" function, I just add to an array of the sums by the time I get to the last element of the array, and return the resulting array. Ex: Given a list [1,2,3,4,5] and a window size = 3, my resulting output should be [2.0, 3.0, 4.0]
C1Q2: 215. Kth largest element in an array (no variant) I was under the impression the time complexity for a MaxHeap here would be O(nlogk) however the interviewer was convinced it was O(nlogn). Not sure who is right because when I use leetcode's analysis tool it tells me O(nlogk).
C2Q1: 921. Minimum add to make valid paranthesis (no variant, nothing more than paranthesis on the input string)
- Random pick with weight (variant. At least, I assume this is a variant because it seemed very similar to the original question) Given a list of cities and their respective populations in a map (ex: {NY: 7M, LA: 5M, BJ: 10M}) create a function that randomly picks a city based on the probability that a random person would be from that city (so for NY it would be 5/22, because it has 5M out of the total 22M population in the map).
System Design: Design a scoreboard for some online (or mobile) game that shows the Top 10 rankings of my friends, and globally. It should also show the top rankings of all my friends and all globally (not just top 10, I should ask to better define how many I am willing to show, how to show it, etc.)
I believe I did well on everything, except for the coding interviews. For all of the questions, I talked through the sub-optimal or "naive" solution, talked through and agreed upon the optimal solution with my interviewers, but ultimately could not code a "bugless" final solution, even though I've practiced these questions ad infinitum. Nerves just got the better of me!
Interview Questions (5)
- Random pick with weight (variant. At least, I assume this is a variant because it seemed very similar to the original question). Given a list of cities and their respective populations in a map (ex: {NY: 7M, LA: 5M, BJ: 10M}) create a function that randomly picks a city based on the probability that a random person would be from that city (so for NY it would be 5/22, because it has 5M out of the total 22M population in the map).
Design a scoreboard for some online (or mobile) game that shows the Top 10 rankings of my friends, and globally. It should also show the top rankings of all my friends and all globally (not just top 10, I should ask to better define how many I am willing to show, how to show it, etc.)
Summary
I had a screening interview with Meta today. I was asked one behavioral question and two coding questions, one being a variant of Random Pick with Weight and the other Lowest Common Ancestor of a Binary Tree. I'm unsure about the outcome as I ran out of time on one coding question.
Full Experience
Screening interview happened today, not sure if I stand a chance.
Behavioral question
- Explain in depth a conflict situation while collaborating with another team, steps taken and conclusion.
Coding questions
- Variant of https://leetcode.com/problems/random-pick-with-weight - This one I coded fine.
- As it is https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/ - This one I explained everythng and ran out of time finishing the recursion exit conditions (missed 2 out of 4).
Hope this helps!
Interview Questions (3)
Explain in depth a conflict situation while collaborating with another team, steps taken and conclusion.
A variant of the problem described at https://leetcode.com/problems/random-pick-with-weight.
The problem as described at https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/.
Summary
I recently went through a phone screen for Meta, which included behavioral questions and two coding challenges: one on stack operations for directory changes and another on string modification to form a palindrome.
Full Experience
Sharing My Meta Phone Screen Experience with the Community I recently went through a phone screen for Meta and wanted to share my experience:
Behavioral Questions: The interview started with a 20-minute discussion focused on behavioral questions. Coding 1: I was asked to work with stack operations, specifically handling cwd (current working directory) and cd (change directory). You can practice similar problems on LeetCode's https://leetcode.com/problems/simplify-path/ Coding 2: The final problem involved modifying a string to create a palindrome by deleting just one character. A similar problem on LeetCode is "Can Make Palindrome from Substring" or "Minimum Insertion Steps to Make a String Palindrome". https://leetcode.com/problems/valid-palindrome-ii/description/
Hope this helps others preparing for their interviews!
Interview Questions (2)
I was asked to work with stack operations, specifically handling cwd (current working directory) and cd (change directory). You can practice similar problems on LeetCode's https://leetcode.com/problems/simplify-path/
The final problem involved modifying a string to create a palindrome by deleting just one character. A similar problem on LeetCode is "Can Make Palindrome from Substring" or "Minimum Insertion Steps to Make a String Palindrome". https://leetcode.com/problems/valid-palindrome-ii/description/
Summary
I cleared a Meta phone screen where I solved two data structure and algorithm problems, including implementing a custom data structure and 'Copy List with Random Pointer'.
Full Experience
Hello,
Cleared Meta phone screen. Giving back to the community.
Q1. Implement a class for interface DataStructure<T> with 4 methods -
- contains(T t)
- add(T t)
- remove(T t)
- listItemsInOrderOfInsertion()
All operations should be as efficient as possible.
Suggested the optimal solution would be to use a Map and Doubly linked list (similar to LRU Cache) but thought might take longer to code it so initially wrote normal list based container. Interviewer wanted optimal solution so ended up implementing the doubly linked list solution. Discussed TC and SC and dry ran some test cases.
Q2. OG Copy list with random pointer - https://leetcode.com/problems/copy-list-with-random-pointer. Implemented One pass solution to copy next and random pointer using Map<existingNode, cloneNode>. Dry ran test cases and found small bug missing null check in createCloneNode() method.
Recruiter reached out next day with positive feedback.
Interview Questions (2)
Implement a class for interface DataStructure<T> with 4 methods -
- contains(T t)
- add(T t)
- remove(T t)
- listItemsInOrderOfInsertion()
All operations should be as efficient as possible.
Summary
I had an E6 loop at Meta, comprising two coding rounds, two system design rounds (Ticketmaster and Ad impressions aggregator), and a behavioral round. I performed well in coding and behavioral, but felt time management in system design could be improved. I am currently awaiting the results and feeling nervous.
Full Experience
I just had a loop at meta for e6 role. YOE - 9.5 1st coding round: optimally completed the 1st Q. Completed the 2nd Q as well but not optimal 2nd coding round: both questions done optimally though 2nd Q after some brainstorming. System design round 1 (Ticketmaster): Gave the HLD and the deep dive to handle locking via redis and hold period. Basic strategies for handling scale in last 2 mins as time went by quickly. Interviewer asked couple of questions only at the end which I answered. But i think time management was not perfect. I missed some points which i wanted to make. Behavioural: Gave perfect anecdotes at senior and staff level with great impact and scale. I think this went great. System design round 2 (Ad impressions aggregator): Gave the HLD with 2 deep dives into fault tolerance, low latency and scaling using Kafka.
Awaiting for the result. I am really nervous.
Interview Questions (2)
Design a system like Ticketmaster. I provided a High-Level Design (HLD) and deep dived into handling locking via Redis and managing a hold period. I also discussed basic strategies for handling scale.
Design an Ad Impressions Aggregator system. I provided a High-Level Design (HLD) with two deep dives focusing on fault tolerance, low latency, and scaling using Kafka.
Summary
I solved all the coding questions, and the behavioral and product design rounds went well, but I was ultimately rejected without specific feedback from the recruiter. The difficulty with one particular coding question, even though I solved it with hints, might have contributed to the rejection.
Full Experience
C2Q2, the question threw me off, I have never solved it before. Interviewer tried helping me with hints, I was able to code the solution. I have verified with couple of test cases, interviwer also verified the solution with a test case and confimred that the code works. At the end interviewer told me to comment on the TC, SC also told that I was over the time limit by 2 minutes. I expected a positive outcome as I have solved all the questions and behav, design also went good. But I got rejected. C2Q2 may be the reason or leetcode design, or even behav, who knows. Recruiter didn't give any feedback. Back to the grind :)
Interview Questions (3)
Given a string s of '(' , ')' and lowercase English characters. Your task is to remove the minimum number of parentheses ( '(' or ')', in any positions ) so that the resulting parentheses string is valid and return any valid string. A string s is valid if: It is an empty string, contains only lowercase characters, or (A) or AB where A and B are valid strings. Follow up: String can have all kinds of parentheses (e.g., {}, [], ()).
You are given a nested list of integers nestedList. Each element is either an integer or a list whose elements may also be integers or other lists. Each integer has one depth. The depth of an integer is how many lists it is inside of. For example, the integer 3 in [1,[2,[3]]] has depth 3. Return the sum of all integers in nestedList weighted by their depth.
Summary
I had a phone screen interview at Meta for a frontend role, where I was asked to implement two JavaScript functions from scratch: Memoize and Classnames.
Full Experience
Both question where to write JS functions from stratch:
-
Write Memoize function: https://www.greatfrontend.com/questions/javascript/memoize
-
Write Classnames function: https://www.greatfrontend.com/questions/javascript/classnames
Interview Questions (2)
Summary
My interview experience for an Infra E4 role at Meta included a phone screen with two algorithm questions and an onsite round featuring five technical problems, including both data structures & algorithms and a system design challenge.
Full Experience
Phone screen
- 3Sum Closest
- Continuous Subarrays, variant (maybe?) with length of subarray must be at least 3 and absolute value of the difference between any pair of numbers is in [0, 1].
Onsite
- Diameter of Binary Tree
- Binary Tree Vertical Order Traversal
- Pow(x, n)
- Group Shifted Strings
- Design Ad Click Aggregator
Interview Questions (7)
Design Ad Click Aggregator
Summary
I had a recent phone screen interview with Meta where I solved one coding problem perfectly and struggled with another.
Full Experience
Sharing my recent phone screen experience. 1) Min add to make parenthethis valis: No variant. https://leetcode.com/problems/minimum-add-to-make-parentheses-valid/description/. This round was perfect. Coded and did a dry run with multiple examples. 2) Merge 3 sorted arrays. The resulted array should not have duplicates. Got confused and messed this up. Did the coding but could not finish in time :( Good luck everyone who is preparing for Meta!
Interview Questions (2)
Merge three given sorted arrays into a single resultant array. The key constraint is that the merged array should not contain any duplicate elements.
Summary
I recently cleared my Meta SWE E4 phone screen and received an invitation for an onsite interview.
Full Experience
Sharing my recent Meta SWE E4 phone screen experience - cleared it and got invited for onsite!
Here are the questions that were asked:
Q1) - https://leetcode.com/problems/buildings-with-an-ocean-view/ No variant, standard version.
Interviewer mentioned that right-to-left traversal was allowed, so I gave that approach.
Had a small syntax issue in my for loop, which the interviewer pointed out, fixed it and dry ran with test cases.
Interviewer asked if the code could be made cleaner, it was already time and space optimized, and I couldn’t think of much more on the spot. (Maybe could have mentioned the monotonic stack approach, but we moved on.)
Q2) https://leetcode.com/problems/diagonal-traverse/description/ No variant, standard version.
I started with the simulation approach, briefly mentioned the diagonal index relationship but didn’t explore it too much.
Honestly, was a little confused on the simulation, interviewer then changed the question to a simpler "diagonal in one direction" version.
Interviewer gave a small nudge about the row/col relationship, which I elaborated on.
Coded the simpler version using a hashmap and dry ran it, also verbally explained how it would work for reverse diagonals.
Interviewer asked about how to optimize further, I was still thinking about the original simulation idea, but at the last second I mentioned using an array instead of a hashmap.
Good luck to everyone preparing!
Interview Questions (2)
Summary
I interviewed for an E4 role at Meta, going through a phone screen and virtual onsite that included coding, system design, and behavioral rounds. Unfortunately, I did not receive an offer, attributing it to insufficient preparation for problem variants.
Full Experience
Phone screen:
- Pivot number in an array, sum left = sum right
- Next permutation
Virtual onsite:
Coding 1:
- Lowest common ancestor in a binary tree - space optimize
- Minimum remove for valid parentheses - space optimize
Coding 2:
- Merge intervals with variant [2 separate sorted lists, combine them into one]
- Matrix path from top left to bottom right, return path
Product Architecture:
- Design Leetcode - Small scale Meta internal
Behavioral:
- Conflict resolution
- Architectural/code design decision you took and later regretted
- Gone above and beyond on some project/feature work
Location: USA
[Edit]: Thanks @CodingWithMinmer. After 2 weeks got the reply that I didn't make it. In a way, I was expecting this. I didn't prepare for the Variants. I got to know about the variants too late in my preparation.
Interview Questions (10)
Given an array of integers, find the pivot index where the sum of the numbers to the left of the index is equal to the sum of the numbers to the right of the index.
Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers.
Find the lowest common ancestor (LCA) of two given nodes in a binary tree. The problem had a specific requirement for space optimization.
Given a string s of '(' , ')' and lowercase English characters. Your task is to remove the minimum number of parentheses ( '(' or ')', in any positions ) so that the resulting parentheses string is valid and return any valid string. The problem had a specific requirement for space optimization.
Given two separate lists of sorted, non-overlapping intervals, merge all intervals from both lists into a single list of sorted, non-overlapping intervals.
Given a matrix, find a path from the top-left cell to the bottom-right cell and return the sequence of cells in the path.
Design a system similar to LeetCode, tailored for small-scale internal use at Meta. This would involve considerations for problem storage, submission handling, test case execution, user management, etc.
Describe a situation where you had a conflict with a coworker, manager, or project stakeholder, and how you resolved it.
Discuss an architectural or code design decision you made that you later came to regret, explaining why it was regretted and what you learned from it.
Share an example where you went above and beyond your standard responsibilities on a project or feature work.
Preparation Tips
I realized I didn't prepare adequately for problem variants, which I encountered late in my preparation.
Summary
I underwent an additional screen for a SWE ML E4 position at Meta in London. I was asked two specific LeetCode problems: a Meta variant of Subarray Sum Equals K and Subsets. I successfully solved both, despite Subsets being a new problem for me.
Full Experience
I was asked to go through an additional screen after my last one (I'm guessing I didn't do a good job communicating alongside coding then):
Q1. the typical Meta variant of #560. Subarray Sum Equals K, covered by @CodingWithMinmer here
Q2. #78. Subsets
It was my first time attempting Q2 but miraculously I was able to decipher the logic, code it up, successfully dry run, as well as accurately contextualize the complexities on the fly. I hope I don't come across any more unseen questions in the on-site rounds though. 🤞🏽
Interview Questions (2)
Summary
I had a phone screen follow-up at Meta, which involved two data structures and algorithms questions.
Full Experience
- Given a sorted array and an int k, return the index of first element greater than k.
- given a binary tree imagine yourself standing on left of tree and output a list of nodes that you see from bottom to top, then standing on right hand side of tree output the list of nodes you see from top to bottom
Interview Questions (2)
Given a sorted array and an integer k, return the index of the first element greater than k.
Given a binary tree, imagine yourself standing on the left side of the tree and output a list of nodes that you see from bottom to top. Then, standing on the right-hand side of the tree, output the list of nodes you see from top to bottom.
Summary
I had a phone screen with Meta where I was asked two coding problems: an adaptation of Merge K Sorted Lists and Clone Graph. I successfully solved both problems and am awaiting the results.
Full Experience
YOE - 5+
Location - US
Alright time to give back to the community !!
I was asked 2 problems
- Merge K sorted Lists: Similar to this but just had lists(not linked list) as input (
List<List<Integer>>)
- Aim if the problem was to implement a getNext() function that will give the next element in sorted order in all lists.
- Eventual output of all the calls to getNext() will be a sorted list including all the elements from all the list.
- https://leetcode.com/problems/merge-k-sorted-lists/description/
- Clone graph
- https://leetcode.com/problems/clone-graph/
Was able to solve these problems. Looking forward to the result.
PS: Meta does not need you to run the code. So don't worry too much about the syntax. Make sure logic is solid.
Interview Questions (2)
The problem was similar to Merge K Sorted Lists but with List<List<Integer>> as input instead of linked lists.
The aim was to implement a getNext() function that returns the next element in sorted order across all lists.
The eventual output of all calls to getNext() would be a sorted list containing all elements from all input lists.
Summary
I recently completed my loop interview with Meta for a Bangalore location, covering coding, ML design, and behavioral questions. While I was ultimately rejected, I am sharing the process and specific questions to help others prepare.
Full Experience
I have recently completed my loop interview with Meta for Banglore location. I am sharing below the interview process and questions (if it helps).
Interview Process:
- Phone Screen: Leetcode Tagged Questions (1 Medium , 1 Easy)
- Loop ML Interview
- 2 X Coding Interview (2 Questions each - 2XMedium)
- 1 X ML Design
- 1 X Behavioural
Interview Questions:
Coding Questions (Top-100 Meta Tagged LC Questions):
- 1091: Shortest Path in Binary Matrix (Asked to find the route and not just the size)
- 1762: Buildings With an Ocean View
- 314: Binary Tree Vertical Order Traversal
- 1004: Max Consecutive Ones III
- 215: Kth Largest Element in an Array
PS: This include the questions from Phone screen and Loop Interview. I don't recall the 6th question.
Behavioural Interview
- Recent Project and my role
- What is the area of self-growth (and how this has impacted in past)
- Scenario or tough relationship / conflict at work
- The are some project specific question
ML Design
- Design a System to detect harmful ads (viz. arms selling, etc) and take it down
Interview Questions (9)
Given a binary matrix, find the shortest clear path from the top-left cell to the bottom-right cell. The path must only include cells with value 0, and all adjacent cells in the path must be 8-directionally connected. The problem specifically asked to find the route itself, not just the length of the shortest path.
You are given an array heights of positive integers, where heights[i] represents the height of the i-th building. You want to find all the buildings that have an ocean view. A building has an ocean view if all the buildings to its right are strictly shorter. Return a list of the indices of buildings that have an ocean view, sorted in increasing order.
Describe a recent project you worked on and elaborate on your specific contributions and responsibilities within that project.
Identify an area where you have focused on self-growth and explain how developing in this area has impacted your past work or experiences.
Describe a scenario where you faced a tough relationship or conflict with a colleague or team member at work, and how you handled it.
Design an end-to-end system capable of detecting harmful advertisements (e.g., those selling arms) and subsequently taking them down. Discuss aspects such as data ingestion, feature engineering, model selection, evaluation, deployment, and monitoring.
Preparation Tips
Takeaway and Suggestions:
- Instead of asking folks for referral, directly apply into their website. Its highly likely you'll hear back
- I don't have good feeling of Meta recruiters, I need to follow-up multiple times before they share the application update
- The Meta gives very less time for interview preparation. I was given 2 weeks for Phone Screen and 2.5 weeks for ML-Loop. I feel I fall short of time to practice for ML Design and Behavioural.
- The behavioral questions will be there to judge some Meta values. Its not just important to keep the stories but being able to narrate well when different questions being asked. Prepare well.
- For ML Design, the question is very specific (similar thing happen with me at Google). I studied typical question the designing recommendation system and all but question is simple and narrowed down. The expectation is very high to cover things in quite a lot detail and touch all the aspects of Model Development , Data / Feature Engineering (Data Sampling and imbalance set is very import), Model Evaluation. Prepare well with whiteboard and try giving 1-2 mock with and EM or Staff MLE/Applied-Scientist to prepare well.
Summary
I recently had a phone screen round for Meta in the US, where I was asked two algorithmic questions: a random city generator based on population probability and a string matching problem involving alphanumeric abbreviations.
Full Experience
I had a phone screen round recently for Meta. Below are the 2 questions asked:
- Probability problem - Random city generator with a map input and output a city based on its population divided by the sum of all cities. Map will have city name and its population.
- String matching problem - given 2 strings, one being alphaneumeric abbreviation and other being bigger string. return boolean if bigger string is satisfies the pattern of smaller string as its abbreviation. For ex. string a = "i18n" b = "internationalization", a = "8" b = "Facebook", a = "a2b3c" c = "aaabbbbc"
Interview Questions (2)
Probability problem - Random city generator with a map input and output a city based on its population divided by the sum of all cities. Map will have city name and its population.
String matching problem - given 2 strings, one being alphaneumeric abbreviation and other being bigger string. return boolean if bigger string is satisfies the pattern of smaller string as its abbreviation. For ex. string a = "i18n" b = "internationalization", a = "8" b = "Facebook", a = "a2b3c" c = "aaabbbbc"
Summary
I had an interview at Meta in London for a SWE, ML E4 role where I was asked two specific LeetCode problems: Add Strings and Least Common Ancestor III.
Full Experience
Lucked out, no variations. Although, the prep to end up getting these questions was rather overkill, I nevertheless want to shout-out @CodingWithMinMer for the work they've done in assisting others (see, for example).
Interview Questions (2)
Preparation Tips
Although, the prep to end up getting these questions was rather overkill, I nevertheless want to shout-out @CodingWithMinMer for the work they've done in assisting others (see, for example).
Summary
I went through the Meta full loop interview process, which included a phone screen, two coding rounds, a system design round, and a behavioral round.
Full Experience
Phone Screen:
- Right side of bt (recursion)
- Minimum remove to make valid paranthesis (don't use stack)
- Find element in rotated sorted array
Coding Round 1:
- Simplify Path (variant also given current working directory)
- Vertical order traversal of bt
Coding Round 2:
- Basic calculator (don't use stack)
- Sum root to leaf of bt
System Design: Design chat application
Behavioral : General questions (got nervous in this round :_))
Interview Questions (8)
Given the root of a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom. The problem suggested using recursion.
Given a string s of '(' , ')' and lowercase English characters. Your task is to remove the minimum number of parentheses ( '(' or ')') so that the resulting parentheses string is valid. The problem specifically asked not to use a stack for the solution.
Search for a target value in a rotated sorted array.
Given a string path, which is an absolute path (starting with a slash '/') to a file or directory in a Unix-style file system, convert it to the simplified canonical path. A variant was given involving the current working directory.
Given the root of a binary tree, return the vertical order traversal of its nodes' values. (i.e., from top to bottom, column by column).
Implement a basic calculator to evaluate a simple expression string. The problem explicitly stated not to use a stack for the solution.
Given a binary tree where each node contains a digit from 0-9, each root-to-leaf path represents a number. Return the total sum of all root-to-leaf numbers.
Design a scalable chat application.
Summary
I completed a full-loop interview at Meta for a SWE Infra E4 role, which included a phone screen, two coding, two system design, and one behavioral round. I detailed the specific questions asked in each round, along with my approaches and follow-up discussions, and am currently awaiting results.
Full Experience
Completed the full loop at Meta today.
FYI, I was scheduled 5 total interviews from the start (1 behavioral, 2 Coding, 2 System Design)
Phone Screen
- 347. Top K Frequent Elements - No variations. Solved with bucket sort.
- 207. Course Schedule - Phrased as "Software Packages Install Order"
Behavioral
Typical behavioral questions. What project are you most proud of? Tell me about a time you had a conflict with a coworker? You mentioned you are interested in X topic, what are some experiences you have with that? Interviewer asked tons of questions, felt like a conversation.
System Design 1
Design Netflix. Interviewer gave very weird vibes throughout the whole interview. Didn't really say much other than "what tradeoffs", "I don't understand" , "are there any other considerations you wish to talk about?" . Overall design was heavily based off Youtube design from Hello Interview. I think my design was solid, could have had better communication with the interviewer. Round I am most unsure about.
Coding 1
- 215. Kth Largest Element - No variant. Used heap solution.
- 543. Diameter of Binary Tree - No variant. Had to count # nodes in the diameter rather than edges as in the LC problem. Solved with DFS.
Coding 2
- 129. Sum Root to Leaf Numbers - No variant. I wanted to solve it with Morris Traversal, but interviewer made me use DFS instead. Some followups about how "0" would be handled (no change needed) as well as "What if result and/or current number is too big to fit into any size integer?" . Gave some verbal explanation of tracking values using a list. Was not asked to code this up.
- 708. Insert Into a Sorted Circular Linked List - No variant. Had to return pointer to newly inserted node. Solved with two pointer approach. Interviewer asked lot of followups about edge cases and how solution would handle them.
System Design 2
Design a Leaderboard...? Gaming platform with user scores. Users can see global leaderboard, leaderboard of friends, and their position in leaderboard as well as 10 ppl above and below them. Solved using redis sorted sets and typical system design stuff. Interviewer had a reverse shadow so I think this round didn't count, but not sure.
Interview Questions (9)
The problem was phrased as "Software Packages Install Order". The core problem is equivalent to LeetCode 207. Course Schedule, where you are given a total number of courses you have to take, labeled from 0 to numCourses - 1, and an array of prerequisites where prerequisites[i] = [ai, bi] indicates that you must take course bi first if you want to take course ai. Return true if you can finish all courses, otherwise false. The full problem description can be found at the provided LeetCode link.
Typical behavioral questions were asked, including: "What project are you most proud of?", "Tell me about a time you had a conflict with a coworker?", and "You mentioned you are interested in X topic, what are some experiences you have with that?". The interview felt conversational.
Design a system like Netflix. The interviewer focused on tradeoffs and clarifications ("what tradeoffs", "I don't understand", "are there any other considerations you wish to talk about?").
The problem was a variation of LeetCode 543. Diameter of Binary Tree. Instead of counting the number of edges in the diameter, I had to count the number of nodes. The diameter of a binary tree is the length of the longest path between any two nodes in a tree. This path may or may not pass through the root. The full problem description for the original problem can be found at the provided LeetCode link.
Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number. Find the total sum of all root-to-leaf numbers. No variant was mentioned for the core problem. Follow-up questions included "how 0 would be handled" (no change needed) and "What if result and/or current number is too big to fit into any size integer?". The problem description can be found at the provided LeetCode link.
Given a reference to a node in a circularly sorted linked list, insert a new element insertVal into the list such that it remains a circularly sorted list. The new node should be inserted such that the list remains sorted. If there are multiple valid places to insert, any of them is fine. We need to return the pointer to the newly inserted node. No variant was mentioned. The interviewer asked a lot of follow-ups about edge cases and how the solution would handle them. The problem description can be found at the provided LeetCode link.
Design a leaderboard for a gaming platform with user scores. Users should be able to see a global leaderboard, a leaderboard of their friends, and their own position in the leaderboard along with 10 people above and below them.
Preparation Tips
Studied using Meta tagged questions on Leetcode, Coding with Minmer guides, HelloInterview, and Alex Wu System design.
Summary
I had my first ever phone screen with Meta, where I was rejected after solving one coding question and struggling with a follow-up. I did not receive any specific feedback for improvement.
Full Experience
Q1: 1570 https://leetcode.com/problems/dot-product-of-two-sparse-vectors as is Solved by condensing vectors into [idx, val], then two pointers
Q2: Follow Up - what if vectors are not sparse and instead have blocks of repeated numbers like [5, 5, 5, 5, 2, 2] Stumbled and could not figure it out, eventually with hints made it to a similar structure of [val, frequency] but never wrote any code. In hindsight the solution seems easy but nerves, pressure, time really factor in.
Was my first ever phone screen so at the end I asked the interviewer for feedback around how I could improve for future screens, was told they are not allowed to disclose that. Recruiter said the same thing afterwards. Kind of sucks that they don't provide any direction around where to focus your future prep effots.
Interview Questions (2)
Follow Up - what if vectors are not sparse and instead have blocks of repeated numbers like [5, 5, 5, 5, 2, 2]
Summary
I experienced a phone screening with Meta, where I was presented with two variant LeetCode problems: Basic Calculator II and Valid Parentheses.
Full Experience
Q1. https://leetcode.com/problems/basic-calculator-ii/description/ (variant) Q2. https://leetcode.com/problems/valid-parentheses/description/ (variant)
That's it!
EDIT: They were variants but nothing crazy
Summary
I had a phone screen with Meta where I was asked two coding questions, including a LeetCode problem and a variant of another. Despite my approach, I was rejected a few days later.
Full Experience
I was asked two coding questions during my phone screen.
One was a straightforward problem, and the other was a variant that caught me off guard. I tried a two-pass DFS approach for the second question but couldn't get it working in one pass. In hindsight, BFS with queue length for level traversal would have been a better approach for both left and right side views.
I got rejected a few days later.
The role was not for a specific location, but the recruiter mentioned current openings are mainly in Menlo Park and Seattle.
Interview Questions (2)
Refer to the problem description at the provided LeetCode link: https://leetcode.com/problems/minimum-remove-to-make-valid-parentheses/description/
Refer to the problem description at the provided LeetCode link: https://leetcode.com/problems/binary-tree-right-side-view/description/. The variant specifically asked for both left and right side views.
Summary
I went through a Meta interview process, detailing my friend's experience which included several rounds of coding, system design, and behavioral questions. Despite receiving positive feedback across all rounds, I was not extended an offer, which I believe was due to my limited 1.5-2 years of experience.
Full Experience
My friend's experience:
Screening:
- aTOI: https://leetcode.com/problems/string-to-integer-atoi/description/ Please note you have to come up with integer overflow edge case yourself
- Left and right view of binary tree (thanks @Minmer!!!)
1st Onsite:
- This was not a tagged question - https://leetcode.com/problems/strobogrammatic-number-ii/
- Making a large island Interviewer praised for doing both questions (especially 2nd one) within timeframe - looked satisfied
2nd Onsite:
- https://leetcode.com/problems/maximum-swap/description/?envType=company&envId=facebook&favoriteSlug=facebook-all
- https://leetcode.com/problems/group-shifted-strings/description/ Solved both, interviewer seemed satisfied Interviewer was satisfied
Sys design:
- Design Leetcode Interviewer was satisfied - asked follow up questions
Behavioural:
- Standard conflict questions
- What if two imp projects together
Verdict: HR mentioned feedback was positive for all the rounds, although we are not able to find a role/team for you because of your experience.
I asked may i know how can i improve he did not mention anything. I think i have just 1.5-2 YOE that's why.
My tip would be whenever you are preparing for meta, please ensure you are covering all test cases - please make sure you learn edge cases by heart.
Interview Questions (9)
Find the left and right view of a binary tree.
Given a binary matrix, you are allowed to change at most one 0 to 1. Return the size of the largest island in the matrix.
Design the LeetCode platform, including its core functionalities like problem creation, user submission, code execution, and leaderboards.
Standard questions about how I would handle conflicts with team members or stakeholders.
How would I manage a situation where I have two important projects due simultaneously or conflicting priorities?
Preparation Tips
My tip would be whenever you are preparing for meta, please ensure you are covering all test cases - please make sure you learn edge cases by heart.
Summary
I had a phone screen interview at Meta for an E4 Infra role, which included a LeetCode problem and a custom problem about finding the minimum cost for a round trip between two cities with time-sequenced flight costs.
Full Experience
Appeared for Meta E4 Infra phone screen interview this week.
Questions:
- Valid Word Abbreviation
- Written Below:
Plan a round trip between 2 cities with minimum flight cost From departure city to destination city, the fees are stored in array D[] From destination city to departure city, the fees are stored in array R[]
D: [10, 8, 9, 11, 7] R: [8, 8, 10, 7, 9]
The minimum cost will be D[1] + R[3] = 15
EDIT: Yes, lists are time sequenced, according to my interviewer. Meaning, D[0] corresponds to Day #1, then Day[1] corresponds to Day #2, etc. And, the return trip can NOT be taken BEFORE the 1st trip. However, the return trip CAN be taken on the same day as the 1st trip.
Interview Questions (2)
Plan a round trip between two cities with minimum flight cost. From departure city to destination city, fees are stored in array D[]. From destination city to departure city, fees are stored in array R[]. Both D and R arrays are time-sequenced, where D[0] corresponds to Day #1, D[1] to Day #2, etc. The return trip cannot be taken before the first trip, but can be taken on the same day. Example: D: [10, 8, 9, 11, 7], R: [8, 8, 10, 7, 9]. The minimum cost will be D[1] + R[3] = 15.
Summary
I recently completed a full loop interview at Meta for a Product SWE (E4/E5) role and successfully moved to the team matching phase. I was downleveled from E4/E5 largely due to mismanaging time in the Product Architecture round.
Full Experience
Hi All,
Giving back to community. Recently I gave full loop and moved to team matching phase.
Phone screen :
- Merge 3 sorted array
- not on leetcode (but it was LC easy level)
Onsite
Coding - 1
- LC-236
- LC-658
Coding - 2
- LC-766
- LC-199 - with left
Product Architecture
- From top 10 in hellointerview
Behaviour
- Typical questions related to conflict, achievement, growth, etc.
Huge shout-out to CodingWithMinmer for all variations and OG (my most of questions were from the problems he covered).
For design, please manage time efficiently. My interviewer left completly on me in terms of time management and I misjudged it thinking that he's fine covering initial design and could only get 5-10 minutes for deep-dive. So, you are on your own in terms of time management. Got downleveled because of that. Do a mock round please!
YOE : 6 years TC : 160k gbp
Interview Questions (5)
Merge three given sorted arrays into a single sorted array.
Preparation Tips
I utilized CodingWithMinmer for various coding problem variations. For system design, I recommend efficient time management and mock rounds, learning from my experience where misjudging time led to downleveling.
Summary
I had a phone screen and an onsite loop with Meta for a role requiring 2 years of experience. After preparing for about two months, I was ultimately rejected due to my performance in Coding 2 and System Design rounds, but found it a positive learning experience.
Full Experience
2 YOE
Giving back to the community. Recruiter reach out around Jan and scheduled phone interview in end of Feb. I spent about a total of 2 months (1 for phone screening and 1 for on site) to prepare for the interview, around 1 hours before and after my full time job.
Phone Screen:
- Qn 1: 408. Valid Word Abbreviation (No Variant)
- Qn 2: Codebook question, where you are given a hashmap of random code and you can come up with the different permutations of it. I believe it is a variant and I can't find any similar question on LC. Solution proposed: Backtracking.
I could not solve Qn 2 at all but I proposed and coded up a backtracking solution which was close to the ideal solution. Heard back in under 1 hr from the recruiter and was shocked that I was moved on to the next round.
On site:
Behavioural:
Standard behavioural questions, interviewer asked a lot of questions - Why META was asked.
System Design (Product)
Design Leetcode
Follow Hellointerview format and was drilled hard on API design and deep dives on caching. Feedback was negative as I could not answer some of the interviewer's questions such as why redis was chosen and any alternative solution to redis sorted sets.
Coding 1:
- Qn 1: 236. Lowest Common Ancestor of a Binary Tree (No Variant)
- Qn 2: 347. Top K Frequent Elements (No Variant)
Solved both optimally and was asked further questions to provide more testcases and different approachs to the questions (i.e use BFS for Q1 and use heap for Qn 2).
Coding 2:
- Qn 1: Given three Array, find the k element. Proposed helper function to merge two array at one time. Was asked to merge all three array at a go and use heap. I could not come up with a heap solution at all. I was asked to come up with another solution if there is Nth of array instead of 3. Was able to come up with a solution similar to 23. Merge k Sorted Lists. Question is quite similar to this.
- Qn 2: 1004. Max Consecutive Ones III (Variant) The question is similar to the first variant question in this
I had to come up with the solution quickly qn 2 as I have used up too much time trying to solve qn 1.
Outcome:
Rejected 2 days after the onsite interview due to coding 2 and product design round. I was unfortunate to face too many variant questions in the whole interview process but it was overall a positive interview experience. As this is my first time interview with Meta and I have definitely learned a lot from this process. Will definitely try again after 1 year of cooldown.
Interview Questions (8)
Given a hashmap of random codes, generate different permutations of these codes. The candidate believes it's a variant of a problem and proposed a backtracking solution.
Standard behavioral question: Why are you interested in working at Meta?
Design the LeetCode platform, with deep dives on API design and caching. I was drilled hard on API design and deep dives on caching, and asked about choices like Redis and alternative solutions to Redis sorted sets.
Preparation Tips
I spent about a total of 2 months (1 for phone screening and 1 for on site) to prepare for the interview, around 1 hours before and after my full time job.
Huge shoutout to Coding with Miner, your videos are extremely useful in my preparation.
Summary
I successfully passed a Meta E5/E6 phone screen in London, despite making critical mistakes on one of the two coding questions, emphasizing the importance of strong communication and adaptability during the interview process.
Full Experience
- On question one i made a huge mistake, because task was presented without any constraints. So i jumped into the coding taking care of just numbers and letters and Inteviewer quickly presented test case to show me my incompentence. Please, please. Speak with your Interviewer before coding! Verify question, verify constraints, discuss even before presenting approach.. It could cost me rejection. Luckily i responded very quickly and adapted, so in next few minutes i quickly veryfied constrainst and came with good creative test cases. I guess it saved my ass.
- On question two after discussion i quickly came with linear approach, and i think expressed my process very clearly. What is more important i came also with binary search approach, but i didn't repeat my mistake from question one and started dicussing my quick BS implementation. Together with the Interviewer we quickly verified test cases and i realized how tricky is this variant, and probably binary search is not possible and we should fall back to linear approach.
As you see i made a mistakes, and still passed. I assume it's because i kept Interviewer engaged, i responded quickly to the feedback and also was ready to deeply discuss approach, not just a coding. That should be the lesson for us.
Interviewer was extremely professional and very metodic, so it made things much more easy to understand expectations. So i guess i was lucky meeting this Interviewer, he built very positive experience.
Interview Questions (2)
A lighter variant of Valid Number without taking care about exponent. Variant presented here.
Find local minimum, a variant of this LeetCode Find Peak Element. Input can have repeated numbers and minimums are inclusive (>=lm<=). Worth watching this video.
Preparation Tips
Thanks for Minmer&Summer for their fantastic job on YT channel, it's so helpful.
Summary
I interviewed for an E5 position at Meta in London, completing a screening round and an on-site consisting of coding, design, and behavioral rounds, but ultimately received a rejection.
Full Experience
Screening Round
Q1: Given departure and return flight ticket price in two seprate array for each day. Give minimum cost round trip
Q2: Get Max K element in un sorted array
On Site: Coding 1: Q1: find closest element in BST
Q2: product of two sparse array like more zeros then non zero number optimal storage of array then extention of one long and other short array
Coding2: Q1: Left view and then right view of tree in response second question forgot
Design round:
Design Top K songs per user for past 90 days Messed it up big time by having two pointer approach from hellointerview.
Behavioural round:
- project proud of
- conflict handling
- building systenm with unclear requirement
- How you are improving yourself continuosly
- handling conflict in product discussion
- difficult work environment how did you manage.
I can't imagine i messed it up this process.
#Meta #London #interview
Interview Questions (12)
Given departure and return flight ticket price in two separate arrays for each day, find the minimum cost for a round trip.
Get Max K element in un sorted array.
Find the closest element in a Binary Search Tree (BST).
Calculate the product of two sparse arrays (arrays with more zeros than non-zero numbers). Discuss optimal storage for such arrays, and then consider an extension involving one long and one short array.
Return the left view and then the right view of a binary tree.
Design a system to find the top K songs played per user for the past 90 days.
Tell me about a project you're proud of.
Describe a situation where you had to handle a conflict.
Describe a situation where you had to build a system with unclear requirements.
How are you continuously improving yourself?
Describe a situation where you had to handle conflict in a product discussion.
Describe a situation where you managed in a difficult work environment.
Summary
I went through a comprehensive E5 onsite interview loop at Meta in Bangalore, which included a phone screen, two data structures and algorithms rounds, a product architecture design round, and a critical behavioral round.
Full Experience
Phone screen : https://leetcode.com/discuss/post/6560544/meta-e5-phone-screen-passed-by-anonymous-30p2/
Round 1 (DSA)
- Q1: https://leetcode.com/problems/merge-sorted-array/description/
size of first array is n+m, where n is the size of elemetns in first array and m is size of elements in second array - Q2: https://leetcode.com/problems/minimum-remove-to-make-valid-parentheses/description/
I solved both questions within 25 minutes. The interviewer then asked a follow-up question on the second problem.
Round 2 (DSA)
- Q1: https://leetcode.com/problems/palindrome-linked-list/description/
- Q2: https://leetcode.com/problems/kth-missing-positive-number/description/ (I solved this problem two days before my onsite interview as part of LeetCode's daily challenge)
Round 3 (Product Architecture Design)
This round focused on designing a coding platform like leetcode, with major discussions around supporting multiple concurrent competitions.
Round 4 (Behavioral)
This is the most crucial round at Meta. You need to be 100% confident in the stories you present. Avoid fabricating experiences—they can easily detect inconsistencies.
Interview Questions (5)
This round focused on designing a coding platform like leetcode, with major discussions around supporting multiple concurrent competitions.
Preparation Tips
I solved one of the DSA problems (Kth Missing Positive Number) as part of LeetCode's daily challenge two days before my onsite interview.
Summary
I recently interviewed with Meta and encountered a novel experience during a coding interview where new requirements were presented mid-implementation for a problem involving balancing parentheses while preserving the meaning of an arithmetic expression.
Full Experience
I was recently interviewing with Meta and had a novel experience during a coding interview.
The interviewer gave me a relatively straightforward problem, remove parentheses from a string so the remaining parentheses are balanced.
I got about half way through implementing a solution and the interviewer interrupted me to ask what the code I had written so far would do with a particular example input. I did a quick verbal walkthrough of which parentheses it would remove and why and showed the results would be balanced. Then the interviewer said that those results would change the meaning of the string if the non-parentheses characters were considered to be an arithmetic expression, and I needed to keep that meaning.
I'm no stranger to having new requirements added in a coding interview, but I'm used to it coming at the end. The usual process is to set and solve an easy problem, then add a new constraint to make it harder and modify the solution to satisfy the new constrait. This interview with the new constraint coming in the middle was a novel experience for me.
What made it problematic is that the interviewer didn't present it as a new constraint. At no point did he acknowledge that this constraint wasn't present in the original problem or demonstrated by any of the given examples. And he didn't seem interested in seeing me finish solving the original problem. I was a bit flustered, and it took me maybe a minute to figure out what the new constraint really meant. I did end up solving the problem with the new constraint, but I think I gave a bad impression in the middle while I was dealing with the change.
So, anyway, the moral of the story is to be ready for this experience, and don't let it throw you off like it did me.
Interview Questions (1)
The interviewer initially presented a problem: remove parentheses from a string so the remaining parentheses are balanced. Mid-implementation, an additional constraint was introduced: if the non-parentheses characters are considered an arithmetic expression, their meaning must be preserved after removing parentheses.
Summary
I completed my full loop onsite interview for the Meta E4 SDE role in London. Despite one round resulting in a 'Lean Hire', I received 'Hire' and 'Strong Hire' ratings in the other rounds including Phone Screen, System Design, DSA Round 1, and Behavioral, and I am hoping for a positive outcome.
Full Experience
Hey Everyone!
Yesterday, I completed my full loop onsite interview for the Meta E4 (London) role.
Years of Experience: 2.0 years
Phone Screen
Diameter of Binary Tree
Vertical Order Traversal of a Binary Tree
I solved both problems using the optimal approach. Within a couple of hours, I received an email confirming I had passed and was moving forward to the onsite interviews.
Rating: Hire
System Design
Problem: Design an Ad Click Aggregator
I followed the HelloInterview format and discussed topics like:
- Batch processing (using Spark)
- Horizontal scaling
- Handling peak load(API GATEWAY, LB,Rate Limiter)
I struggled a bit with the back-of-the-envelope estimation, especially around DAU, but I still provided a rough estimate.
Rating: Hire
DSA Round 1
Valid Palindrome II + follow-up: Removing k characters
Course Schedule II (solved using Topo Sort)
I completed both questions with the optimal approach and discussed:
- Time & Space Complexity
- Dry runs for given testcase
Rating: Strong Hire
DSA Round 2
This round where I feel something went wrong like interviewer didn’t give the problem statement instead of that he verbally explained the question in very vague manner,I struggled to understand the problem statement anyhow I understand and verify the problem with taking one input output with my own and he confirmed for that I got asked this question intially Input is an integer array, and it should return a local minimum element. Local minimum element is the element from the array that is less or equal to its neighbors
Here's the solution I wrote:
class Solution { public: int findLocalMin(vector<int>& nums) { int n = nums.size(); int left = 0, right = n - 1;while (left < right) { int mid = left + (right - left) / 2; if (nums[mid] > nums[mid + 1]) { left = mid + 1; } else { right = mid; } } return nums[left]; }
};
Dry run the code with my own testcase but interviwer ask do you need any other testcase to check I said it seems fine for me and we moved to second question Merge 3 sorted arrays and remove duplicates.I used a 3 pointer approach and dry run completely and still we have some time left so he asked the follow up for first question
Follow-Up:
the local minimum must be strictly less than its neighbors. I suggested modifying the final condition like this:
if ((left == 0 || nums[left] < nums[left - 1]) &&
(left == n - 1 || nums[left] < nums[left + 1])) {
return nums[left];
}
But the interviewer pointed out this condition wasn’t part of my original solution, and I admitted I had missed this edge case earlier. I was asked to integrate this logic into the binary search loop, but unfortunately, I froze at that point, and time ran out.
Rating: Lean Hire
Behavioral Round
- Conflict resolution
- Proud project
- Areas of improvement
- Adapting to changing requirements
Rating: Hire
What are my chances for an offer?
Despite the “Lean Hire” in one round, the rest of the interviews went well with Hire and Strong Hire ratings, including System Design. I'm hoping for a positive outcome!
Any thoughts or insights from those who’ve been through the process would be appreciated!
Interview Questions (12)
I solved this problem using the optimal approach.
I solved this problem using the optimal approach.
Problem: Design an Ad Click Aggregator.
I followed the HelloInterview format and discussed topics like:
- Batch processing (using Spark)
- Horizontal scaling
- Handling peak load(API GATEWAY, LB,Rate Limiter)
I struggled a bit with the back-of-the-envelope estimation, especially around DAU, but I still provided a rough estimate.
Valid Palindrome II + follow-up: Removing k characters. I completed both questions with the optimal approach and discussed Time & Space Complexity and Dry runs for given testcase.
Course Schedule II (solved using Topo Sort). I completed both questions with the optimal approach and discussed Time & Space Complexity and Dry runs for given testcase.
Input is an integer array, and it should return a local minimum element. A local minimum element is the element from the array that is less or equal to its neighbors.
Merge 3 sorted arrays and remove duplicates.
Follow-Up for the local minimum problem: the local minimum must be strictly less than its neighbors. I was asked to integrate this logic into the binary search loop, but unfortunately, I froze at that point, and time ran out.
Discussed conflict resolution scenarios.
Discussed a project I am proud of.
Discussed areas of improvement.
Discussed adapting to changing requirements.
Summary
I had a screening interview at Meta for an E5 role where I was asked two specific data structures and algorithms questions.
Full Experience
Question 1: Given a list with each entry represnting height of buildings, return the index of the buildings which have ocean view. the ocean is on the right side of the array
Questions 2: Lowest common ancestor of two nodes in a tree where Node class has parent node poiner as well
Interview Questions (2)
Given a list with each entry represnting height of buildings, return the index of the buildings which have ocean view. the ocean is on the right side of the array
Lowest common ancestor of two nodes in a tree where Node class has parent node poiner as well
Summary
I had a phone screen with Meta for an E6 level position. The interview included behavioral questions and two LeetCode-style coding problems.
Full Experience
Interview started with 15 min behavior questions and then leetcode questions
1. Similar to Moving Average From Data Stream. Exact Question is in the variant section of video
2. Similar to Random Pick With Weight. Exact Question is the variant section of video
Interview Questions (2)
The problem is similar to Moving Average From Data Stream. The exact question can be found in the variant section of the provided video.
The problem is similar to Random Pick With Weight. The exact question can be found in the variant section of the provided video.
Summary
I had a phone screen with Meta for an E4 role and received a reject. I successfully solved a standard LeetCode problem, Longest Substring Without Repeating Characters, but ran out of time while attempting a challenging variant of Accounts Merge.
Full Experience
Interviewer was 2-3 mins late
1 mins of greetings and straight to coder pad
Q1 : https://leetcode.com/problems/longest-substring-without-repeating-characters [ No variant]
Solved it within 10-12 mins , gave RT etc , dry run it for a TC, I think I did good here.
Q2: https://leetcode.com/problems/accounts-merge [ Variation ]
Instead of merging accounts you will be given. username : [ emails , .... ]
People with same emails is one person, return a list of usernames
like : [ [ username1, username2 ] , [...] ] where username1 and 2 are same person.
I knew I had to use connected components since I had solved the original problem, but labelling back to the usernames and grouping them was tricky since unfortunately I had not solved the variant before. I figured it out but by the time I could code up the solution time was up , could barely write any code.
Got a reject the next day, Was very disappointed since I had prepared really well , I had done all of the 100-150 meta tagged questions, but I feel time is too less to solve a new problem/ a tricky variant within 15 mins in the interview setting. I guess hard luck will try again. But interviewer was completely robotic no reaction , let me struggle till the end in silence. I tried over-communicating my thought process but that did not help , even though I did come up with the algorithm and if had 5-7 mins more might have coded it up too , all I can do is think about it now, I guess it was not meant to be :/
Interview Questions (2)
Preparation Tips
I had prepared really well, having done all of the 100-150 Meta tagged questions.
Summary
I interviewed for an E5 Senior Software Engineer position at Meta in Bangalore. The full loop consisted of five rounds covering coding, system design, and behavioral questions. Unfortunately, I was rejected due to my performance in the Product Architecture and Behavioral rounds.
Full Experience
I had a comprehensive interview experience for an E5 Senior Software Engineer position at Meta in Bangalore. My current role is Senior Software Engineer at a Tier 2 Retail Firm.
Round 1: Coding
This round involved two coding problems:
- Next Greater Number: A standard problem to find the next greater element.
- Equilibrium Index in O(1) Space: I was asked to find an equilibrium index in an array, ensuring an O(1) space complexity solution.
Round 2: Coding
This round also had multiple parts:
- Moving Average in Every Window of Size k: I first tackled the moving average problem for fixed-size windows.
- Print Summaries for Every Window in an Unlimited Stream: This was an extension of the previous problem, adapted for an iterator-based unlimited stream.
- Clone Graph: A classic graph problem. We had a lot of discussion around corner cases, cycles, and handling other related concerns.
Round 3: Product Architecture
This was a system design round where I was asked to design an Audio Channel System, specifically for versions 2.1 to 5.1. The requirements included identifying all subsystems, ensuring compatibility with multiple operating systems, and supporting platforms like WhatsApp (audio/video), Facebook Live, and Instagram Reels, with considerations for live streaming and similar use cases. I particularly struggled with designing client interfaces like codecs, handling multiple operating systems, and designing hardware interfaces in this round.
Round 4: Pirate Round (Behavioral)
The interviewer focused heavily on my past projects and achievements. Unfortunately, it seemed like my responses didn't fully convince him.
Round 5: Coding
The final coding round presented two more problems:
- Merge Two Arrays with O(1) Space and Linear Time: I was given an example: input arrays
[1, 2, 5, 0, 0, 0]and[3, 4, 6]should result in[1, 2, 3, 4, 5, 6]. - Power Function (a^b) in O(log b) Time with O(1) Space: Implement a power function with specific time and space constraints.
Final Verdict: Rejected
Unfortunately, I didn’t perform well enough in the Product Architecture and Behavioural rounds, leading to a rejection. I now have a one-year cooling period.
Interview Questions (9)
Find the next greater element for each element in an array.
Find an equilibrium index in an array such that the sum of elements at lower indices is equal to the sum of elements at higher indices, doing so in O(1) space complexity.
Calculate the moving average for every window of a given size k.
Given an iterator-based unlimited stream, print summaries for every window.
Clone an undirected graph. The discussion involved various corner cases, cycles, and related concerns.
Design an audio channel system supporting versions 2.1 to 5.1. This involved identifying all subsystems, ensuring compatibility with multiple operating systems, and supporting platforms like WhatsApp (audio/video), Facebook Live, and Instagram Reels, considering live streaming use cases. I specifically struggled with designing client interfaces (codecs), handling multiple operating systems, and designing hardware interfaces.
The interviewer asked a lot of questions about my past projects and achievements, and it seemed like my responses were not fully convincing.
Merge two sorted arrays (one with sufficient buffer at the end) into a single sorted array in O(1) extra space and linear time. Example: [1, 2, 5, 0, 0, 0] and [3, 4, 6] should output [1, 2, 3, 4, 5, 6].
Implement the pow(a, b) function to calculate a raised to the power of b, achieving O(log b) time complexity and O(1) space complexity.
Summary
I interviewed for an E4 SWE-ML position at Meta in Menlo Park, which included a phone screen and a full loop with coding, behavioral, and ML system design rounds. Despite my efforts, I received a rejection email just 15 minutes after my last interview, with vague feedback about strengthening my experience.
Full Experience
My interview process for the E4 SWE-ML role at Meta in Menlo Park began with a phone screen, which consisted of two coding questions completed in 45 minutes. The full loop then followed, comprising two coding rounds, one behavioral round, and one ML System Design round.
During the coding rounds, I encountered 2D matrix problems, specifically variations of the 'Number of Islands' question, a 'Merge sorted intervals' problem, and questions involving 'Binary Tree Maximum Path Sum', and a 'Balanced Parentheses' variation. I focused on techniques like two-pointers, stacks, and queues for BFS. I found the interviewers to be quite rigid, insisting on implementation on their screen, which made it challenging to articulate my optimal approaches, as they didn't always align with their preferred solution methods. This felt somewhat frustrating, especially compared to a smoother experience I had with a mid-west startup.
The behavioral round involved 6-7 questions, which I answered using the STAR method. I felt I had to repeat myself multiple times, as the interviewer, despite having a DS background, seemed to lack managerial experience. My standard questions about product requirements and optimization metrics revealed that the team might not have had particularly interesting work, focusing primarily on writing well-articulated PSCs every six months.
For the ML System Design round, I was asked to design Instagram ranking. I presented a standard High-Level Design (HLD) after spending about 5 minutes on problem formulation and assumptions. I elaborated on features, user and video metadata embeddings, and explained the necessity of offline processing. I proposed a two-tower model for relevance and ranking, and discussed user engagement metrics like NDCG, Recall, and precision at K. Unfortunately, I struggled to fully explain model deployment. Throughout this round, I felt the interviewer showed little interest, forcing me to reiterate my explanations for feature sets and metrics.
Overall, my impression was that the interviewers were unprofessional. I received a rejection email within 15 minutes of my last interview, with the recruiter stating they couldn't provide any feedback and suggested I 'make my experience stronger by taking some classes / work (somewhere better).'
Interview Questions (5)
I was given a 2D matrix problem, specifically focusing on the 'Number of Islands' problem and its variations.
I encountered a coding question involving merging sorted intervals.
One of the coding questions involved finding the maximum path sum in a binary tree.
I was asked a coding problem that was a variation of the balanced parentheses problem.
I was tasked with designing the Instagram ranking system. I started with a standard High-Level Design (HLD) after 5 minutes of problem formulation and assumptions. I then focused on features, user and video metadata embeddings, and explained why we need it to be offline. I proposed a two-tower model for relevance and ranking, and discussed user engagement metrics like NDCG, Recall and precision at K. I could not explain model deployment effectively.
Summary
I successfully navigated Meta's interview process, which included an OA, two technical rounds, and a behavioral round, ultimately leading to an offer for a Software Engineer E3 New Grad position.
Full Experience
My interview process with Meta began after a recruiter reached out to me, and the entire journey felt very streamlined. It kicked off with an Online Assessment on CodeSignal, which consisted of one easy, two medium, and one hard problem.
During Technical Round 1, I was presented with two problems. The first involved converting a Binary Search Tree (BST) into a sorted doubly linked list in place, which I managed to solve. The second problem was a variation of the classic Merge Intervals (LeetCode #56). I found a solution, but it was suboptimal, running in O(N log N) time while the optimal approach would have been O(N). Despite this, the interviewer was quite pleasant.
Technical Round 2 also featured two problems. The first was exactly LeetCode #339, Nested List Weight Sum, which I solved optimally. The second problem was a variation of the Basic Calculator problems, but it focused exclusively on '+' and '*' operators. I achieved optimal time complexity for this problem and, after a follow-up, managed to optimize for both time and space. The interviewer in this round was also very friendly.
The final stage was a Behavioral interview. I found that mastering the STAR method was incredibly useful here. I was asked about my most proud project, a time I disagreed with a design choice and its impact, and how I approached a problem with limited information. The interview concluded with a question about my areas for improvement, which naturally arose from previous discussions.
Overall, I felt the process was seamless, and I was thrilled to receive an offer.
Interview Questions (8)
Convert a Binary Search Tree (BST) into a sorted circular doubly linked list in-place.
A variation of the Merge Intervals problem (LeetCode #56), possibly involving merging two interval lists as seen in the provided LeetCode Discuss link: https://leetcode.com/discuss/interview-question/124616/Merge-two-interval-lists.
A variation of the Basic Calculator problems, specifically involving only '+' and '*' operators. A follow-up asked for optimal time and space complexity.
Describe your most proud project.
Describe a time when you disagreed with a design choice and how it affected the outcome.
Describe a time when you had limited information on a problem and how you proceeded.
What do you feel you lack and can improve upon?
Preparation Tips
For the behavioral round, understanding and applying the STAR method was crucial. I focused on preparing stories that demonstrated my skills and experiences in various scenarios, such as my most proud project, handling disagreements, and navigating problems with incomplete information. While specific LeetCode tags were mentioned for technical questions, I mainly relied on my general LeetCode practice and problem-solving skills.
Summary
I successfully navigated a rigorous E4 interview process at Meta in the USA, which initially included five rounds and later extended to seven. Despite initial skepticism about a system design round, I ultimately received an offer for an E4 role after a follow-up interview and team matching.
Full Experience
I completed my full-loop E4 interviews at Meta in the USA. Initially, there were five rounds after a phone screen: two coding, two system design, and one behavioral round.
Coding Round 1
- Simplify Path
- Best Time to Buy and Sell Stock
No variants were asked for these problems.
Coding Round 2
- Merge Intervals
- Binary Tree Right Side View
Again, no variants were asked.
System Design Round 1
This round involved designing a system similar to Instagram, covering standard requirements.
System Design Round 2
I was tasked with designing a price notification system, similar to camelcamelcamel. The interviewer was quite particular about requirements, leading to a significant discussion at the start. We debated requirements like whether we would ingest initial seed product IDs or crawl all product pages, or only rely on products provided by subscribers. The interviewer remained silent for a good portion of the discussion, only bringing up scalability issues (like email, updating prices), storing historical price differences, email batching, and queuing jobs for workers in the last 10 minutes. I felt a bit skeptical about this round as I hadn't encountered this specific problem before, and I was unsure if I gave the right signals, though I later verified the design online.
Behavioral Round
I faced 6-7 standard behavioral questions, many of which I recognized from past interview experiences. The interviewer was friendly and asked several follow-up questions.
Overall, most rounds went as expected, except for System Design Round 2, which left me with some doubts. I was waiting for results, hoping for good news.
Update 1
They scheduled an additional system design round, making it a total of three system design rounds and seven rounds overall, as they felt some signals were missing. This follow-up interview was quite stressful; the interviewer was very interventionist, and I didn't feel I could fully convey my solutions. I wasn't very hopeful about the outcome after this round.
Update 2
Today, I received an update that they are extending an offer after team matching is complete! I am incredibly grateful to the community for all the support and information that helped me through this process.
Interview Questions (6)
The problem asks to simplify an absolute path to a file or directory in a Unix-style file system.
Given an array of prices, I needed to find the maximum profit by buying and selling the stock once. No variants were asked.
Given a collection of intervals, I was asked to merge all overlapping intervals.
I needed to return the values of the nodes you can see from the right side of a binary tree, ordered from top to bottom.
I was asked to design a system similar to Instagram, covering standard requirements like uploading photos/videos, feed generation, user profiles, followers, and basic infrastructure components.
I was tasked with designing a price notification system similar to camelcamelcamel. The discussion involved defining requirements, such as whether we would get initial seed product IDs/names, crawl through all product pages, or only use products provided by subscribers. We also covered scalability issues (e.g., sending emails, updating prices efficiently), storing historical price differences, email batching, and queuing jobs for workers.
Summary
I successfully passed my Meta E4 On-Site interview for an Infra role in the USA. The process involved a phone screen, system design, two coding rounds, and behavioral interviews, with one behavioral round requiring a redo before I received the offer.
Full Experience
I never thought I would be sharing this, but after passing my Meta E4 On-Site interview for an Infra role, I wanted to give back to the LeetCode community.
Phonescreen
- For the first coding question, I was asked to solve Valid Palindrome 2.
- The second question was Diameter of Binary Tree.
There was an additional question, 1249. Minimum Remove to Make Valid Parentheses, where only the thought process was required, not the code.
Behavioral Interview I
This round covered standard behavioral questions:
- Discussing a project I was most proud of.
- Describing a conflict with a co-worker and its resolution.
- Sharing feedback I had received and how I acted upon it.
System Design I
The core problem was to design a photo messaging app. The interviewer probed deep with follow-up questions:
- Why I chose SQL over NoSQL.
- What consistent hashing is.
- How to scale the system.
- Capacity estimates for the system.
- Explaining the upload and download process for photos/videos to/from S3.
I honestly felt I had bombed this round. The interviewer was very directive, asking deep-dive questions even before I finished the High-Level Design (HLD). Estimations were a specific focus.
Coding Interview I
- Question 1: 50. Pow(x, n). I initially provided an O(N) approach and coded it. The interviewer then pushed for an O(logN) solution. I fumbled a bit and needed some hints but eventually arrived at the recursive O(logN) approach.
- Question 2: Vertical Order Traversal of a Binary Tree. This was more of a discussion round. I had to explain why BFS is often preferred, why not DFS, and how to implement it with DFS. No code was required, and I answered all questions successfully.
Coding Interview II
- Question 1: A variant of 560. Subarray Sum Equals K, asking to return true or false if such a subarray exists. I was also asked to optimize for space/time complexity.
- Question 2: Antidiagonal of a matrix. This round went smoothly with no hiccups.
After these rounds, I had to do a behavioral redo. Fortunately, the questions were the same as the first behavioral round, and this time, the interviewer was much more pleasant. I had also refined my stories, which helped immensely.
I heard back from the recruiter in 4 days after the onsite, and then again in just 1 day after a follow-up, confirming that I had passed the Hiring Committee (HC).
Timeline:
The journey was quite long. The recruiter first reached out in early December, which was when I started studying, as I was also exploring internal opportunities within my current company. I finished the onsite interviews in March, making it a total of about four months of preparation and interviewing.
Interview Questions (11)
Tell me about a project you are most proud of, detailing your contributions and the impact.
Describe a situation where you had a conflict with a co-worker and how you resolved it.
Discuss a piece of feedback you've received, how you reacted, and what you did with it.
Design a system for a photo messaging application, including considerations for uploading, storing, and retrieving photos and videos.
Given the root of a binary tree, return the vertical order traversal of its nodes' values. For each node at (row, col), its left and right children will be at (row + 1, col - 1) and (row + 1, col + 1) respectively. The traversal should be sorted column by column, then by row within each column, and finally by value if multiple nodes are at the same (row, col).
Preparation Tips
For system design, my primary resources were Hello Interview, which was incredibly helpful for understanding the basics and interview strategy, and Alex Xu's System Design books (Part 1 and 2).
For coding interviews, I relied heavily on LeetCode. A huge shoutout goes to CodingWithMinmer on YouTube; their content is fantastic for the community.
Summary
I had a 45-minute screening interview at Meta for a Software Engineer role. I was asked two LeetCode questions, but I couldn't complete the second one, so I'm not expecting a positive outcome.
Full Experience
I had a 45-minute screening interview at Meta. Two questions were asked: Valid Word Abbreviation and Binary Tree Vertical Order Traversal. I wasn't able to complete the second question, and based on what I've seen from other candidates' experiences, I'm not expecting a positive response.
This was actually my second time taking this screening in one year, and through this experience, I've realized a few important things:
- Autocomplete settings in CoderPad are usually off, so it's critical to be in practice of remembering syntax. If you write code frequently, you should be fine.
- The interviewer doesn't expect you to talk while you are writing your code; this approach saves you time and allows you to focus on completing the code quickly.
- At the end of a question, they typically ask you to walk through your code with a given input example and its expected outcome.
- This is also the time to fix any bugs if you can spot them yourself.
A very important point is that you should write the first version of your code as fast as possible. This is because the interviewer will need some time to understand your approach and point out any bugs they might find. All the best!
Interview Questions (2)
Preparation Tips
Based on this screening experience, especially taking it for the second time, I've realized the critical importance of practicing coding without autocomplete to remember syntax quickly. Focusing solely on writing the code efficiently to get a first version done fast is also key, as interviewers need time to review. Lastly, preparing to walk through my code with examples and self-identifying bugs under pressure is essential.
Summary
I've shared my insights into Meta's interview style, specifically regarding the 'Custom Sort String' problem (LC791), its common variant, and a crucial optimization follow-up question.
Full Experience
From what I've observed in Meta interviews, they frequently pose the original LeetCode problem 791, 'Custom Sort String'. There's also a minor variant where the order parameter might be presented as a List rather than a string, though this typically doesn't alter the solution significantly. A key aspect of their assessment often comes with a follow-up question: optimizing the character frequency tracking from a HashMap<Character, Integer> to a List<Integer>, which is a good signal if you manage to solve it within time.
Interview Questions (3)
Given two strings order and s. All the characters of order are unique and were sorted in some custom order previously. Permute the characters of s so that they match the order that order was sorted. More specifically, if x occurs before y in order, then x should occur before y in the permuted string. Return any valid permutation of s.
The problem is identical to 'Custom Sort String', but the order parameter is provided as a List<Character> instead of a string. The core logic for sorting characters based on the custom order remains the same, requiring only minor adaptations for handling a list instead of a string.
If the solution for 'Custom Sort String' uses a HashMap<Character, Integer> to store character frequencies, how would you optimize this to use a List<Integer> instead? This typically implies using a fixed-size array (e.g., int[26] for lowercase English letters) to map character ASCII values to array indices for O(1) access.
Preparation Tips
I've detailed my approach and a solution for the original problem, its variant, and the follow-up optimization in my YouTube video. This resource aims to help others prepare effectively for this specific problem pattern often encountered in Meta interviews.
Summary
I had a phone screen with Meta where I was asked two coding problems: LeetCode 88 (Merge Sorted Array) and LeetCode 973 (K Closest Points to Origin). Despite solving both within the allotted time, I was rejected due to insufficient signal.
Full Experience
I had a phone screen with Meta. The interview consisted of two coding questions. The first question was related to LeetCode 88: Merge Sorted Array. A slight twist was that the lengths of the arrays were not explicitly given, only the arrays themselves. I stumbled a bit initially on how to calculate the number of elements in nums1 before realizing it could be derived from nums1.size() - nums2.size(). The interviewer gave me a small hint related to nums2's length, which helped me recover quickly. I solved it with O(n) time and O(1) space complexity.
The second question was LeetCode 973: K Closest Points to Origin. I immediately proposed the priority queue solution and discussed its time complexities. The interviewer then asked if there was a better way, so I mentioned the Quicksort-based (Quickselect) solution and its complexities. I was then asked to code the priority queue solution. During coding, I had some minor bracket-related typos which the interviewer pointed out.
I finished both problems in about 35 minutes. I was hoping for a positive result, but unfortunately, I received an update stating there wasn't enough signal to move forward. I'm quite disappointed in myself because I felt like these were relatively easy medium problems, and I still managed to bomb the phone screen. All the effort I put into preparation felt like it led to a quick rejection.
Interview Questions (2)
Given an array of points points, where points[i] = [xi, yi] represents a point on the X-Y plane, and an integer k, return the k closest points to the origin (0, 0). The distance between two points on the X-Y plane is the Euclidean distance. The answer can be returned in any order, and it's guaranteed to be unique.
Summary
I had a Meta phone screen where I was asked to solve 'K+1th Largest Element' and 'Valid Palindrome'. Despite providing correct solutions and detailed explanations, the interview was frustrating due to vague feedback and ultimately resulted in a rejection.
Full Experience
I recently experienced a Meta phone screen where I was presented with two coding questions. Although I felt well-prepared, the interview left me quite frustrated due to the interviewer's feedback style.
For the first question, 'K+1th Largest Element', I quickly understood the min-heap approach, discussed its complexities, and implemented a solution. I initially made a slight mistake by removing elements before adding new ones but debugged it to ensure elements were added first, then removed if the heap size exceeded K+1. The interviewer probed an edge case with array size 2 and K=2, leading to K+1=3, which I correctly identified as an impossible scenario, suggesting an exception. I implemented this, but the interviewer repeatedly claimed my code had 'bugs' without identifying specific issues, even after I walked through it line by line. This vague feedback was confusing and unsupportive.
The second question was 'Valid Palindrome', requiring me to check if a string is a palindrome while ignoring non-alphanumeric characters and case. I was very familiar with this and quickly implemented a two-pointer solution. Initially, I converted the whole string to lowercase, but the interviewer pointed out the unnecessary space complexity. I adjusted to handle characters in-place, converting to lowercase only when needed. I also refined my code to reduce the number of if conditions. Despite my correct solution and thorough explanation, the interviewer's body language suggested dissatisfaction, which made me feel my efforts weren't being recognized.
Ultimately, I arrived at correct solutions for both problems and was confident in my explanations. However, the lack of clear, actionable feedback and the persistent, unspecific claims of 'bugs' made the experience frustrating. I later received a rejection email, which, though disappointing, is a part of the process. I am now moving on to new opportunities.
Interview Questions (2)
The first question was to find the K+1-th largest element using a min-heap. I was familiar with this problem and quickly explained the approach, discussed complexities, and implemented a solution. Initially, I made a mistake in the order of operations by removing elements from the heap before adding new ones. After debugging line by line, I fixed the issue by ensuring elements were added first and removed only if the heap size exceeded K+1.
The interviewer then asked about an edge case where the array size was 2 and K = 2, making K+1 = 3. I explained that finding the 3rd largest element in an array of size 2 is impossible and suggested throwing an exception. The interviewer agreed with this, so I implemented it. However, they repeatedly insisted there were still "bugs" in my code. Despite running through the code properly and confirming the correct output for all test cases, they claimed I was skipping steps. To address this, I walked through the code line by line with comments, but the interviewer still thought the solution was buggy without identifying specific issues. This left me feeling confused and unsupported.
The second question required checking if a string is a valid palindrome, ignoring digits and any non-letter characters, and considering case insensitivity. I was well-prepared for this question and quickly implemented a two-pointer solution. Initially, I converted the string to lowercase at the start, but the interviewer pointed out that this increased space complexity unnecessarily. I adjusted my code to handle characters in-place by converting them to lowercase only when needed.
The interviewer also suggested reducing the number of if conditions. I addressed this feedback by combining checks into a single condition within the loop. While my solution was correct, and I explained my thought process thoroughly, the interviewer’s body language suggested dissatisfaction, making me feel like my efforts weren’t being fully recognized.
Preparation Tips
I felt well-prepared for the interview, especially for standard data structure and algorithm problems, which allowed me to quickly approach and solve the given questions.
Summary
I recently completed my phone screen and technical onsite rounds for a Software Engineer - ML position at Meta. I encountered several LeetCode-style coding problems and an ML system design question, and I'm currently awaiting my behavioral interview.
Full Experience
My interview process for the Software Engineer - ML role at Meta involved a phone screen and a virtual onsite, with a behavioral round still pending.
Phone Screen
In the phone screen, I was given two coding problems. The first was Subarray Sum Equals K, and the second was Palindrome Permutation.
Virtual Onsite
Coding Round 1
This round had two more coding challenges. I was asked to count the number of monotonic sequences in an array, and the second problem was K Closest Points to Origin, for which I implemented a heap-based solution.
Coding Round 2
The second coding round also consisted of two problems. The first was Valid Number, but specifically without the exponent use case. I initially missed the test case "05" which should return false, but the interviewer pointed it out, and I corrected my code. The second problem was a variation of Simplify Path. In this variation, I was given a current path and a relative path, and my task was to simplify the target path and then navigate from the current to that target. I solved this using a stack.
ML System Design
There was some initial miscommunication regarding this round, as my recruiter had mentioned it would be a general system design problem, but I received a core ML question instead. I was asked to design an ML pipeline for bot post detection. I went over all specifics including data preprocessing, feature engineering, training, testing, and evaluation strategies, considering both online and offline scenarios. I believe I had answers to most of the questions that came up, although the interviewer's reaction was neutral.
I'm now awaiting the behavioral interview. I'm a bit concerned if missing the "05" test case initially will negatively impact my coding round evaluation.
Interview Questions (7)
A variation of the Simplify Path problem was asked. In this scenario, I was given a current path and a relative path. The task was to first simplify the target path (derived from the relative path) and then navigate from the current path to that simplified target path.
Design an end-to-end Machine Learning pipeline for bot post detection. This involved discussing various aspects such as data preprocessing, feature engineering, training methodologies, testing strategies, and evaluation metrics, considering both online and offline deployment scenarios. Despite some initial misunderstanding about the round's focus, I addressed all specific points raised.
Summary
I completed a screening interview for an E4 position at Meta, successfully solving two coding problems, though I needed to correct a minor error on one. I am currently awaiting feedback.
Full Experience
I recently had my screening interview for an E4 position at Meta. The interview session involved tackling two coding questions. I managed to solve both of them, but during the second problem, the interviewer pointed out a mistake in my code. I promptly identified and corrected the error, completing the solution.
Based on discussions I've seen on LeetCode, I'm not entirely confident about moving forward, and I'm eagerly awaiting their feedback.
Interview Questions (2)
This was a variation of the classic LeetCode Path Sum problem. The standard problem asks to determine if there exists a root-to-leaf path in a binary tree such that its node values add up to a given target sum. While the specific details of the variation weren't provided, it built upon this core concept.
Summary
I successfully navigated the interview process for an E5 Machine Learning Engineer position at Meta in Menlo Park. After two months of dedicated preparation, I received an offer following a phone screen and a full onsite loop.
Full Experience
I approached this as my very first coding interview, and after learning immensely from the LeetCode community, I am now sharing my experience, which I hope will be particularly useful for beginners.
Interview Timeline
- Mid-June: Reached out by HR.
- Mid-July: Phone Screen completed, received a pass email the next day.
- Mid-August: Onsite interviews concluded, received the offer call after 5 business days.
Phone Interview
My phone screen consisted of two standard LeetCode problems:
- Binary Tree Vertical Order Traversal: No variations were present.
- Minimum Remove to Make Valid Parentheses: The interviewer pointed out that my initial solution was not optimal. Luckily, I managed to figure out an optimal approach during the interview.
I solved both questions within 40 minutes.
Coding Interview 1
This round also had two problems, both with minor variations:
- Sum Root to Leaf Numbers: The variation was to sum the actual node values along root-to-leaf paths, rather than numbers formed by digits. I solved this optimally within 10 minutes and provided correct time and space complexity.
- Meeting Rooms II: The variation asked me to return any timestamp that had the maximum overlap, instead of just the maximum number of meeting rooms. I needed a small hint to recognize it as a Meeting Rooms problem and had a bit of a struggle returning the specific timestamp. My solution worked but felt a bit 'ugly'. I solved it in about 30 minutes, providing correct time complexity.
Coding Interview 2
This round also involved two questions, and I felt great about my performance here:
- Minimum Cost Flight Departure and Arrival Problem: This was a problem I had previously dug up from discussions. I solved it optimally within 5 minutes, which reinforced the value of spending hours researching common problems.
- Shortest Path in Binary Matrix: I solved this optimally within 15 minutes. The interviewer was quite satisfied that I completed two questions so quickly.
For the Shortest Path problem, the interviewer followed up with a weighted matrix variation (where each step's weight is the matrix cell's value). I didn't initially realize I could use BFS + Heap (Dijkstra's) and instead coded a DP solution. My DP solution might have had some uncovered corner cases, but the back-and-forth discussion went very well, and I explained my intuition clearly. By the end, I felt relaxed, like I was discussing with a teammate rather than being interviewed.
ML System Design
The topic was something related to harmful content detection. I followed a structured approach, but I was flexible and didn't stick exactly to a 'book' answer. We covered all the essential components and stretch questions within 40 minutes. I believe it's crucial to be adaptable, ready to deep-dive into specific areas the interviewer is interested in, and then pull back to the broader picture when necessary. Interestingly, we didn't use a whiteboard tool at all, which the interviewer was perfectly fine with.
Behavioral Interview
I was asked around 6-7 behavioral questions. Fortunately, all the questions were ones I had prepared for, and the interviewer delved into the details for each of my answers. The interviewer actually ran out of questions after 40 minutes!
Interview Questions (8)
Design a system for detecting harmful content. The interview focused on key components, scalability, and handling various aspects of such a system. I was expected to follow a structured design approach but also be flexible and adaptive to the interviewer's specific areas of interest.
I was asked approximately 6-7 behavioral questions covering various scenarios, typical of Meta's interview process. The interviewer often dug deeper into my responses, seeking more details.
Preparation Tips
Coding Preparation
I had almost no LeetCode experience two months prior to my interviews. From the day HR reached out, I focused intensely on coding preparation:
- Followed NeetCode's roadmap religiously.
- Tackled the top 150 tagged questions on LeetCode.
- Researched and practiced questions from the past 6 months found in LeetCode discussion forums related to Meta interviews.
ML System Design Preparation
My strategy for ML System Design was two-fold:
- I read through the book "Machine Learning System Design Interview" by Ali Aminian and Alex Xu twice.
- Utilized ChatGPT to generate lists of interview questions on specific ML topics, which proved very effective in deepening my understanding.
Behavioral Preparation
For behavioral questions, I searched for common questions and prepared concrete answers in advance, ensuring I could elaborate on my experiences effectively.
General Notes & Tips
- Practice with CoderPad: I highly recommend using CoderPad to practice. Always write down your intuition, preferably with a test example, before starting to code. During my phone screen, I instinctively typed 'class Solution' but was prompted by the interviewer to explain my thoughts thoroughly first.
- Don't Be Afraid to Seek Solutions: As a beginner, it's normal not to solve every new problem independently. My approach was to first check if NeetCode had a solution. If not, I'd consult the Editorial. ChatGPT was also a great tool for explaining complex code.
- Focus on Optimality and Speed for Meta: Meta heavily emphasizes optimal solutions and coding speed. It's incredibly stressful to realize your prepared solution isn't optimal during the interview. ChatGPT can be useful for optimizing code.
- Luck Plays a Role: While preparation is key, acknowledge that luck is a factor. Do your best and let the rest unfold.
Summary
I successfully navigated the Meta London SWE E4 recruitment process, which included a mock interview, phone screening, full-loop interviews, and a follow-up, ultimately securing a hire decision.
Full Experience
My journey through the Meta recruitment process was remarkably smooth, largely thanks to a highly supportive recruiter. After applying on March 17th, I was contacted by the recruiter on April 22nd. We had a mock interview on May 12th where I solved questions like "Move Zeroes" and "Number of Islands". This was followed by a phone screening on May 15th, during which I tackled "Basic Calculator II" and a problem involving merging three sorted arrays without duplicates. I received positive feedback the very next day, May 16th.
The recruiter then set up a call on May 24th to explain the further process. The full-loop interviews took place from June 26th to 27th, comprising two coding rounds, a product design round, and a behavioral round. Unfortunately, I cannot share the exact questions from these rounds due to an NDA. On July 9th, I received an update and was asked for a follow-up coding interview, which I completed on July 30th. This final round also involved two LeetCode Medium questions, though I cannot disclose the specifics. Finally, on August 1st, I received the exciting news of a hire decision.
Interview Questions (4)
Given an integer array nums, move all 0's to the end of it while maintaining the relative order of the non-zero elements. Note that you must do this in-place without making a copy of the array.
Given an m x n 2D binary grid which represents a map of '1's (land) and '0's (water), return the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water.
Given a string s which represents an expression, evaluate this expression and return its integer result. The integer division should truncate toward zero. You may assume that the given expression is always valid. All intermediate results will be in the range [-2^31, 2^31 - 1].
Given three sorted integer arrays, merge them into a single sorted array. The resultant array should not contain any duplicate elements.
Preparation Tips
For my coding rounds, I meticulously prepared using a list of Meta top 350 questions, which included problems from the Cracking Faang YouTube playlist. I also made sure to keep an eye on the LeetCode discuss section for the latest Meta interview questions. I found great value in the detailed and simple solutions provided by channels like Timothy H Chang, Programming Live with Larry, and NeetCodeIO. For system design, I highly recommend Hello Interview (YouTube) and the hellointerview.com website to prepare. I want to emphasize that this is not a sponsored post.
Summary
I interviewed for a Staff Software Engineer, Product (E6/E5) role at Meta in Singapore. Despite strong coding performance, mixed results in product design and a lack of detailed behavioral answers ultimately led to a rejection, though I found the overall interview experience to be uniquely positive.
Full Experience
My interview journey for an E6 (IC) Staff Software Engineer, Product position at Meta spanned from mid-March to late-July 2024. The entire process was conducted virtually via Zoom, Coderpad, and Excalidraw, after an HR recruiter reached out to me on LinkedIn. Meta was willing to assist with reallocation, including visa and a month's accommodation. The process was structured as an E6 interview, with a possibility of downleveling to E5.
1. Phone Screen (1 hour)
The phone screen consisted of two main parts:
1.1 Work Experience & Behavioral
I recall answering about 8 common behavioral questions. While I can't recall the specifics, they were typical questions easily found online.
1.2 Coding
- Diagonal Traverse (Medium): This was a standard LeetCode problem with a slight modification: all elements were to be traversed in a left-bottom pattern. I was allowed to just print the output and solved it quickly without any hints.
- Lowest Common Ancestor of a Binary Tree III (Medium): This was exactly the LeetCode problem. I initially jumped to conclusions, confusing it with the standard LCA problem without parent pointers, due to misreading the
Node* parent;reference. After getting stuck, the interviewer provided a hint, which helped me solve it just before time ran out.
Reflection from Phone Screen:
- It's crucial not to rush, no matter how confident one feels.
- I experienced some WiFi latency issues due to the interviewer being in London and me being far away. Thankfully, I had backup internet.
- Long problem descriptions on Coderpad can be overwhelming. Not using full-screen mode and allocating space for both coding and drawing helps prevent misreading.
I received feedback a week later: latency problems, insufficient explanation of customer impact during work experience discussions, and minor issues with the second coding problem (lack of corner cases). Despite this, I moved forward to the full loop.
2. Full Loop (45 minutes each)
My full loop involved Coding, Design, Coding, Behavioral, and Design rounds, spread across two weeks with varying schedules, including some night interviews. I'll describe them by category.
2.1 Coding I
- Buildings With an Ocean View (Medium): This was the exact LeetCode problem. I found it relatively straightforward, solvable by looping from right-to-left. While a monotonic stack could handle a left-to-right or streaming approach, my interviewer didn't require that, and I solved it quickly.
- Binary Tree Vertical Order Traversal (Medium): The problem was similar to the LeetCode version, but required the output as a flat list (e.g.,
[4,9,3,0,1,8,7]) rather than grouped by column. I adapted my existing solution with a minor modification and also discussed a hashmap approach suggested by the interviewer, which had similar time/space complexity.
2.2 Coding II
- Insert into a Sorted Circular Linked List (Medium): This was exactly the LeetCode problem. I realized my interview solution was better written than my practice one. Even though the interviewer initially suggested the head would be the lowest element, my solution inherently covered cases where the head wasn't the lowest, which I pointed out in a follow-up. I solved it quickly, handling all corner cases.
- Random Pick with Weight (Medium): The problem was the same as the LeetCode problem, but presented with a country code and population analogy. After clarification, I understood the core problem and implemented the optimal binary search solution. It's important to note that the interviewer expects you to determine the functions to implement yourself.
2.3 Product Design I
- Design Real-Time Facebook Comments: The core requirements were real-time updates within a thread and pagination. I struggled significantly here, spending too much time on clarifying questions due to overthinking. I managed to cover the core path but failed to deep dive into non-core aspects or explore various corner cases due to time constraints. I had treated it similarly to designing WhatsApp because of the real-time aspect.
2.4 Product Design II
- Design Facebook Online Chess: This round involved designing an online chess platform for Facebook, emphasizing very high traffic (3 billion users), real-time cross-device play, and a leaderboard. Follow-up discussions included data races, recording steps, and handling disconnections. I performed much better here than in the first design round, receiving many positive remarks from the interviewer. I successfully provided a big picture and deep-dived into various parts, including different real-time communication protocols (HTTP polling vs. long polling vs. WebSocket). I again approached this by drawing parallels to designing WhatsApp for real-time aspects.
2.5 Behavioral
The behavioral round included standard questions:
- Tell me about the project you're most proud of.
- Tell me about a time you collaborated with many stakeholders.
- Tell me about a time someone gave you constructive feedback.
- Tell me about a time you faced a barrier and how you handled it.
I utilized the STAR method for my answers, but I noticed the interviewer frequently probed for more details on the 'Result' (R) aspect, suggesting my explanations might have lacked sufficient impact or resolution details.
Outcome
I received my rejection two weeks after the full loop. The feedback, which took another week, indicated:
- Coding: Perfect, no problems.
- Design: Mixed. One performance was excellent (equivalent to a senior lead), while the other was very weak, lacking deep dives and detailed explanations.
- Behavioral: One question lacked clarity/detail in its resolution/output.
After rejection, I inquired about a potential downgrade, but HR confirmed no downgrade was possible and a 1-year cooldown for all Software Engineer roles. Despite the rejection, I am satisfied with the interview experience, finding it uniquely positive compared to other companies. It provided valuable insights into my areas for improvement.
Interview Questions (12)
Find the lowest common ancestor of two nodes in a binary tree where each node has a reference to its parent. I initially misread the problem, confusing it with LCA of a Binary Tree without parent pointers (which is similar but different because of Node* parent;), but with a hint from the interviewer, I was able to solve it before time ran out.
Given an array of building heights, return a list of buildings that have an ocean view. A building has an ocean view if all the buildings to its right are shorter. I considered both the right-to-left approach and the monotonic stack for left-to-right/streaming, but the interviewer only required the simpler right-to-left solution.
Given the root of a binary tree, return the vertical order traversal of its nodes' values. The output is different; instead of grouped by the column like [[4],[9],[3,0,1],[8],[7]], I should just output without group [4,9,3,0,1,8,7]. The interviewer also offered another approach that utilizes a hashmap, since my solution only used a vector.
Insert a new element into a sorted circular linked list. Initially, the interviewer said the input Node* head would be the lowest. However, I offered a solution where it didn't matter. Later, the interviewer asked a follow-up where the input wasn't the lowest, and I confirmed my solution already covered that part.
Implement pickIndex such that it returns an index from 0 to n-1 with probability proportional to w[i]. The problem was described using a country code and population analogy. After some clarification, I understood the problem was the same. It's important to remember that the interviewer won't give you the specific functions; you need to determine them yourself.
Design a system for real-time comments on Facebook posts. The core requirements were real-time updates within a thread and pagination. I spent too much time asking questions due to overthinking. I managed to cover the core path, but there were areas I could improve, such as continuing to non-core parts, adding more deep dives, and allowing the interviewer to add some corner cases. I ran out of time. I had never practiced this exact problem before and treated it similarly to designing WhatsApp because of the "real time" aspect.
Design an online chess platform for Facebook. Core requirements included handling very high traffic (assume 3 billion users), ability to play online from any devices in real-time, and a leaderboard. Follow-up questions covered Data Race, Record steps, and what if someone / everyone lose the connections during the game.
Describe a project you are most proud of. This is a common behavioral question.
Describe a time when you collaborated with many stakeholders. This is a common behavioral question.
Describe a time when someone gave you constructive feedback. This is a common behavioral question.
Describe a time when you faced a barrier and how you handled it. This is a common behavioral question.
Preparation Tips
My preparation involved solving over 800 LeetCode problems (46% Easy, 45% Medium, 9% Hard), with a focused effort on Meta-specific problems in the last 6 months (317 out of 505, including the top 100). My time distribution for preparation was Coding:Design:Behavioral at 70:25:5. After a challenging first Product Design round, I intensively learned about time management and key design patterns for system design, leveraging resources like HelloInterview and Exponent. I recognized that understanding underlying patterns, such as real-time communication design (e.g., WhatsApp), helps in solving a variety of related problems. For behavioral questions, I focused on the STAR method, though I noted a need to improve the 'Result' (R) portion of my answers.
Summary
I recently completed a technical phone screen for an E5 position at Meta in the USA, where I tackled two specific coding challenges after some initial behavioral questions.
Full Experience
I underwent a technical phone screen at Meta for an E5 role in the USA. The interview started with a few standard behavioral questions to get to know my background and approach. Following that, I was given two coding problems to solve. The first problem was 'Binary Tree Vertical Order Traversal', and the second involved merging three sorted lists while also removing any duplicate elements.
Interview Questions (2)
I was asked to implement the 'Binary Tree Vertical Order Traversal' algorithm.
I was tasked with merging three distinct sorted lists into a single sorted list, ensuring that any duplicate values present across the lists were removed in the final output.
Summary
I applied to Meta in January 2024 for an E4 Software Engineer role in London and successfully received an offer after completing multiple technical and behavioral rounds, including a follow-up system design interview.
Full Experience
I applied on Meta's career portal in January 2024 and received a response from HR in the last week of January. I then went through several interview rounds.
Recruiter Screening
This was a ~40-minute telephonic conversation where we discussed my past work experience, tech stack, current projects, deliveries, and impact. I made sure to be well-prepared with everything I had mentioned on my resume.
After this, I qualified for the Technical Screening round.
Technical Screening
I took 1 month to prepare and scheduled this 45-minute round for the last week of February. It started with a 5-minute introduction, followed by 35 minutes of coding, and concluded with 5 minutes for Q&A.
- The first question was Nested List Weight Sum.
- The second was Basic Calculator II.
I successfully provided the optimized solution, dry ran it, covered test cases, and analyzed both time and space complexity for both questions within the allotted time.
I received an email a week later, confirming my qualification for the onsite rounds. I scheduled all of them for the last week of March.
Coding 1
This 45-minute round followed the same structure: 5 minutes introduction, 35 minutes coding, and 5 minutes Q&A.
- The first question was Lowest Common Ancestor of a Binary Tree III.
- The second was LRU Cache.
I got slightly stuck while explaining the mathematical proof of the traversal technique for the first question, but aside from that, everything else proceeded smoothly.
Verdict: Hire
Coding 2
Another 45-minute round with the standard format.
- The first question was: Given an array of integers, return the index of one of the largest elements, chosen uniformly at random.
- The second question was about planning a round trip between two cities with minimum flight cost. I was given two arrays, D[] for departure fees and R[] for return fees, both of equal length with indices corresponding to dates. For example, D: [10, 8, 9, 11, 7] and R: [8, 8, 10, 7, 9], the minimum cost would be D[1] + R[3] = 15.
I was able to present brute force, optimized solutions, dry runs, test cases, and complexity analysis for both questions within the given time.
Verdict: Strong Hire
System Design
This round was 45 minutes, split into 5 minutes introduction, 35 minutes design, and 5 minutes Q&A. The task was to design a component in the Facebook app to show the top k trending hashtags of the last 12 hours, with data refreshing every hour, and different weightages for hashtags from posts, likes, and comments.
I covered functional and non-functional requirements, estimates, APIs, the data model, and a high-level design diagram, along with follow-up questions. However, I wasn't able to delve into the low-level details of components, data aggregation logic, or component interactions.
Verdict: Mixed Signal
Behavioral
This 45-minute round involved standard behavioral questions, which I answered using the STAR format.
Verdict: Strong Hire
Follow-up System Design Round
In mid-April, I received an email stating that an additional system design round was required due to the mixed signal from the previous one. I scheduled this follow-up for mid-May.
The challenge was to design a multiplayer game like chess that could scale up to 1 billion concurrent players. The constraints included no public matching, only matching with friends, and the need for a matching algorithm for friends, as well as immediate ranking board updates after a win/loss.
I thoroughly covered functional and non-functional requirements, estimates, APIs, the data model, a high-level design diagram, trade-offs between NoSQL and SQL, real-time vs. non-real-time ranking boards, and deep-dived into Apache stream processing, MapReduce jobs, and scalability aspects.
Verdict: Strong Hire
I received an offer for the E4 role in the first week of June. After two weeks for team matching and another two for negotiation, I received the final offer letter in the first week of July.
Interview Questions (8)
Given an array of integers, return the index of one of the largest elements, chosen uniformly at random.
Plan a round trip between two cities with minimum flight cost. From the departure city to the destination city, the fees are stored in array D[]. From the destination city to the departure city, the fees are stored in array R[]. Both arrays should have equal length, and the index corresponds to dates. For example, given D: [10, 8, 9, 11, 7] and R: [8, 8, 10, 7, 9], the minimum cost will be D[1] + R[3] = 15.
Design a component in the Facebook app to show the top k trending hashtags of the last 12 hours. This data will be refreshed every hour. Hashtags from posts, likes, and comments will have different weightage.
Design a multiplayer game like chess that can scale up to 1 billion concurrent players. Public matching is not allowed, only matching with friends. There should be a matching algorithm for matching two friends. Also, update the ranking board immediately after a win/loss in a match.
Preparation Tips
I took a dedicated month to prepare for the Technical Screening round. My preparation primarily focused on practicing coding problems similar to those found on LeetCode. For the System Design rounds, I reviewed common design patterns and scalable architecture principles. For behavioral questions, I used the STAR format to structure my answers based on my past experiences.
Summary
I had a phone screen with Meta for an E6 Software Engineer role where I was asked two LeetCode style questions. Despite providing optimal solutions and clearly explaining my thought process, I was ultimately rejected due to a minor code duplication in the second question, which I had offered to refactor given more time.
Full Experience
During my Meta E6 phone screen, I was given 40 minutes to optimally solve two LeetCode-style questions. I started by asking clarifying questions and establishing good test cases, including edge cases, to ensure I fully understood the problems. For both questions, I first presented a brute-force approach, then moved on to optimal solutions, complete with time and space complexity analysis. I verified later that my solutions were indeed optimal and my complexity analysis was accurate, all achieved with minimal to no hints from the interviewer. Once we agreed on the optimal approaches, I proceeded to code both questions, completing them within the 40-minute window. Throughout the interview, I clearly explained my thought process, performed dry runs, and even demonstrated edge-case dry runs to illustrate how my solutions handled various scenarios. After the interview, I ran my code on LeetCode, and it was accepted for all test cases with optimal time and space complexity.
The only minor imperfection in my performance was a small code duplication (about three lines) in the second question. I proactively mentioned this to the interviewer, stating that I could make those lines more elegant if I had a couple more minutes, as I prioritized delivering a working solution first. The interviewer agreed but didn't offer me time at the end to demonstrate the improvement, so I didn't think it would be a significant issue. No behavioral or other types of questions were asked; after 40 minutes of coding, the interviewer asked if I had any questions for them, which we discussed for five minutes, concluding the 45-minute screen.
To my surprise, I received a rejection email a few days later. The feedback stated that while I did an excellent job on the first question, the code duplication in the second question (those same three lines I had mentioned) was cited as the reason for rejection. With 14 years of rich experience building large-scale systems and leading engineering teams for Fortune 50 companies, I found it hard to fathom a rejection based on such a minor point, especially after my rigorous preparation. I feel like Meta prioritizes two 'perfect' coding solutions over extensive real-world experience. I've had a tough time with Asian interviewers historically, and despite my strong performance against significant personal challenges leading up to the interview—including my child being in the ER, my wife's car issues, and school cancellations—I was ultimately gutted by this outcome. I genuinely hope my experience helps others, even though I felt particularly unlucky in this instance.
Interview Questions (1)
The problem asked me to merge three given sorted lists (specifically three, not a general 'K' lists scenario) into a single sorted list. The key constraints were:
1. Use a three-pointer approach; a MinHeap was explicitly disallowed.
2. The output list must not contain any duplicate elements.
3. I needed to carefully manage the pointers, accounting for the possibility that the three input lists could be of different sizes.
The expected solution should be robust enough to handle varying list lengths and ensure only unique elements are added to the merged list while maintaining sorted order.
Preparation Tips
My preparation for this interview was extensive and thorough. I solved over 500 LeetCode questions, with more than 300 of those specifically tagged for Facebook (Meta) to target common problem patterns. Additionally, I engaged in 8 mock interviews prior to the actual screen, consistently achieving 5/5 stars in all of them, which boosted my confidence.
Summary
I interviewed at Meta for an L4 position, going through multiple rounds covering coding, behavioral, and system design. Despite solving all technical problems optimally and feeling positive about my performance, I was ultimately rejected for not meeting the L4 expectations.
Full Experience
I recently interviewed at Meta for an L4 position, which I secured through a referral. With 3 years of experience and a Master's in CS, I was eager for this opportunity.
Mock Interview
Before the official rounds, I participated in a mock interview which covered two coding questions:
- Move Zeroes to End: I struggled a bit with this one initially but eventually arrived at the correct solution.
- Number of Islands: I successfully implemented a DFS solution.
The feedback from the mock interview was crucial. I was advised to listen more carefully to hints, as I had ignored one given for the first question. Also, for code dry runs, I learned that it's better to choose a new example, especially an edge case, rather than just using the one provided by the interviewer.
Screening Round
My screening round involved two common binary tree problems and a design question:
- Binary Tree Right Side View & Left Side View: I believe I performed well here and didn't make any significant mistakes. The interviewer also confirmed my good performance.
- Design LRU Cache: I felt confident about my solution for this problem too.
Three days after this round, I received positive feedback and moved forward.
Onsite Coding Round 1
This round had two more coding challenges:
- Maximum Sum Subtree in Binary Tree: I initially missed a case where the maximum sum could be negative, but I quickly corrected it after the interviewer's hint.
- Evaluate Expression with Plus and Multiply (e.g., 5*10+3 = 53): I solved this problem without any errors.
Onsite Coding Round 2
My second coding round also featured two problems:
- Subsets (e.g., {A,B,C} --> [{},{A},{B},{C},{A,B},{A,B,C},{B,C}]): I successfully solved this. During my explanation, I briefly thought I had made a mistake, but the interviewer reassured me that my code was correct, and I completed my explanation.
- Valid Word Abbreviation: I solved this optimally. I made a minor mistake with variable naming, which I corrected after the interviewer pointed it out.
For all the coding questions across these rounds, I was able to find optimal solutions and implement them successfully.
Behavioral Interview
This round focused on standard behavioral questions, and it was quite brief, lasting only 25 minutes. The interviewer mentioned beforehand that it wouldn't take the full 45 minutes. We discussed for another 10 minutes afterward. The questions included:
- Challenges in a project
- Strengths and weaknesses
- Conflict with a manager
- How I handle deadlines
- How I handle receiving feedback
- Instances where I took initiative
I felt this round went really well.
System Design
The system design problem was to "Design an ad aggregation system." I believe this round also went smoothly for me.
Despite feeling positive about my performance across all rounds, I unfortunately did not receive an offer. The recruiter informed me that while there were no "red flags," I hadn't quite met the expectations for an L4 level. It was quite devastating to hear the results, especially knowing there's a one-year cooldown period before I can apply again.
Interview Questions (16)
Given an array of numbers, move all 0's to the end of it while maintaining the relative order of the non-zero elements.
Given an m x n 2D binary grid which represents a map of '1's (land) and '0's (water), return the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water.
Given the root of a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.
Given the root of a binary tree, imagine yourself standing on the left side of it, return the values of the nodes you can see ordered from top to bottom.
Design a data structure that follows the constraints of a Least Recently Used (LRU) cache. Implement the LRUCache class: LRUCache(int capacity) initializes the LRU cache with positive size capacity. int get(int key) Return the value of the key if the key exists, otherwise return -1. void put(int key, int value) Update the value of the key if the key exists. Otherwise, add the key-value pair to the cache. If the number of keys exceeds the capacity from this operation, evict the least recently used key.
Given the root of a binary tree, return the maximum sum of any non-empty subtree. A subtree includes a node and all its descendants.
Implement a function to evaluate a string expression containing only non-negative integers and the '+' and '' operators. Follow standard order of operations (multiplication before addition). For example, '510+3' should evaluate to 53.
Given a set of distinct integers, return all possible subsets (the power set). The solution set must not contain duplicate subsets. Example: {A,B,C} -> [{},{A},{B},{C},{A,B},{A,B,C},{B,C}]
Given a word and an abbreviation, return whether the word matches its abbreviation. A number in the abbreviation represents the number of non-empty characters that are skipped. For example, 'internationalization' can be abbreviated as 'i12iz4n'. The number cannot have leading zeros.
Describe a significant challenge you faced in a project and how you overcame it.
Discuss your greatest strengths and weaknesses.
Describe a time you had a conflict with a manager and how you handled it.
How do you prioritize and manage your workload when facing tight deadlines?
Tell me about a time you received constructive feedback. How did you react and what did you do with it?
Describe a situation where you took initiative and what the outcome was.
Design a system capable of aggregating advertisements from various sources and serving them efficiently to users.
Preparation Tips
My preparation was multi-faceted:
Coding:
- I focused on solving the top 100 Facebook-tagged LeetCode questions.
Behavioral:
- I utilized ChatGPT to generate typical behavioral questions and drafted my answers, tailoring them to my specific experiences.
- I dedicated approximately 10 hours to behavioral preparation, spread over three days.
- Discussing and verifying my answers with a friend proved to be very helpful.
System Design:
- I studied "System Design Vol 1" and "Vol 2".
- I also covered the initial chapters of "Designing Data Intensive Applications."
Summary
I interviewed for an E4 position at Meta and was ultimately rejected. The interview process included a phone screen, two coding rounds, a behavioral round, and a system design round, where I struggled with a mobile-focused design problem.
Full Experience
I decided to give back to the LeetCode community by sharing my interview experience at Meta. The process started with a phone screen, followed by an onsite interview which included two coding rounds, a behavioral round, and a system design round.
Phone Screen Interview:
For the phone screen, the first question I encountered was LRU Cache. I was familiar with this problem and was able to implement the optimal solution using a doubly linked list and a hashmap efficiently. The interviewer noted that since this was a relatively long question, one question would suffice. However, he then asked me another question, which was very similar to Daily Temperatures. For this, I was only asked to explain the solution concept rather than coding it out. I explained my approach, and after this round, I advanced to the onsite interviews.
Onsite Interviews:
Coding Round 1:
Q1: This was a fairly simple question. I was asked to implement a function that, given an array and a window size k, would return the moving average within that window. For example, given [1,2,3,4,5,6,7] and k = 3, the output should be [2, 3, 4, 5, 6]. I found a straightforward solution for this problem.
Q2: The second question was a graph problem, Word Ladder. I knew this problem well and was able to code the solution smoothly.
Coding Round 2:
Q1: This question was similar to Valid Word Abbreviation. It was again very simple, and I completed the code and walked through the solution in about 5 minutes.
Q2: The second problem was similar to Binary Tree Right Side View. This also felt simple to me, and I finished the code and walkthrough very quickly.
Behavioral Round:
This was one of my strongest rounds. The interviewer was very kind and friendly. We discussed some of my complex projects and how I approached and solved the challenges within them.
System Design Round:
This is where I struggled. Despite having prepared extensively for backend system design, I faced a mobile system design question. The interviewer asked me to design a library that, given a URL, downloads files from external sources. He even wrote a definition for one function: func($url, ?= parameters), highlighting the parameters with a question mark. As I asked more clarifying questions, he steered me to focus on the client side, seemingly evaluating my JavaScript abilities, specifically concerning concepts like promises and threads in JavaScript. I continued to answer based on what I believed would be a good design for such a library, and he inquired about the number of threads I would use and what a safe number would be. After the interview, upon further research, I found that the problem was similar to a file downloader library discussed on a proandroiddev blog.
I genuinely didn't know if everyone was expected to handle mobile system design. It was disheartening to be rejected primarily due to a mobile system design problem, especially after putting in significant effort preparing for backend system design. My advice to others is to ensure you prepare for both mobile and backend system design. Once I reviewed the blog post, I realized the question wasn't inherently difficult, but a lack of familiarity with mobile system design can certainly lead to a struggle. Also, it might be beneficial to revise JavaScript concepts; it might help you now or in the future.
I wish everyone the best of luck with their interviews.
Interview Questions (7)
Implement the LRU Cache data structure. It should support the following operations: get and put. get(key) will retrieve the value of the key if it exists, otherwise return -1. put(key, value) will update the value of the key if the key exists. Otherwise, add the key-value pair to the cache. If the number of keys exceeds the capacity from this operation, evict the least recently used key.
Given an array of numbers and a window size k, calculate and return an array of moving averages for each window. For example, given the array [1,2,3,4,5,6,7] and k = 3, the output should be [2, 3, 4, 5, 6].
Given two words, beginWord and endWord, and a dictionary wordList, return the length of the shortest transformation sequence from beginWord to endWord, such that: Only one letter can be changed at a time. Each transformed word must exist in the wordList. Return 0 if there is no such transformation sequence.
Given the root of a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.
Design a library that, given a URL, downloads files from external sources. The interviewer provided a function signature: func($url, ?= parameters). I was asked to focus on the client-side, including JavaScript concepts like promises and threads, and considerations like the optimal number of threads for downloading files. This problem was similar to a file downloader library discussed on proandroiddev blogs.
Preparation Tips
For system design, I studied Alex Xu's System Design Interview Volume 1 and Volume 2, and completed 'Grokking the System Design Interview'. I also watched some random videos. For coding, my preparation involved extensive practice on LeetCode. Based on my experience, I would advise others to also prepare for mobile system design and to revise JavaScript concepts thoroughly.
Summary
I interviewed for an E4 role at Meta, going through phone screen and multiple onsite rounds. Despite performing well in coding and behavioral rounds, I was ultimately rejected due to my performance in the system design round, which unexpectedly focused on mobile system design.
Full Experience
My interview journey for an E4 position at Meta began with a phone screen. The first question was implementing an LRU Cache. I was familiar with this problem and successfully solved it using an optimal solution involving a doubly linked list and a hashmap. The interviewer, noting the complexity, deemed one question sufficient. However, I was then asked a conceptual question very similar to LeetCode's Daily Temperatures, which I explained without needing to code. This round went well, and I proceeded to the onsite interviews.
The onsite portion had two coding rounds. In Coding Round 1, the first question was quite straightforward: given a window size, calculate the moving average within that window. For example, with [1,2,3,4,5,6,7] and k = 3, the output should be [2, 3, 4, 5, 6]. This was a direct solution. The second question was the classic graph problem, Word Ladder. I knew this one well and coded the solution smoothly.
Coding Round 2 also consisted of two problems. The first was similar to 'Valid Word Abbreviation', which I found very simple and completed the code and walkthrough in about 5 minutes. The second was akin to 'Binary Tree Right Side View', also simple, and I managed the code and walkthrough very quickly.
The Behavioral round was arguably my best. The interviewer was incredibly kind and friendly. We discussed some of my complex projects and how I approached solving the challenges within them.
My struggle came during the System Design round. Despite extensive preparation from sources like Alex Xu (Volumes 1 and 2) and 'Grokking the System Design' (which I completed entirely), along with various videos, I received a mobile system design question rather than a typical backend one. The problem was to design a library that, given a URL, downloads files from external sources. The interviewer even provided a function signature: func($url, ?= parameters). As I asked clarifying questions, it became apparent he wanted me to focus on the client-side, seemingly assessing my JavaScript proficiency, particularly concerning promises and threads. I continued to answer based on what I thought would be a good design for such a library, addressing questions about thread management and safe numbers. After the interview, I researched and found the problem was indeed similar to a Mobile system design file downloader library, as discussed in a blog by ProAndroidDev.
I was genuinely disappointed, as I had dedicated my preparation to backend system design, and the rejection felt largely based on this unfamiliar area. It made me realize that even if you're not expecting it, preparing for mobile system design is crucial, and refreshing JavaScript concepts can be beneficial. Wishing everyone the best of luck in their interviews!
Interview Questions (7)
Implement a Least Recently Used (LRU) cache.
A question very similar to LeetCode's Daily Temperatures problem. I was asked to explain the solution without coding.
Given an array of integers and a window size k, calculate the moving average for each window. For example, if the input is [1,2,3,4,5,6,7] and k = 3, the output should be [2, 3, 4, 5, 6].
Given two words (beginWord and endWord), and a dictionary's word list, find the length of shortest transformation sequence from beginWord to endWord, such that: Only one letter can be changed at each step. Each transformed word must exist in the word list.
A question similar to LeetCode's Valid Word Abbreviation problem.
A question similar to LeetCode's Binary Tree Right Side View problem.
Design a client-side library that, given a URL, downloads files from external sources. The interviewer focused on client-side aspects, specifically JavaScript abilities, promises, and threads. Questions included managing the number of threads and determining a safe number.
Preparation Tips
I had done system design preparation from Alex Xu's volumes 1 and 2, and completed 'Grokking the System Design' entirely. I also watched some random videos, but my main focus was on books, specifically for backend system design. Looking back, I realize the importance of preparing for mobile system design as well, and recommend revising JavaScript concepts like promises and threads.
Summary
I interviewed for an E4 position at Meta and was ultimately rejected, primarily due to struggles in the mobile system design round, despite performing well in coding and behavioral interviews.
Full Experience
I interviewed for an E4 position at Meta, starting with a phone screen. I was given the LRU Cache problem, which I solved optimally using a doubly linked list and hashmap. The interviewer indicated that one question was sufficient due to its length. He then gave me a conceptual question very similar to Daily Temperatures, asking only for an explanation of the solution. I cleared this round and proceeded to the onsite interviews.
The onsite consisted of two coding rounds, a behavioral round, and a system design round. In the first coding round, I solved a fairly simple problem to find the moving average within a given window (e.g., [1,2,3,4,5,6,7] k = 3 output [2, 3, 4, 5, 6]), which was a straightforward solution. This was followed by the Word Ladder graph problem, which I knew and coded smoothly.
The second coding round included a simple question similar to Valid Word Abbreviation, which I coded and walked through in about 5 minutes. The second question was similar to Binary Tree Right Side View, which was also simple, and I quickly completed the code and walkthrough.
My behavioral round was one of my best. The interviewer was very kind and friendly, and we spoke about some of my complex projects and how I solved problems within them.
The system design round was where I struggled. I was asked to design a library that, given a URL, downloads files from outside. The interviewer provided a function definition func($url, ?= parameters) and directed me to focus on the client-side, seemingly judging my JavaScript abilities, specifically focusing on concepts like promises and threads. I kept answering based on what I thought would be a good design for such a library, and he asked questions about thread counts and safe numbers. Upon doing some research afterward, I found the problem was similar to a mobile system design exercise. Despite my extensive preparation in backend system design, this mobile-focused problem caught me off guard. I was ultimately rejected, and I believe my performance in this round was the primary reason for the outcome. I was fairly disappointed as I had prepared extensively for backend system design.
Interview Questions (8)
In the first onsite coding round, I was asked a fairly simple question: given a window size, get the moving average within that window and output it. For example, if the input is [1,2,3,4,5,6,7] and k = 3, the output should be [2, 3, 4, 5, 6].
I was asked a problem similar to Binary Tree Right Side View, which was also simple. I completed the code and walkthrough very quickly.
This was one of my best rounds. The interviewer was very kind and friendly. We discussed some of my complex projects and how I solved problems within them.
I was asked to design a library that, given a URL, downloads files from outside. The interviewer provided a function definition func($url, ?= parameters) and guided me to focus on the client-side, seemingly assessing my JavaScript abilities, specifically around promises and threads. I was asked questions about the number of threads to use and what constitutes a safe number. I later found that the problem was similar to a mobile system design exercise.
Preparation Tips
My preparation for system design primarily focused on backend concepts. I studied Alex Xu's System Design books (Volume 1 and 2) and completed 'Grokking the System Design Interview.' I also watched some random videos, but my main focus was on these books.
My advice to everyone is to make sure you prepare for mobile system design as well, in addition to regular backend system design. If you have no clue what mobile system design looks like, the struggle can be natural. Also, make sure to revise your JavaScript concepts, as that might or might not help, but hopefully, it will be useful.
Summary
I interviewed for an E4 position at Meta and was ultimately rejected. While I performed well in the coding and behavioral rounds, my lack of preparation for mobile system design questions led to a struggle in that crucial round.
Full Experience
I wanted to share my interview experience with the LeetCode community.
Phone Screen Interview:
The first question was LRU Cache. I was familiar with this problem and managed to solve it with the optimal solution using a doubly linked list and a hashmap. The interviewer mentioned that since it's a long question, one problem would suffice. However, they then asked me another question, very similar to Daily Temperatures. For this, I only had to explain the solution, not code it. After explaining, I proceeded to the onsite rounds.
Onsite Interview:
Coding Round 1:
The first question was quite simple: given a window size, get the moving average within that window and output it. For example, with an input like [1,2,3,4,5,6,7] and k = 3, the output should be [2, 3, 4, 5, 6]. I found this to be a straightforward solution. The second question was a graph problem, Word Ladder. I knew this problem and coded the solution smoothly.
Coding Round 2:
The first question was similar to Valid Word Abbreviation. Again, it was very simple; I coded it and walked through the solution in about 5 minutes. The second question was similar to Binary Tree Right Side View, also straightforward. I quickly coded and walked through this solution too.
Behavioral Round:
This round was one of my best. The interviewer was very kind and friendly. We discussed some of my complex projects and how I approached solving the problems within them.
System Design Round:
This is where I struggled significantly. I had prepared system design primarily from Alex Xu's volumes 1 and 2, Grokking the System Design, and some random videos, with a strong focus on backend system design. The question I received was more akin to mobile system design than a typical backend one: "Design a library that, given a URL, downloads files from an external source." The interviewer provided a function definition func($url, ?= parameters) and indicated optional parameters. As I asked more clarifying questions, he directed me to focus on the client-side aspects, and it seemed he was evaluating my JavaScript abilities, particularly concepts like promises and threads in JavaScript. Despite this, I tried to answer based on what I believed would be a good design for such a library, discussing aspects like the number of threads. Later, upon researching, I found the problem to be similar to a mobile system design exercise for a file downloader library. I was quite disappointed, as I had put in a lot of effort preparing for backend system design, only to be rejected due to a mobile-focused question I hadn't prepared for.
Interview Questions (7)
I was asked to design and implement an LRU Cache. The optimal solution requires using a doubly linked list and a hashmap to achieve O(1) time complexity for both get and put operations.
I was presented with a problem very similar to LeetCode's Daily Temperatures. The goal is to return an array answer such that answer[i] is the number of days you have to wait after the i-th day to get a warmer temperature. If there is no future day for which this is possible, keep answer[i] == 0 instead.
Given an array of integers and a window size k, calculate the moving average for each window. For example, if the input is [1,2,3,4,5,6,7] and k = 3, the output should be [2, 3, 4, 5, 6].
I was given the Word Ladder problem. The task is to find the length of the shortest transformation sequence from a beginWord to an endWord, such that only one letter can be changed at each step, and each transformed word must exist in the given wordList.
I encountered a problem similar to LeetCode's Valid Word Abbreviation. The question involves determining if a string can be abbreviated to a given abbreviation, where numbers in the abbreviation represent consecutive characters to be skipped.
I was asked a question similar to the Binary Tree Right Side View problem. The goal is to imagine standing on the right side of a binary tree and return the values of the nodes you can see ordered from top to bottom.
I was tasked with designing a client-side library capable of downloading files from a given URL. The interviewer guided me to focus on client-side aspects, particularly JavaScript concepts like promises and threading models. The problem was later identified as being similar to a mobile system design exercise for a file downloader library.
Preparation Tips
For coding, I consistently used LeetCode to practice a wide range of problems across various data structures and algorithms.
For system design, I prepared diligently using Alex Xu's volumes 1 and 2, and I also went through the entire Grokking the System Design book. Additionally, I watched several random videos on system design topics. My preparation, however, was heavily focused on backend system design principles and patterns, which left me underprepared for the mobile-specific system design question I encountered.
Summary
I successfully navigated the Meta E4 phone screen and onsite interviews, ultimately receiving an offer after a two-month intensive LeetCode preparation period. The whole process took about three months due to holiday delays.
Full Experience
I wanted to share my interview experience with Meta, where I ultimately received an E4 offer. The entire process took about two months of dedicated LeetCode grinding, extending to three months total due to holiday season delays. It's truly beneficial to start preparing early!
The interview process unfolded as follows:
Phone Screen:
During this round, I was given a problem where I had to merge a list of 'n' intervals and return the optimized result. There was also a follow-up question that involved 'k' interval lists.
Onsite:
- Coding Round 1: This was quite unique. The interviewer presented a problem involving a graph of friend relationships, and I was asked to optimize my solution.
- Coding Round 2: I encountered a variant of the LeetCode problem 'Simplify Path' and also a variant of 'Nested List Weight Sum'.
- Product Architecture: For this round, I was tasked with designing a ticket buying application, similar to Ticketmaster. I focused on API and Database Modeling rather than going into deep scalability discussions, as that was the interviewer's preference. I made sure to lead the conversation and document my design notes.
- Behavioral Round: The interviewer asked a number of classic behavioral questions. These included inquiries about projects I'm proud of, how I handle conflict resolution, difficulties I've faced with teammates, and my approach to project prioritization.
Interview Questions (5)
Given a list of 'n' intervals, I was asked to merge them and return the optimized result. There was also a follow-up question involving 'k' interval lists.
I was presented with a variant of the 'Simplify Path' LeetCode problem.
I worked on a variant of the 'Nested List Weight Sum' LeetCode problem.
I was tasked with designing a version of a ticket buying application, akin to Ticketmaster. The key focus was on API design and Database Modeling, rather than extensive scalability discussions.
I was asked several classic behavioral questions, including topics like projects I'm proud of, how I handle conflict resolution, challenges faced with teammates, and my strategies for project prioritization.
Preparation Tips
My preparation involved a rigorous two-month LeetCode grind. My advice is to prepare early. I found it helpful to maintain a spreadsheet of all the LeetCode questions I completed, along with their solutions, for easy review. I also recommend practicing questions specifically tagged for the target company, as they can combine various problem types. Moreover, having a strong grasp of writing clean, readable code is crucial.
Summary
I recently interviewed at Meta for an onsite role and received a rejection, primarily due to my struggle with a mobile system design question during the final round, despite performing well in the coding and behavioral interviews.
Full Experience
Time to give back to the LeetCode community! My interview process at Meta consisted of a phone screen and an onsite round.
1. Phone Screen Interview
I was given LRU Cache. I had seen this question before and was able to solve it with the optimal solution using a doubly linked list and a hashmap. The interviewer mentioned that since it's a long question, one problem was enough. However, he then asked me another question, which was very similar to Daily Temperatures. For this one, I just had to explain the solution and didn't need to worry about coding. After explaining, I moved on to the onsite round.2. Onsite Interviews
Coding Round 1:
Q1: This was a fairly simple question. I was asked to implement a moving average within a given window size. For example, given [1,2,3,4,5,6,7] and k = 3, the output should be [2, 3, 4, 5, 6]. It was a straightforward sliding window solution.
Q2: The next question was a graph problem: Word Ladder. I was familiar with this problem and coded the solution smoothly.
Coding Round 2:
Q1: This was similar to Valid Word Abbreviation. It was very simple, and I managed to code and walk through the solution in about 5 minutes.
Q2: The second question was similar to Binary Tree Right Side View. Again, it was simple, and I quickly completed the code and walkthrough.
Behavioral Round:
This was one of my best rounds. The interviewer was very kind and friendly. We discussed some of my complex projects and how I approached solving problems in them.System Design Round:
This is where I truly struggled. I had prepared system design using various sources, mainly focusing on backend systems. The question I received was more of a mobile system design problem than a typical backend one. I was asked to design a library that, given a URL, downloads files from an external source. The interviewer had written a function definition:func($url, ?= parameters) and emphasized the parameters with a question mark. As I asked more clarifying questions, he steered me towards focusing on the client side and seemed to be evaluating my JavaScript abilities, specifically concepts like promises and threads in JavaScript.
Nevertheless, I tried my best to answer according to what I believed would be a good design for such a library. He asked follow-up questions about the number of threads I would use and what a safe number would be. Upon doing some research later, I found that the problem was similar to the concepts discussed in this article: Mobile System Design Exercise: File Downloader Library.
I genuinely don't know whether everyone is expected to be proficient in mobile system design, but interviews don't come with excuses. I was quite disappointed, having put in all the effort for backend system design, only to be rejected based on my performance in mobile system design. If you're preparing, make sure to cover both mobile and backend system design. Also, it might be beneficial to revise your JavaScript concepts.
Interview Questions (7)
Design and implement a data structure for a Least Recently Used (LRU) cache. It should support the following operations: get and put. get(key) will retrieve the value of the key if it exists, otherwise return -1. put(key, value) will insert or update the value. If the cache reaches its capacity, it should invalidate the least recently used item before inserting a new item.
Given an array of integers temperatures representing the daily temperatures, return an array answer such that answer[i] is the number of days you have to wait after the ith day to get a warmer temperature. If there is no future day for which this is possible, keep answer[i] == 0 instead. The problem was very similar to this concept.
Given a window size, calculate the moving average of elements within that window as new elements arrive. For example, given the stream [1,2,3,4,5,6,7] and a window size k = 3, the output should be [2, 3, 4, 5, 6].
Given two words, beginWord and endWord, and a dictionary wordList, return the number of words in the shortest transformation sequence from beginWord to endWord, such that: 1. Only one letter can be changed at each step. 2. Each transformed word must exist in the wordList. If there is no such sequence, return 0.
Given a word and an abbreviation, check if the word matches the abbreviation. An abbreviation can be formed by replacing a contiguous non-empty substring of a word with its length. For example, 'internationalization' can be abbreviated as 'i12n', 'i5al', etc. This question was similar to the problem described.
Design a client-side library that, given a URL, downloads files from an external source. The interviewer provided a function signature: func($url, ?= parameters). The discussion focused heavily on client-side aspects and JavaScript concepts like promises and threads. The problem was similar to the concepts discussed in this article: Mobile System Design Exercise: File Downloader Library.
Preparation Tips
My preparation for system design included:
- Reading Alex Xu's System Design Interview (Volume 1 and Volume 2).
- Completing 'Grokking the System Design' book.
- Watching various random videos.
Summary
I recently completed an onsite interview at Meta for an E4/E5 role in the USA, which involved two coding rounds, one behavioral round, and one system design round. I felt confident about my performance in most rounds, particularly the coding challenges, and am currently awaiting the final feedback.
Full Experience
My interview experience at Meta was structured into four distinct rounds.
The first round was a coding challenge where I faced a variation of the Simplify Path problem, along with an exact problem from Lowest Common Ancestor of a Binary Tree III. I was able to explain the most optimal solutions, run them with examples, and implement them within minutes. I also thoroughly discussed edge cases, complexity, and walked through additional test cases. This round went great, and I felt quite strong about my performance.
The second round was another coding session. Here, I encountered the Merge k Sorted Lists problem and a variation combining concepts from Insert Interval and Merge Intervals. Similar to the first round, I quickly presented optimal solutions, implemented them, and engaged in discussions about edge cases and complexities. While I wished for a harder problem to truly stand out, I did my best given the questions.
The third round was behavioral. It involved typical questions, and I felt I handled them pretty well. I made sure not to rely on generic YouTube advice and focused on genuine answers based on my experiences.
Finally, the fourth round was a system design challenge. I was asked to design an 'Ad count aggregation system'. I chose a product architecture approach and provided solutions for both live data and accurate data scenarios, integrating CMS and persistent data storage. I'm honestly not entirely sure about this round's outcome, but I presented my best effort.
I'm currently waiting for feedback from the recruiter. I feel I couldn't have done any interview better than this. Regardless of the outcome, I'm glad I gave it my all.
Interview Questions (6)
This was a variation combining concepts from 'Insert Interval' and 'Merge Intervals'. The problem likely involved inserting a new interval into an existing list of non-overlapping intervals, and then merging any resulting overlapping intervals to produce a final list of mutually exclusive intervals.
Design an 'Ad count aggregation system'. This involved building a system to count and aggregate ad impressions or clicks, potentially dealing with live data, accurate data cases, and using content management systems (CMS) and persistent data storage.
Typical behavioral questions designed to assess soft skills, past experiences, and cultural fit. The post explicitly states questions like 'Why Meta?' are unlikely, implying questions focusing on past project experiences, challenges, and teamwork.
Summary
I recently interviewed virtually with Meta for the E4 Research Scientist ML role, undergoing a two-day process that included ML design, behavioral assessment, and multiple coding rounds.
Full Experience
My virtual onsite interview experience with Meta for the E4 Research Scientist ML role was split into two days. Day 1 focused on ML Design and a Research & Experience (behavioral) round. Day 2 had two coding rounds.
Interview Questions (1)
Design a feed recommendation system for Instagram.
Summary
I interviewed at Meta for an E4 position in Seattle in December 2021 and successfully received an offer. The interview process included a phone screen and several onsite rounds covering coding, machine learning design, and behavioral aspects.
Full Experience
I recently interviewed at Meta for an E4 Software Engineer role in Seattle. At the time, I had 2.5 years of experience, working as an SDE2 at another top tech company. My interview journey consisted of a phone screen followed by a comprehensive onsite loop, ultimately resulting in an offer.
Meta Phone Screen
- I was asked to solve a problem involving validating a Binary Search Tree, which directly corresponds to LeetCode - Validate Binary Search Tree.
- Another problem involved merging two interval lists, similar to the problem discussed on LeetCode Discuss.
Meta Onsite
Coding Interview 1
- The first problem was to add two numbers represented as strings, like LeetCode - Add Strings.
- This was followed by a problem to multiply two numbers represented as strings, similar to LeetCode - Multiply Strings.
- I also had follow-up questions for these problems, such as handling negative string inputs or preceding zeros.
Coding Interview 2
- I was tasked with converting a Binary Search Tree into a sorted Doubly Linked List, similar to LeetCode - Convert BST to Sorted Doubly Linked List.
- Another problem was similar in nature to finding a peak element in an array, referencing LeetCode - Find Peak Element.
ML Design 1
This round involved a discussion centered around my past projects. I was presented with a problem that was a modification of one of my previous projects, prompting a deep dive into trade-offs, data collection strategies, and deployment considerations.
ML Design 2
The second ML design round was an open-ended problem focused on recommendation systems. The discussion covered various aspects including data sources, relevant metrics, feature engineering techniques, potential improvements, and runtime efficiency.
Behavioral Interview
The behavioral round primarily focused on my project experiences. I was asked to describe different situations, including conflicts with managers, my motivations for wanting to work at Meta, how I handled tough deadlines, and my experiences with mentoring others.
Interview Questions (10)
Given the root of a binary tree, determine if it is a valid binary search tree (BST).
A valid BST is defined as follows:
- The left subtree of a node contains only nodes with keys less than the node's key.
- The right subtree of a node contains only nodes with keys greater than the node's key.
- Both the left and right subtrees must also be binary search trees.
Given two non-negative integers num1 and num2 represented as strings, return the sum of num1 and num2 as a string.
You must not use any built-in BigInteger library or convert the inputs to integers directly.
Follow-up questions included: What if one of the strings is negative? What if there are preceding zeros?
Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2, also represented as a string.
You must not use any BigInteger library or convert the inputs to integers directly.
Follow-up questions included: What if one of the strings is negative? What if there are preceding zeros?
Convert a Binary Search Tree (BST) into a circular sorted Doubly-Linked List. The list should be sorted in ascending order.
The conversion should happen in-place. The right pointer of a node should point to the next node in the sorted list, and the left pointer should point to the previous node. For the circular list, the left pointer of the head should point to the tail, and the right pointer of the tail should point to the head.
Describe a situation where you had a conflict or disagreement with your manager and how you approached resolving it. What was the outcome?
What interests you about Meta as a company, and why do you want to work here specifically?
Describe a time when you faced a particularly tough deadline on a project. How did you manage the situation, and what was the result?
Describe your experience with mentoring others, either formally or informally. What challenges did you face, and what did you learn?