The first call was with the recruiter, who was interested in why I was looking for a job change, why Facebook, and similar questions.
Initial Phone Screen Round (Coding), followed by onsite rounds.
Onsite Round:
Coding: Standard data structures and algorithms can be used to solve coding/problem-solving questions. Time and space complexities were discussed.
Phone Screen:
In the Phone Screen round, two coding questions were asked to be completed in 40-45 minutes. In one of the questions, I was aiming for the most optimized approach, but the interviewer was happy with a semi-optimized approach as well. Therefore, discussions during the interview are important.
Virtual Onsite Rounds:
System Design Round: Was asked to tackle a very specific High-Level design problem in 40-45 minutes. I think I got the logic right, but as I was preparing these types of questions on a very generic level, like the ones we see on YouTube or blogs, I guess I wasn't very structured in my answer when the question was about a very particular problem, not a general "design a system" question. Although the interviewer seemed satisfied with the approach, sadly, it was mentioned in the feedback that I failed this round. I expected that I had done pretty well in this to pass it.
Behavioral Round: This was a normal behavioral round where they tend to know, in around 40-45 minutes, if you culturally fit into Facebook.
First Coding Round: Again, two coding questions were asked in around 40-45 minutes. The level was slightly higher than the phone screen round. It went pretty smoothly for me, and I successfully passed it too.
Second Coding Round: Similar to the First Coding Round, but this time my experience was not as good. I was pretty confident that I proposed the best solution for the first question, but I guess the interviewer found it hard to understand my approach. He asked me to explain it multiple times through different examples and then asked to implement it. Although he sounded satisfied with the approach at the end, he asked me to come up with some test cases, but he didn't propose any test case from his side where my approach could fail. In all this, I lost around 30 minutes of the allotted 45 minutes. The interviewer quickly jumped to the second question (I guess there's some unsaid rule in Facebook coding rounds where the interviewer has to ask two coding questions). In the second question too, although I came up with the optimized solution after some healthy discussions with the interviewer, he again asked to optimize it further. At last, as time was running out, he asked to implement the solution. I guess not even 5 minutes were left, and I had to implement the complete solution. As expected, my solution remained incomplete. At last, I asked the interviewer what could be a more optimized approach than this for the second question. He told me an approach. I didn't argue then, but on analyzing his approach afterwards, I think it is not optimizing the solution in any better way.
Although I expected that I could pass the second coding round too, as I came up with a solution for the first question and my approach was somewhat correct for the second question too (that's why the interviewer asked to implement it), it was not the case, as I failed the second coding round. I had the feeling that in my second coding round, the interviewer was kind of reluctant about the approaches he had in his mind, although I might be wrong. Anyways, I was confident in my approaches, and I cross-checked them over the web after the interviews.
Learnings: For Facebook, focus more on System Design skills. In coding rounds, approach and the way of thinking count less; what counts is your solution, and in some cases, the solution the interviewer is expecting. Try to come up with perfect solutions for both questions in the coding rounds within the allotted time.
One should generally discuss the approach while implementing solutions, but this could also depend on the type of interviewer; some may want you to work silently for some time and then discuss the approach.
Coding questions were not of a level where the most optimized solution would be difficult to come up with; they can be cracked with some thinking and sometimes with healthy discussions with the interviewer. But again, I felt in Facebook interviews, time is a major factor. You have to come up with complete solutions for both questions in the given time, and in the process of coming up with solutions, also discuss the approach and the complexities.
The following metrics were computed from 147 interview experiences for the Meta Software Engineer role in London, United Kingdom.
Meta's interview process for their Software Engineer roles in London, the United Kingdom is very selective, failing most engineers who go through it.
Candidates reported having very good feelings for Meta's Software Engineer interview process in London, United Kingdom.