Current Position: Senior Software Engineer | Non - FAANG | MNC
YOE: 4.5 years
I went through a typical interview process at Facebook with 1 phone screen and 4 rounds of on-site (virtual) interviews. This was my first FAANG interview experience. I am really happy that I cleared the interviews. I would now love to share my experience with the community.
-
Recruiter reached out to me over LinkedIn and discussed the oppurtunity.
-
Phone Screen: 2 coding questions with easy/medium level difficulty in 45 min. Solved the first question perfectly. For the second question, I could not come up with the most optimial approach: my solution was not constant-memory solution. Within couple of hours of the interview, the recruiter informed me that the feedback was positive and I will be moving to the next rounds.
-
On-Site (Virtual):
- 2 coding rounds with 2 questions and 45 min each. I was lucky enough that all the questions were of easy/medium level difficulty IMO. I solved all the questions perfectly except one, in which I used hints from the interviewer.
- In the design round, I fumbled over the calculations in the beginning due to nervousness [I never appeared for a design round before]. Later on, I did come up with the design after doing all the requirement gathering/clarifications. In the end, I felt I should have better prepared for this round.
- Typical behaviour round with questions about past experience.
My preparation: In all honestly, I do not like grinding competitive programming questions. Last year [before this opportunity] I tried practicing questions on Leetcode for few months but felt that I was would never be able to cross the "FAANG bar". So when I commited myself for this interview, I only focussed on the bare minimum: necessary Leetcode practice and basic DS/Algo concepts through other resources [non starred CLRS chapters] and free online resources for design questions. I feel lucky to not get any unfamiliar hard level question. I doubt If I would have solved it in 15 min alongwith all the edge case handling.
Advice: [Disclaimer: Take each advice with a grain of salt. I don't know you personally and I am not an expert.]
- Everyone has a different academic, private and professional background so laydown a preparation plan that fits you. For example I did not have prior professional exposure to system design's scalabiliity or live ops challenges. So I had to spend considerable amount of time on it. I thought I could work out easy/medium coding questions well so was little relaxed in the coding rounds.
- Choose each preparation resource carefully. You may not have the time to go through all of them. It was challenging for me to find preparation time and do my current job without missing out personal commitments. I chose Leetcode practice/discussion for coding and system design primer [github] for design round.
- Leetcode discussion section is a gold mine. I spent more time on reading and understanding other's solution/analysis than actually working on a quesiton. So go through the discussion section of a problem even if you have successfully solved it.
- Always think about the time complexity, edge cases, test cases and exception handling in prod environment for each question. The interviewer will definitely ask these questions for a coding problem.
- Practice dry running your solution so that you can effectively do it in the interview without wasting time. I traced all the variables' value in comments after each statement.
- Be transparent with the recruiters. Ask them about the expectations in each interview round. I found Facebook's interview very streamlined and the recruiters to be very helpful. Be open about the time you need for preparation. I took about 1.5 month of time for the on-site rounds.
- Be visible on LinkedIn. Do not waste time on it but try to be reachable. I do not spend time over linkedIn posts [like,comment or share] but I try not to miss any message or connection request. I applied to many job posting in various companies's career sites but ultimately it was over LinkedIn that a recruiter reached out and gave me an interview opportunity.
Please ask if you have an question or need clarification.
Good luck!