Facebook E5 London Offer

facebook logo
facebook
Lead Engineerlondon12 yearsOffer
March 30, 20213 reads

Summary

I successfully navigated the E5 Lead Engineer interview process at Facebook in London, securing an offer after a series of technical, behavioral, and system design rounds.

Full Experience

I had an interview for an E5 Lead Engineer position at Facebook in London. My experience level was 12 years.

Talk with the recruiter (30 mins):

This discussion was crucial for setting my expectations and understanding the interview process. The recruiter provided valuable insights and resources for preparation. I treated this as an interview itself, asking all my questions about the preparation process.

Technical Phone Screen (45 mins):

I was asked two coding questions in this round. Both were relatively easy, and the key was to articulate my thought process clearly. I made sure to test my code immediately after writing it, which impressed the interviewer.

Virtual Onsite (4 rounds):

Behavioral (45 mins):

This round focused on my past experiences in teams and how I handled technical challenges. The questions were open-ended, and each answer led to follow-up questions. I wasn't asked any coding questions in this round. My recruiter had mentioned that a strong positive signal in this round is critical, as a negative signal here can lead to a 'no-hire' decision even with strong technical performance.

System/Product Design (45 mins):

I was tasked with designing a file-sharing system similar to Dropbox. During requirement gathering, I pointed out a potential security issue with auto-sync, which seemed to impress the interviewer. My proposal for staggered scale-up based on usage trends also received positive feedback. I drove the discussion, answering clarification questions and providing high-level differences between SQL and NoSQL without getting bogged down in details.

Coding 1 (45 mins):

This round was similar to the phone screen but with a higher bar. I tackled two coding problems. The first involved a LeetCode problem, where I used Breadth-First Traversal and discussed follow-up questions on parallelization and memory constraints. The second was another LeetCode problem, which I solved very quickly.

Coding 2 (45 mins):

I faced two more coding questions here. For the first, which involved checking interval coverage, I initially missed a boundary case but caught and fixed it during testing without prompting, which was viewed positively. For the second, finding connected sub-graphs in an undirected graph, I used Depth-First Traversal. I ran out of time to complete the code, but because I had modularized my solution, I could clearly outline the remaining implementation details for the interviewer.

The next day, I received positive feedback from my recruiter for all four rounds and was informed that I would proceed to the review board. The offer came through the day after that.

Interview Questions (7)

Q1
Sum of Root-to-Leaf Paths in Binary Tree
Data Structures & AlgorithmsEasy

Given a binary tree of integers, write a function that returns the sums of all the root-to-leaf paths.

Q2
Arithmetic Expression Evaluator (Addition & Multiplication)
Data Structures & AlgorithmsEasy

Given a string representing an arithmetic expression with only addition and multiplication operators, return the result of the calculation.

Q3
Design Dropbox
System Design

Design a file sharing system similar to Dropbox. I discussed potential security issues with auto-sync, proposed staggered scale-up based on usage trends, and drove the design discussion, keeping it high-level and focused on requirements.

Q4
Find Largest Value in Each Tree Row
Data Structures & AlgorithmsMedium

Solve LeetCode problem 'Find Largest Value in Each Tree Row' using Breadth First Traversal (queue based approach).

Q5
Valid Palindrome II
Data Structures & AlgorithmsEasy

Solve LeetCode problem 'Valid Palindrome II'.

Q6
Check Interval Coverage
Data Structures & AlgorithmsMedium

Given two integers X and Y (X<Y) and a list of intervals [(i,j)...] (where i is the start and j is the end of the interval), find if the intervals completely cover the given integer range [X,Y]. The intervals are sorted according to their start value. Example1: X=1, Y=6, List: [[1, 3], [3, 5]], output: true; Example2: X=3, Y=5, List: [[1, 4], [4, 7]], output: false.

Q7
List Connected Components in Undirected Graph
Data Structures & AlgorithmsMedium

Given an undirected graph (represented by pairs of nodes), list all connected sub-graphs (components).

Preparation Tips

Tips from my experience:

  • Treat the recruiter call as an interview and an opportunity to ask about preparation resources and tips. Recruiters can be very helpful.
  • For behavioral interviews, being genuine and self-critical goes a long way. Have significant projects from your CV ready with narratives, and be prepared for follow-up questions.
  • For system design, keep the design high-level unless specifically asked to dive deeper. Stay focused on requirements and design a working solution. It's crucial to understand concepts in depth; avoid name-dropping technologies you can't elaborate on. At the same time, keep the big picture in mind and don't get lost in details.
  • For coding rounds, always talk through your thought process and test your code without waiting for the interviewer to prompt you. This creates a positive impression.

Recommended 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!