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: