Meta E5/E6 - Staff Software Engineer, Product | Phone Screen + Full Loop

meta logo
meta
Staff Software Engineer, ProductSingapore5 yearsRejected
August 6, 20240 reads

Summary

I interviewed for a Staff Software Engineer, Product (E6/E5) role at Meta in Singapore. Despite strong coding performance, mixed results in product design and a lack of detailed behavioral answers ultimately led to a rejection, though I found the overall interview experience to be uniquely positive.

Full Experience

My interview journey for an E6 (IC) Staff Software Engineer, Product position at Meta spanned from mid-March to late-July 2024. The entire process was conducted virtually via Zoom, Coderpad, and Excalidraw, after an HR recruiter reached out to me on LinkedIn. Meta was willing to assist with reallocation, including visa and a month's accommodation. The process was structured as an E6 interview, with a possibility of downleveling to E5.

1. Phone Screen (1 hour)

The phone screen consisted of two main parts:

1.1 Work Experience & Behavioral

I recall answering about 8 common behavioral questions. While I can't recall the specifics, they were typical questions easily found online.

1.2 Coding

  • Diagonal Traverse (Medium): This was a standard LeetCode problem with a slight modification: all elements were to be traversed in a left-bottom pattern. I was allowed to just print the output and solved it quickly without any hints.
  • Lowest Common Ancestor of a Binary Tree III (Medium): This was exactly the LeetCode problem. I initially jumped to conclusions, confusing it with the standard LCA problem without parent pointers, due to misreading the Node* parent; reference. After getting stuck, the interviewer provided a hint, which helped me solve it just before time ran out.

Reflection from Phone Screen:

  • It's crucial not to rush, no matter how confident one feels.
  • I experienced some WiFi latency issues due to the interviewer being in London and me being far away. Thankfully, I had backup internet.
  • Long problem descriptions on Coderpad can be overwhelming. Not using full-screen mode and allocating space for both coding and drawing helps prevent misreading.

I received feedback a week later: latency problems, insufficient explanation of customer impact during work experience discussions, and minor issues with the second coding problem (lack of corner cases). Despite this, I moved forward to the full loop.

2. Full Loop (45 minutes each)

My full loop involved Coding, Design, Coding, Behavioral, and Design rounds, spread across two weeks with varying schedules, including some night interviews. I'll describe them by category.

2.1 Coding I

  • Buildings With an Ocean View (Medium): This was the exact LeetCode problem. I found it relatively straightforward, solvable by looping from right-to-left. While a monotonic stack could handle a left-to-right or streaming approach, my interviewer didn't require that, and I solved it quickly.
  • Binary Tree Vertical Order Traversal (Medium): The problem was similar to the LeetCode version, but required the output as a flat list (e.g., [4,9,3,0,1,8,7]) rather than grouped by column. I adapted my existing solution with a minor modification and also discussed a hashmap approach suggested by the interviewer, which had similar time/space complexity.

2.2 Coding II

  • Insert into a Sorted Circular Linked List (Medium): This was exactly the LeetCode problem. I realized my interview solution was better written than my practice one. Even though the interviewer initially suggested the head would be the lowest element, my solution inherently covered cases where the head wasn't the lowest, which I pointed out in a follow-up. I solved it quickly, handling all corner cases.
  • Random Pick with Weight (Medium): The problem was the same as the LeetCode problem, but presented with a country code and population analogy. After clarification, I understood the core problem and implemented the optimal binary search solution. It's important to note that the interviewer expects you to determine the functions to implement yourself.

2.3 Product Design I

  • Design Real-Time Facebook Comments: The core requirements were real-time updates within a thread and pagination. I struggled significantly here, spending too much time on clarifying questions due to overthinking. I managed to cover the core path but failed to deep dive into non-core aspects or explore various corner cases due to time constraints. I had treated it similarly to designing WhatsApp because of the real-time aspect.

2.4 Product Design II

  • Design Facebook Online Chess: This round involved designing an online chess platform for Facebook, emphasizing very high traffic (3 billion users), real-time cross-device play, and a leaderboard. Follow-up discussions included data races, recording steps, and handling disconnections. I performed much better here than in the first design round, receiving many positive remarks from the interviewer. I successfully provided a big picture and deep-dived into various parts, including different real-time communication protocols (HTTP polling vs. long polling vs. WebSocket). I again approached this by drawing parallels to designing WhatsApp for real-time aspects.

2.5 Behavioral

The behavioral round included standard questions:

  • Tell me about the project you're most proud of.
  • Tell me about a time you collaborated with many stakeholders.
  • Tell me about a time someone gave you constructive feedback.
  • Tell me about a time you faced a barrier and how you handled it.

