RejectedSenior Software Engineer at Meta
- Difficulty
- Process took
- 5-6 Weeks
- Rounds
- 4
- Format
- Remote
- Applied via
- Referral
How it went
- It's a tough pill to swallow, especially after investing 1.5 months and feeling like every round went perfectly.
- The lack of specific feedback from HR makes it harder to know where the gap was. It can really break your spirit, but you have to remember that sometimes it's just a matter of fit or bad luck on the day. All you can do is pick yourself up and keep moving forward. Life goes on.
What they would tell you
- It's a tough pill to swallow, especially after investing 1.5 months and feeling like every round went perfectly.
- The lack of specific feedback from HR makes it harder to know where the gap was. It can really break your spirit, but you have to remember that sometimes it's just a matter of fit or bad luck on the day. All you can do is pick yourself up and keep moving forward. Life goes on.
How to prepare
- For coding rounds, perfection is the standard. Practice until you can quickly identify the optimal data structure and algorithm for medium, hard problems.
- Master different patterns like sliding window, advanced tree traversals, and dynamic programming.
Their background
I'm a software engineer with extensive experience in designing and building large-scale distributed systems. Throughout my career, I've had the opportunity to lead backend development for several consumer-facing products, focusing on scalability, performance, and reliability. I'm proficient in multiple programming languages and have a deep interest in system architecture and tackling complex algorithmic challenges.
Round by round
- 1
DSA 190 min
The first round started off with two pretty challenging LeetCode-style questions. The first was a tough string manipulation problem, "Minimum Window Substring," which required a solid grasp of the sliding window technique. I talked through my approach, explaining how I'd use a hash map to track character counts and efficiently slide the window to find the result. The second question, "Minimum Remove to Make Valid Parentheses," was a bit more straightforward, and I used a stack-based approach to track and remove the invalid parentheses. I felt I coded both solutions cleanly and communicated my thought process well, discussing time and space complexity for each.
- 2
DSA293 min
The second coding round also had two problems. It began with a classic tree question, "Sum Root to Leaf Numbers," where I used a recursive DFS approach to traverse the tree and calculate the sum. The follow-up was the really tricky part: I had to compare two linked lists where each node contained a character array instead of a single character. This tested my ability to handle complex data structures and edge cases cleanly. I had to manage pointers for both lists and within the character arrays, making sure my logic for comparing the "logical" strings formed by the nodes was robust. I felt I nailed the logic and wrote bug-free code.
- 3
System Design60 min
This was the system design round, and the prompt was to design a coding competition platform like HackerRank or LeetCode. I started by clarifying requirements: user roles (competitors, admins), team formation, submission handling, real-time leaderboards, and scalability for thousands of concurrent users. I sketched out a high-level architecture, including a submission queue, a set of sandboxed judging servers to run the code, a database schema for storing problems, submissions, and user data, and a caching layer for the leaderboard. We went deep into API design, database choices (SQL vs. NoSQL trade-offs), and how to ensure the leaderboard updated instantly without overwhelming the database. I thought the discussion was solid and I covered all the key aspects.
- 4
Behavioral45 min
Normal behavioral questions was asked(e.g., "Tell me about a time you had a conflict," "Describe a complex project you led.")
What came up
A candidate-reported account, lightly edited. Interview processes change by team and date.