Status: Experienced (17+ yrs)
Position: E6
Location: Seattle, WA
Date: Oct 19, 2020
Facebook recruiter reached out from LinkedIn during end of Aug 2020. Scheduled a phone screen with one of the hiring managers from Bay Area.
Initial Technical phone screen (45 min) with a hiring manager: Around Sep 14 2020
Result: Passed
The recruiter reached out saying the hiring manager wanted to proceed with second phone screen with a deep dive coding interview.
2nd technical phone screen (45 min) with a Sr. Sofware Engineer: ... Around Sep 21 2020
Result: Passed
The recruiter reached out requesting schedule for Onsite interviews.
I took almost 4-5 weeks to prepare. (I am on a parental leave as well :))
Onsite (4 rounds): Oct 19 2020
Round 1: Ninja coding
Algorithm Question 1:
There is a lock with 4 keys and each key is a set of digits from [0....9] where the lock could be opened by moving the keys one at a time both forward and backward [9 to 0] and [8 to 9] etc. The initial key combination of the lock is always [0000]. Given a target key combination such as [2101] find the minimum number of times the keys need to be turned to open the vault.
Took sometime to find the solution and completed and validated the code in 30 minutes (Bit slow in arriving to the solution)...
Algorithm Question 2: A variation of the same problem above
There are set of dead end keys where if any of the combination is arrived the lock cannot be opened. Find the minimum number of operations required to acheive the target.
[0000]->[2101]
dead ends = [1000, 0011, 1011]... etc
Solution Provided: Use BFS to generate intermediate keys and check against the set of dead ends.
Ran out of time coding the solution but had some pseudo code as per discussion with the interviewer. The interviewer seems to be agreed with the approach.
Round 2: Jedi round (A hiring manager)
Round 3: Ninja coding
Round 4: Behaviroal + System design
Result: ...[Reject]
Feedback being techical skills not at par with the expectations.
I believe Round 1 slowness in code complete and Round 4 not giving expected answers to the second constraint could be the reasons for the red flag.
Lesson's learned:
I would say practice more such that you can detect the patterns from the questions being asked and that would save time and increase speed. Also do more research on the company's products/services that helps in sys design. The last round was from an engineer at Whatsapp and they are expecting the candidate to know about some sort of design/architecture of their products (I was able to look online after the interview to know what techiniques are used in this case 2nd constraint) and deep dive into various architecture models like client/server, microservices, monolithic, distributed computing etc.
Finally a bit of luck as well, as there is a possibility of elimination at each round. However, I enjoyed the interviewing experience and thanks to leetcode commuity for providing a platform to help candidates succeed. I would continue practicing and continue with my quest of possible new opportunity.... All the best to all of you who are preparing for interviews..