Hey!
I have learnt so much from Leetcode and like a lot of people I promised myself that I would share my interview experience if I end up with an offer from FB.
Background
I graduated from a Tier 1 college from India with a CS degree. FB has been my dream company ever since I started my career in early 2010s.
Attempt #1 (Phone Screen Reject)
Attempt #2 (Onsite Reject)
Attempt #3 (Phone Screen Reject)
Attempt #4 (Offer)
Few months in to my new job, It's a very good company and I was making pretty good money as well. I decided to go all in on the process and try and give my best for FB. Looked at all the mistakes I made in the past, didn't rush to give the interview, I decided to fully spend time on prep. So spent about 2 hours everyday on leetcode, worked my way from Easy to Mediums to Hard. Focused on speed as FB requires you to solve 2 problems in 45 minutes. Did about 250 LC in total.
Phone Screen
Question 1: Fairly common problem related to strings [Medium]
Question 2: Again a top problem related to arrays with a twist [Medium]. Figuring out the twist part was the hardest. Spent about 15 minutes thinking about the optimal solution and coded it in the last 3 minutes.
I felt I did well and I was called for an onsite after few days and I had 5 rounds
Onsite Coding 1 [HIRE]
Question 1: Common problem related to heaps [Medium]
Question 2: Not a top problem but this is easily solvable [Easy]
Did Really well on this round.
Onsite Behavior [Strong HIRE]
Questions about my past experience etc. I spent about 4 hours thinking and writing down all my past work. That helped me do really well on this round.
Onsite Coding 2 [NO HIRE]
Onsite System Design 1 [Weak Hire]
I felt I got a tough design problem here. I didn't do particularly well here. Explained the concepts and everything but my design was not race condition free.
Onsite System Design 2 [Hire]
This was a fairly simple related to ranking items. I had worked on similar systems in the past so it was pretty straightforward for me.
Verdict
After the interview, I was pretty confident that I will be rejected again and decided to chart a plan to make another attempt next year. But to my surprise the recruiter contacted me and mentioned that I will be getting an offer from FB. yay!
Final Thoughts
Preparation is super important. Interviews can be stressful, try to stay calm. Use the resources of Leetcode extensively. I saw about 100 FB tagged problems with a mix of easy, medium and hards. Regarding system design, practice with a pen and paper and do a lot of mock interviews with your friends.