Facebook | E4 | London | Interview Experience

facebook logo
facebook
E4London3 yearsOngoing
August 10, 20213 reads

Summary

I interviewed with Facebook for an E4 role in London, tackling various coding challenges, system design, and behavioral questions across multiple rounds, and I am currently awaiting the outcome.

Full Experience

Hey Everyone,

I interviewed with Facebook for an E4 role in London. I am currently waiting to hear back from them regarding the outcome of my interviews.

Phone Screen:

This round involved two coding questions. I felt confident in my ability to solve both on time.

  1. Binary Tree to Doubly linked List.
  2. Evaluating expression (Only with +/* operators).

Onsite Coding 1:

I successfully solved both problems presented in this round within the given time frame.

  1. Multiplying 2 strings.
  2. Course Schedule problem on LeetCode.

Onsite Coding 2:

Only one question was asked in this round. I was able to solve it on time, even though I required one hint from the interviewer. Overall, the interviewer seemed convinced by my solution.

  1. LFU Cache Implementation.

Behavioral:

This round consisted of standard behavioral questions and some inquiries about my past work experience. I managed to tackle all the questions well, with only one or two proving to be a bit tricky.

System Design:

The challenge here was to design a system similar to Google Drive. I was able to approach the problem, but the interviewer continuously introduced new scenarios. I could answer some of these, but got stuck on others. I feel this round went below average to average.

Interview Questions (6)

Q1
Convert Binary Tree to Doubly Linked List
Data Structures & AlgorithmsMedium

Convert a binary tree into a circular doubly linked list in-place. The left and right pointers of the tree nodes should be used as previous and next pointers respectively in the doubly linked list.

Q2
Evaluate Expression with Basic Operators (+, *)
Data Structures & AlgorithmsMedium

Implement a basic calculator to evaluate a simple expression string that may contain integers and the operators '+' and '*'. The expression string does not contain any parentheses, division, or subtraction. Assume the given expression is always valid.

Q3
Multiply Strings
Data Structures & AlgorithmsMedium

Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2, also represented as a string. Do not use any built-in BigInteger library or convert the inputs to integers directly.

Q4
Course Schedule
Data Structures & AlgorithmsMedium

There are a total of numCourses courses you have to take, labeled from 0 to numCourses - 1. You are given an array 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, return false.

Q5
LFU Cache
Data Structures & AlgorithmsHard

Design and implement a data structure for a Least Frequently Used (LFU) cache. It should support get and put operations with O(1) average time complexity. When the cache reaches its capacity, it should invalidate the least frequently used item. If there is a tie in frequency, invalidate the least recently used item among them.

Q6
Design Google Drive
System Design

Design a system like Google Drive, focusing on aspects such as file storage (e.g., block storage, deduplication), synchronization across multiple devices, versioning of files, access control and permissions, and overall system scalability and reliability.

Preparation Tips

For my preparation, I primarily used LeetCode for algorithm and data structure questions. For System Design, I relied exclusively on YouTube resources.

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!