Interview Experience: Meta | Software Development Engineer | E5
📌 Job Role: Software Development Engineer | E5
🔢 Number of Rounds: 6
📜 Offer Status: Offered
📍 Location: London
👤 Candidate Name: Not disclosing due to signed NDA
Interview Process
The hiring process started with a call from HR, who explained the entire interview process, what to expect, and shared useful preparation resources. The HR was friendly and recommended taking at least a month to prepare, which I found helpful.
Round 1: Introductory Call
Complexity: Easy
Experience:
HR called and gave a detailed overview of the process.
Explained the expectations from each round.
Shared useful resources for preparation.
I requested a month for preparation, which HR recommended as well.
Round 2: Phone Interview - DSA
Complexity: Medium
Experience:
The interview consisted of two medium-level coding problems related to arrays and hash tables.
The problems were standard and could be solved if you had practiced enough Leetcode problems.
Questions:
Medium question - Arrays.
Medium question - Arrays + Hash Table.
Learnings:
Practicing Leetcode questions extensively helps in solving similar problems efficiently.
Round 3: DSA
Complexity: Medium
Experience:
The first onsite round had two questions:
Medium/Hard question - Strings: Required some tricks/techniques to solve but was manageable within the given time.
Medium question - Standard number problem: The only tricky part was handling edge case scenarios; otherwise, it was straightforward.
Learnings:
Pay extra attention to edge case scenarios in number-based problems.
Round 4: DSA
Complexity: Hard
Experience:
The second onsite round consisted of:
Easy question - A standard Leetcode problem that involved strings and interpreting them as numbers.
Hard question - A combination of backtracking and dynamic programming.
I initially panicked when I realized it was a dynamic programming problem, but I broke it down into sub-problems and was able to solve it successfully.
Questions:
Easy question - Strings and numbers.
Hard question - Backtracking and dynamic programming with strings.
Learnings:
Breaking down complex problems into smaller sub-problems can help solve dynamic programming questions more effectively.
Round 5: System Design
Complexity: Medium
Experience:
The system design question was based on implementing a specific feature from an existing Facebook page.
The feature was widely known and frequently used.
My performance in this round was average, but I ensured that my design choices were well-justified.
System design interviews are always subjective, and clarity in reasoning matters more than just technical knowledge.
I strictly used existing technologies and best practices from system design resources.
Learnings:
Be prepared to justify your technology choices in a system design interview.
Round 6: Behavioural Round
Complexity: Medium
Experience:
The interviewer asked a range of behavioural questions, including:
How do you handle conflicts?
How have you dealt with strong criticism or feedback?
What is your most treasured project?
Describe a time when you made a mistake and how you communicated it to the team.
Learnings:
Be ready to discuss various aspects of your professional experience and how you handle challenges in the workplace.
Final Thoughts
The entire process was well-structured, and HR was extremely supportive throughout.
Practicing Leetcode questions extensively, especially focusing on edge cases, helped a lot.
System design rounds are subjective, so being able to justify design decisions is crucial.
Behavioural interviews require preparation to articulate responses clearly with examples from past experiences.
Would highly recommend taking the full preparation time before attempting the interviews.