Meta E4 | onsite | Reject

meta logo
meta
Software Engineer E4Rejected
February 3, 20242 reads

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)

Q1
LRU Cache
Data Structures & AlgorithmsMedium

Implement a Least Recently Used (LRU) cache.

Q2
Daily Temperatures (Similar)
Data Structures & AlgorithmsMedium

A question very similar to LeetCode's Daily Temperatures problem. I was asked to explain the solution without coding.

Q3
Moving Average in a Window
Data Structures & AlgorithmsEasy

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].

Q4
Word Ladder
Data Structures & AlgorithmsHard

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.

Q5
Valid Word Abbreviation (Similar)
Data Structures & AlgorithmsEasy

A question similar to LeetCode's Valid Word Abbreviation problem.

Q6
Binary Tree Right Side View (Similar)
Data Structures & AlgorithmsMedium

A question similar to LeetCode's Binary Tree Right Side View problem.

Q7
Design a Mobile File Downloader Library
System Design

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.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!