Meta E4 | Onsite | Reject
- Result
- Rejected
- Posted
- 3 Feb 2024
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.
How it went
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.
Questions asked (8)
- 01
LRU Cache
Data Structures & Algorithms · Medium
Open the problemI was given the LRU Cache problem during the phone screen. I knew this question before and was able to solve it with the optimal solution.
- 02
Daily Temperatures (Similar)
Data Structures & Algorithms · Medium
Open the problemI was asked another question very similar to Daily Temperatures. The interviewer told me to explain the solution without needing to code it.
- 03
Moving Average in a Window
Data Structures & Algorithms · Easy
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]andk = 3, the output should be[2, 3, 4, 5, 6]. - 04
Word Ladder
Data Structures & Algorithms · Hard
Open the problemDuring the first onsite coding round, I was asked the Word Ladder graph problem. I was familiar with the question and coded the solution smoothly.
- 05
Valid Word Abbreviation (Similar)
Data Structures & Algorithms · Medium
Open the problemIn the second onsite coding round, I solved a question similar to Valid Word Abbreviation. It was very simple, and I completed the code and walkthrough in about 5 minutes.
- 06
Binary Tree Right Side View (Similar)
Data Structures & Algorithms · Medium
I was asked a problem similar to Binary Tree Right Side View, which was also simple. I completed the code and walkthrough very quickly.
- 07
Behavioral Interview
Behavioral
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.
- 08
Design a Mobile File Downloader Library
System Design
Open the problemI 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.
How they prepared
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.