I have three years of experience. I prepared for about two months, spending eight hours a day, solving approximately 300 questions, and conducting numerous mock interviews for system design.
I applied through the Meta careers website and was contacted by a recruiter. All interviewers were friendly and approachable.
Phone Screen:
I answered these questions easily, and we spent the last 10 minutes in casual conversation.
Onsite: Coding 1:
I had solved the first problem before, but the interviewer's representation took me a minute to fully solve it. I solved the second problem in about five minutes, providing a thorough explanation, as I had solved it previously.
Coding 2:
This round was interesting. I solved the first problem quickly, as it mainly involved checking conditions. I had solved the second problem before and was familiar with both heap and quickselect solutions. While I explained the quickselect solution and how it works, I indicated that I felt more comfortable solving it with a heap. I coded a Heap class from scratch, believing this would impress them. I solved both problems completely within the allotted time, but they did not seem impressed.
System Design:
I dedicated significant time to learning about system design/architecture, tradeoffs, and technologies. I had solved this problem before and had many mock design interviews. I believed I performed well, but they seemed to be looking for something more, as they kept asking me to delve deeper. Even when I explained that something was missing, I felt they were not fully satisfied. They concluded by saying, 'it's good we have a working prototype...', but I did not feel confident at the end.
Behavioral:
I connected well with the interviewer and felt positive at the end of the interview.
After about 12 days, I received a rejection email. I am not devastated, but my only frustration is their lack of feedback on what went wrong. After all my preparation, I am unsure of my weaknesses and areas for improvement.
Good luck to everyone.