Facebook | E5 | Remote (Menlo Park) | Mar 2021 [Reject]
Summary
I had my final round of interviews for an E5 remote position at Facebook in March 2021, which unfortunately resulted in a rejection. I felt confident about the coding rounds, but the system design and product design questions were unexpected and challenging, ultimately leading to my downfall.
Full Experience
I had my final round of interviews for a remote E5 position with Facebook in March 2021. The interviews were conducted via video calls, utilizing CoderPad for coding and Excalidraw for design discussions.
My first coding round included two problems: Leftmost Column with a One and Kth Smallest Element in a Sorted Matrix.
The system design round presented the challenge to "Design a Load Balancer".
For the behavioral interview, I was asked several questions: "Can you tell me about a time you had to overcome obstacles in a project?", "Tell me about a time you had a conflict or disagreement with a colleague.", "Did you ever try to change something outside of your responsibility?", and "How do you handle vague requirements in a project?". There was also a coding question at the end of this round, which was to convert an array of numbers as characters to an actual integer; for example, converting ['1', '2', '3'] to 123.
In my second coding round, I tackled Merge 2 Sorted Arrays and Insert into a Sorted Circular Linked List.
The product design round focused on "Design a client library for a mobile phone that downloads media files (image, video, music/sound)".
About a week after the interviews, I received a rejection email that did not include any specific feedback. I felt pretty good about the coding rounds, as I was able to code solutions for all of them, and practicing problems on LeetCode definitely helped. Facebook also has its own interview prep coding problems, but I found them generally much easier than the ones on LeetCode.
I'm pretty sure the system and product design rounds were my downfall. I had been preparing for designing distributed systems for those rounds, so it threw me off when the system design focused only on one particular component of a system, and the product design was about something I don't have much experience with. Those two rounds were nothing like the system design prep videos I'd seen online. I felt very unprepared for them even after about two months of preparation. Live and learn, I suppose.
Interview Questions (11)
Leftmost Column with a One
Kth Smallest Element in a Sorted Matrix
Find the Kth smallest element in an n x n matrix where each row and column is sorted in ascending order.
Design a Load Balancer
Design a system for a load balancer.
Overcome Obstacles
Can you tell me about a time you had to overcome obstacles in a project?
Conflict or Disagreement with Colleague
Tell me about a time you had a conflict or disagreement with a colleague.
Change Something Outside Responsibility
Did you ever try to change something outside of your responsibility?
Handle Vague Requirements
How do you handle vague requirements in a project?
Convert Array of Character Numbers to Integer
Convert an array of numbers as characters to an actual integer. For example, convert ['1', '2', '3'] to 123.
Merge Sorted Array
Merge two sorted arrays into a single sorted array.
Insert into a Sorted Circular Linked List
Given a node in a circular linked list, insert a new element into the list such that the list remains sorted.
Design a Client Library for Mobile Media Downloads
Design a client library for a mobile phone that downloads media files (image, video, music/sound).
Preparation Tips
My preparation primarily involved practicing problems on LeetCode, which proved very beneficial for the coding rounds. I also utilized Facebook's own interview prep coding problems, though I found them generally easier than those on LeetCode. For system design, I prepared for about two months, focusing on distributed systems design. However, this preparation did not align well with the specific questions asked during the actual interview, particularly the product design aspect and the component-focused system design.