Facebook | SWE | Seattle | Nov 2020 [Reject]
Anonymous User
5390

Hey guys,
I want to thank everyone who has been posting their interview experiences, and I hereby would like to return the favor.

First, I will quickly share the tips/learnings that will help you all who are preparing. This is more important than the questions I get, or my background. Then if you have time, you may proceed to read my experience at the end.

Lesson 1: Destroy that damn RUN CODE button in leetcode.
I have prepared the wrong way and probably all of you too. I would take a problem, think for a bit how to solve, then start writing code, incrementally complete step by step, run every once in a while to see if the desired output are coming, then test a few times with few cases, and finally hit SUBMIT.
This left me feel so handicapped in the real interview cuz you cannot RUN your code. You have write once that will JUST WORK and test with your EYES. This threw off my rhythm because of how I prepared.

HOW YOU PREPARE > HOW MUCH YOU PREPARE

Lesson 2: Prepare to face interruptions and distractions from the interviewer
At the start, the interviewer mentioned he will be constantly typing as we do the interview and it's normal. But it definitely threw off my rhythm because when you are at work, or when prearing on leetcode you are in this silent, zero-distraction mode as you focus on your coding. Now someone asks you random questions in between, Why is line 21 doing this, or I don't see you pushing to the stack anywhere in this for loop, and then proceeds to start typing on his computer. He may be trying to help you, or didn't wait long enough for you to finish up your work properly. But you are now left thinking what he may be typing instead of completing or fixing your code. This brings us to my next lesson.

Lesson 3: Practice to code common patterns like a Ninja
There are certain coding patterns that are frequently used when solving leet code problems. This can be a binary search, or sort, or traversing a tree (my case). You want to be ruthlessly clinical about finshing this part of the code quickly. I had some hiccups performing a in-order-traversal because of lack of practice. You should be able to complete this part of your code your EYES closed, which only comes with serious prep. This bring us to the next lesson - Prep Time.

Lesson 4: Don't be shy to ask the recruiter more time
The recuriter offered around two weeks to prepare, and I borrwed additional two weeks since I was super rusty. Though I prepared for a month, I fell short. One of our recent interview experiences posted here quoted this, which was so true.

During tough times, You don't rise to the level of expecations, you fall back to your level of training

If you haven't prepared very strongly, then during the interview you cannot magically go one level up. It's quite the opposite, you will be slightly below your average. Be sure to ask the recruiter even 3 months time if that's what its going to take to be ready.

That's all I had to share, and I hope it helps. good luck to all of you guys preparing hard out there. I wish you all very well, and happy holidays!


My interview story, if you are still reading up till here~

I have 13 years of experience, and I hadn't given a single interview yet in the entire 2010-20 decade. A kind facebook recruiter reached out to me on linkedIn if I wanted to give a shot, and while I first didn't respond, I later agreed to proceed. I haven't been leetcoding at all, and I was at a level where I would use two for-loops to solve the two-sum problem. I knew it's hard but I wanted to still take the opportunity so I can experience how it is like firsthand, and gauge where I'm at. After all, many qualified engineers can't even get a FANG interview, so I felt lucky I even had the chance.

While I knew at the start, I had less than 10% chance of success, I didn't give up. I prepared sincerely anyway. I doubled the two weeks the interviewer offered and got 4 weeks to prepare. Facebook does a fantastic job of detailing out what to expect in a interview. They really want you to succeed. They provide several links on resources, data structures, videos of mock interviews etc. I am zero at system design principles, and spent zero time even learning about it because you may not need it for the initial phone screen. I used it all for coding prep. My expecations were simple. If I can somehow just pass the phone round, I can get more interview experience (5 additional interviews - virtual onsite) so I aimed for that. If I eventually got an offer, that had be the ridiculous thing to ever happen so I dreamt about it but wasn't riding too high on hopes.

Preparation: I knew I cannot solve 500 problems so I went for breadth instead of depth. I would solve 5-10 problems from each data structure so I have a better chance of success. I spent anywhere from 6-8 hours a day over 4 weeks studying and solving different leetcode problems. I always enjoyed coding since high school so this was extermely tiring yet fun. I had severe eye strain, how to do my regular day job on the computer, plus this preparation. Also being with my family, kids in the house was a added challenge/distraction. If you are single, or away from your family for whatever reason, make the best of it and prepare well. This time is pure GOLD.
I bought Leetcode Premium and that was super helpful, especially the mock interviews part. Nothing beats real human interaction so I took some mock interview sessions on the pra-mp website and it was super helpful. Be sure to take this 'free' ride if you haven't interviewed in a while.

Actual interview: The recuriter mentioned I may need to solve two medium LC problems in 45 minutes, and the real interview was no different, except I didn't even get to the 2nd as the time ran out. Many expriences I read about facebook were saying how the interview started right away, but in my case the interviewer spent few mins talking about his work, and I did the same. I Lost few mins on the clock before I got the first question. Interviewer asked a Binary search tree problem where I had to rebalance a tree. I did solve a similar one couple days ago on leetcode where we serialize and deserialize a tree, so I expained a similar approach and interviewer agreed.
I had difficulty drawing out a tree because that part of the coderpad website wasn't working properly as Interviewer couldn't see my drawings for some reason. I lost some more time and I wished I was in a in-person interview with a whiteboard instead. It was a hassle but I wanted to make sure I threw few examples out there and explain my reasoning before beginning to code. I knew I am not super strong yet in coding so I wanted to do the other parts of the interview such as giving mutiple examples, test cases, communication, asking clarifications extermely well.

We proceeded to code. It was definitely already late when I began, and if you read my lessons learnt at the start of this post, you knew I couldn't complete the problem. I first tried to solve it iteratively, had some difficulty getting some of the pieces right, so I switched "strategy" and turned to solve it recursively, spending even more time. It was clear to the interviewer that I am not yet there by then, and he would have written some feedback like Poor dude, can't even traverse a tree properly. Turning to a brand new recursive approach with ten mins left on the clock was a bad idea and it showed lack of confidence and preparation. The inteviewer had me stop trying in the end to use the final five mins for questions. I asked a couple questions, and the interview ended. Interviewer was polite, and attentive.

He probably had a second question but we never really got there. I was embarrased I couldn't complete because it was a problem I knew the answer to but I blew it. Later that night I sat down to try it again, I easily wrote the recursive part in 3 lines, in under 5 minutes. It was indeed easy. It was a good experience overall and while I felt bad for 2-3 days, my confidence level of cracking a FANG interview has only gone up since. I know where to improve and now, you do too!

Once again, just remember,
HOW YOU PREPARE > HOW MUCH YOU PREPARE

Cheers.

Comments (26)