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)
Design a system for a load balancer.
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?
How do you handle vague requirements in a project?
Convert an array of numbers as characters to an actual integer. For example, convert ['1', '2', '3'] to 123.
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.