This interview experience details a virtual onsite interview process for a Software Engineer E6 position at Meta. The process consisted of six rounds: two coding rounds, one behavioral round, and three system design rounds. Each round lasted 45 minutes.
Day 1: Two Coding Rounds and One Behavioral Round
Round 1: The first coding question was a medium-difficulty problem: Binary Tree Right Side View. The candidate discussed and implemented a recursive DFS solution, explaining the time and space complexities. The second question was a hard problem: Making a Large Island. The candidate explained a brute-force approach and then an optimized solution using a hashmap to store area information. The candidate coded the solution and performed a dry run.
Round 2: The first coding question was a modified version of Find Largest Value in Each Tree Row, asking for the smallest values instead. The candidate modified their previous solution, discussed time and space complexity, and addressed follow-up questions about handling limited stack space and optimizing for repeated API calls using caching. The second question involved implementing an iterator for a list of k sorted lists, returning the next minimum value. The candidate presented a priority queue-based solution, explaining the time and space complexities and coding the solution.
Round 3: This was a behavioral round with informal questions about meeting discussions. The candidate adapted their prepared answers to address the questions.
Day 2: Three System Design Rounds
Round 4: The candidate designed a simplified version of Instagram's image upload and feed functionality, covering functional and non-functional requirements, core entities, APIs, high-level design, and a deep dive into specific aspects like image storage and feed generation.
Round 5: The candidate designed a simplified version of Dropbox, focusing on file sharing and syncing across devices. The candidate explained their design, addressing follow-up questions on file storage and sync mechanisms.
Round 6: This round involved designing an auction system with two interviewers. The candidate completed the round, although they had not prepared for this specific topic.
The candidate self-assessed their performance in each round. Two days later, they received notification that they were moving to team matching.