Facebook London | March 2020 [Offer]
Anonymous User
13849

YoE : 1
Current Position : Software Engineer 1 (E3) at Non-FAANG, India
Can't disclose exact question due to NDA signed

I had applied for E4 position at Facebook London in January, 2020 via referral.
I was contacted by recruiter around 15th January to get to know my background and work I have been doing with my current employer. He scheduled first phone screeing around second week of February

Phone Screening:
1 easy, 1 medium LeetCode based questions, both on Arrays (2 pointer approach)
I was able to give most optimised solution for both the questions with fully functional code.
Was asked about Time / Space complexity. I was also asked to think of corner-cases myself and whether or not I need to change code for handling them. My code had already covered the cases and didn't require changes.

Remember : You need to write error-free code without much help from interviewer and think about corner-cases while writing the code.

I was contacted by recruiter that I had cleared the Phone Screening and was invited for on-site interview at London office around March end. Due to coronavirus outbreak, I recieved a mail stating its converted to virtual interview.

There was roughly 1 month gap. While preparing, I didn't feel much confident about system design round which I mentioned to recruiter, so, he setup a call with Facebook employee to get to know his experience and clarify my doubts.

There were 4 rounds for on-site:

Round 1 :
1 easy(Array), 1 medium(Trie) LC based questions
Was able to code both in the first try.
Was asked a lot of follow-up questions covering a lot of possibilities, was able to tackle all of them.
Complexities and corner-cases were asked.

Round 2:
System Design
Was asked a hard system design question, but I had practiced it earlier by discussing it with friends, so was able to give a good design. Interviewer was quite experienced and asked questions around having single point of failures, why didn't you go with alternate options, if any. I was able to give answers for those questions and was really fun designing the given problem.

Round 3:
Behavioral Round (Jedi Interview)
The interviewer was quite experienced and asked standard questions regarding past works, issue handling, confronting manager, etc.

Round 4:
Coding Interview:
1 medium (Tree) , 1 medium-hard (String) LC based question
For medium question, I was able to directly give the most optimised solution covering all corner cases.
For String based question, I gave a solution that required bit more space than the most optimised one, mine required O(2n) space, interviewer expected O(n), however, after a minor hint from interviewer, i was able to get to that expected solution.

After a week, I got a mail from recruiter stating I was rejected for E4 role. I was confused as all my rounds went really well. About 3 days later, I again got a mail stating I have been looked for a different position. I setup a call to get the detailed feedback in which recruiter stated that my technical rounds (both the coding rounds) and system design round went exceptionally well and had really good feedback. However, in jedi interview, the interviewer felt that I didn't have enough work experience to be considered for E4 position. So they are considering me for E3 position. But since there were no openings for E3, SWE, I was asked to be part of EE (Enterprise Engineer). Enterprise Engineer are Software Engineers that work on internal tools. Payscale and level is similar.

Key Points:

  1. Give most optimised solution to coding problems. Even if its O(2n) v/s O(n) (both are basically O(n)), they would prefer O(n).
  2. Practice your interview skills by asking a friend to take your interviews.
  3. Practice on whiteboard, especially for System Design
  4. Drive System Design interview, 80% of the time, you should be talking.
  5. Facebook interviewers are really helpful. They want you to succeed.
  6. Keep calm and think before you speak.
  7. Don't use random jargons, especially in system design. If you mention certain technique/technology, you have to explain it in detail and why that should/shouldn't be used.
  8. For system design, I used Grokkin the System Design Interview Course
  9. For Coding rounds, I had solved roughly 380 leetcode questions, if you're not able to solve a lot of questions, try solving questions asked in facebook in past 6 months (there are roughly 270).
  10. Prepare well for behavioral round too.
Comments (25)