Preparing for an interview? Check out Cracking the Coding Interview
Published on

Meta E5 | Software Engineer | Seattle | Accepted

Author
  • Shared Anonymously

I recently underwent an onsite interview with Meta, which encompassed a total of five interviews: two coding rounds, one system design interview, and two behavioral interviews.

System Design Interview:

During this interview, I was tasked with designing a high-scale nearby friends and place system (proximity server). I initiated by outlining the requirements, defining APIs, and providing a high-level design. However, the interviewer expressed a specific interest in understanding how the search functionality would operate. They explicitly mentioned that they were not concerned with onboarding and other implementation details. Our discussion delved deep into topics like data storage for nearby places/friends, scalability considerations, ensuring 100% availability, and cost optimization. This interview was particularly positive, as it encouraged an in-depth exploration of core design challenges rather than adhering strictly to the traditional system design format.

1st Coding Interview:

  1. Finding the Lowest Common Ancestor (LCA) in a tree with only parent references provided. Given a list of nodes, each with a parent reference, the task was to find the LCA for a given pair of nodes. I carefully considered corner cases, including scenarios when the nodes were the same, not in the list, and more.
  2. Merging three sorted arrays while removing duplicates. The challenge was to merge these arrays, each containing potentially duplicate items, into one array with duplicates removed. The interviewer sought an optimal solution, so I articulated my thought process and ran several test cases before writing a single line of code.

2nd Coding Interview:

  1. Calculating the Maximum Sum in an n-tree. The goal was to include only the current node and its child nodes when calculating the maximum sum. I proactively clarified whether the interviewer wanted the k maximum values, so I proceeded to write code for finding k maximum values directly.
  2. Checking for Strobogrammatic Numbers. This problem was relatively straightforward, and I was able to solve it efficiently.

1st Behavioral Interview:

This interview predominantly focused on behavioral questions and discussions related to my past projects. Topics covered included complex projects I had worked on, conflict resolution with colleagues, handling disagreements between me and my manager, and instances where I had provided feedback to peers and how I had done so.

2nd Behavioral Interview:

Similar to the first behavioral interview, this session requested different examples in response to similar questions.

I have successfully completed the onsite interviews and am currently awaiting further details. I will provide information regarding compensation once I receive the official numbers.

ReportMark as Helpful