I utilized the STAR method for my answers, but I noticed the interviewer frequently probed for more details on the 'Result' (R) aspect, suggesting my explanations might have lacked sufficient impact or resolution details.

Outcome

I received my rejection two weeks after the full loop. The feedback, which took another week, indicated:

  • Coding: Perfect, no problems.
  • Design: Mixed. One performance was excellent (equivalent to a senior lead), while the other was very weak, lacking deep dives and detailed explanations.
  • Behavioral: One question lacked clarity/detail in its resolution/output.

After rejection, I inquired about a potential downgrade, but HR confirmed no downgrade was possible and a 1-year cooldown for all Software Engineer roles. Despite the rejection, I am satisfied with the interview experience, finding it uniquely positive compared to other companies. It provided valuable insights into my areas for improvement.

Interview Questions (12)

Q1
Diagonal Traverse with Left-Bottom Modification
Data Structures & AlgorithmsMedium

Given an m x n matrix, return all elements of the matrix in diagonal order as they traverse to the left-bottom direction. The interviewer allowed me to just print the output. I was able to solve this problem quickly without a hint.

Q2
Lowest Common Ancestor of a Binary Tree III
Data Structures & AlgorithmsMedium

Find the lowest common ancestor of two nodes in a binary tree where each node has a reference to its parent. I initially misread the problem, confusing it with LCA of a Binary Tree without parent pointers (which is similar but different because of Node* parent;), but with a hint from the interviewer, I was able to solve it before time ran out.

Q3
Buildings With an Ocean View
Data Structures & AlgorithmsMedium

Given an array of building heights, return a list of buildings that have an ocean view. A building has an ocean view if all the buildings to its right are shorter. I considered both the right-to-left approach and the monotonic stack for left-to-right/streaming, but the interviewer only required the simpler right-to-left solution.

Q4
Binary Tree Vertical Order Traversal (Modified Output)
Data Structures & AlgorithmsMedium

Given the root of a binary tree, return the vertical order traversal of its nodes' values. The output is different; instead of grouped by the column like [[4],[9],[3,0,1],[8],[7]], I should just output without group [4,9,3,0,1,8,7]. The interviewer also offered another approach that utilizes a hashmap, since my solution only used a vector.

Q5
Insert into a Sorted Circular Linked List
Data Structures & AlgorithmsMedium

Insert a new element into a sorted circular linked list. Initially, the interviewer said the input Node* head would be the lowest. However, I offered a solution where it didn't matter. Later, the interviewer asked a follow-up where the input wasn't the lowest, and I confirmed my solution already covered that part.

Q6
Random Pick with Weight (Country Code & Population Analogy)
Data Structures & AlgorithmsMedium

Implement pickIndex such that it returns an index from 0 to n-1 with probability proportional to w[i]. The problem was described using a country code and population analogy. After some clarification, I understood the problem was the same. It's important to remember that the interviewer won't give you the specific functions; you need to determine them yourself.

Q7
Design Real-Time Facebook Comments
System Design

Design a system for real-time comments on Facebook posts. The core requirements were real-time updates within a thread and pagination. I spent too much time asking questions due to overthinking. I managed to cover the core path, but there were areas I could improve, such as continuing to non-core parts, adding more deep dives, and allowing the interviewer to add some corner cases. I ran out of time. I had never practiced this exact problem before and treated it similarly to designing WhatsApp because of the "real time" aspect.

Q8
Design Facebook Online Chess
System Design

Design an online chess platform for Facebook. Core requirements included handling very high traffic (assume 3 billion users), ability to play online from any devices in real-time, and a leaderboard. Follow-up questions covered Data Race, Record steps, and what if someone / everyone lose the connections during the game.

Q9
Tell me about your most proud project.
Behavioral

Describe a project you are most proud of. This is a common behavioral question.

Q10
Collaboration with many stakeholders.
Behavioral

Describe a time when you collaborated with many stakeholders. This is a common behavioral question.

Q11
Receiving constructive feedback.
Behavioral

Describe a time when someone gave you constructive feedback. This is a common behavioral question.

Q12
Handling barriers.
Behavioral

Describe a time when you faced a barrier and how you handled it. This is a common behavioral question.

Preparation Tips

My preparation involved solving over 800 LeetCode problems (46% Easy, 45% Medium, 9% Hard), with a focused effort on Meta-specific problems in the last 6 months (317 out of 505, including the top 100). My time distribution for preparation was Coding:Design:Behavioral at 70:25:5. After a challenging first Product Design round, I intensively learned about time management and key design patterns for system design, leveraging resources like HelloInterview and Exponent. I recognized that understanding underlying patterns, such as real-time communication design (e.g., WhatsApp), helps in solving a variety of related problems. For behavioral questions, I focused on the STAR method, though I noted a need to improve the 'Result' (R) portion of my answers.

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!