Meta | E4/L4 | Canada (remote) | Apr 2022 [Offer]
Anonymous User
9561

Status: 12 YOE
Position: Senior Software Engineer at a BANK
Location: Toronto, Canada
Date: April, 2022

I dont think I will be able to succeed without the wonderfull leetcode community here, so now it's my turn to give back.

I consider myself an average (probably below average) coder. why?

  • I still have to use my hand to calculate simple calculation like 7+19.
  • I google a lot for little things related to coding. e.g:
    "how to initialize an array of int with values" .
    "how to throw a new exception with String message"
    "how to open and read a file"
    etc
  • some of the medium questions took me entire full day just to understand the question and/or solution.
  • many mental break-down moments in the first 2 months and just wanted to give up.
    (my wife was very supportive. Having someone always be there was definitely my virtue. Hope you have somone to be there for you along this LeetCode journey)

I did around 200 questions on LeetCode. Not a single question I am able to solve by myself.

  • OK I lied! There might be less than 5 questions that I am able to solve, but my codes are very long and messy and lots of nested if-else statements.
    In the end, I always got TLE - Time Limit Exceeded.
    So I gave up to try to solve it myself. I always look at the solutions right away.
  • I basically bet that the interview questions will be in one of these top 50-100 questions of each company I interviewed.
    Which means I really have to truly understand/master all the top 50 questions , including different solutions (brute force included) for each question; Then search and prepare for "follow up" questions

I am a big believer of "human is a creature of habit"

  • so I just keep redoing/repeating these questions at least 5 times for each solution per question.
    (after a while it's kinda stick to your brain)

I spent around 5 months to prepare and complete 2 rounds of FB interview.

  • I have to change my life-style , made lots of sacrifices (like all the leetcode communities here).
  • I have full time jobs (and 50-60 workhour per week is very common in my team) and lots of webex/zoom meetings throughout the day.
  • Only at night that I can start doing my work-related task. So by the time I have free cycle doing LeetCode, it's already 10:30 pm and my brain has shut-down.
  • So I have to change my habit.
    • No more winding down by watching TV at night, so go to sleep early.

    • Wake up every morning at 5 am (or 5:30 am if I hit snooze button 10 times) and start doing the leetcode until 9 am during the weekday.

    • No more spending time with my kid over the weekend and Christmas holiday... just leetcode.

Now if I can do it, you can too. (although I must admit that "luck" play a big part of these interview process )

The Entry
A recruiter found me on LinkedIn and we scheduled an informal chat. Basically just an informal chat to get to know me and what I am looking for.

Technical phone screen (45 mins)

  • one of the "parentheses" related problems in Facebook tag questions

  • one of the "palindrome" related problems in Facebook tag questions (follow up question: one of the HARD palindrome question - doesn't need to code for follow up, only explains my approach )

    my approach in 1st round:
    0.) told interviewer I have seen this question before. (every one of them said it's OK as long as you have not seen this in FB interview)
    1.) explain my idea
    2.) pseudocode
    3.) explain edge cases and complexity
    4.) ask if it's OK to code? if yes, then start coding.

Online onsite :

  • coding #1 :

    • subarray sum equals k (2 scenarios: input are all positive numbers and input could have negative numbers)
    • one of the "Lowest Common Ancestor" problems
  • coding #2:

    • one of the "Lowest Common Ancestor" problems (I got lucky here)
    • merge k sorted array
      (the leetcode uses list, the question I got uses array)
  • System design
    similar to design ticketmaster (but less complicated)

    How I prepare for this part:

    • I purchased "gr**king system design interview" , definitely worth it!
      (this article/course helped me to put a structure to my answer into this open ended question )

  • Behaviour questions:

    • search the Facebook interview questions in google/youtube, you will get lots of sample questions.

    • I mostly look at the sample answers from "CARRERVIDZ" channel in youtube.
      The sample answers are amazing! Not in a million year I would be able to come up with such amazing answers.

Aftermath
I felt I did really bad on the SystemDesign round and one of the coding round.
I was expecting a REJECT, but I received a call 8 days later and they are proceeding with an offer for E4/L4. I guess I got lucky! and super happy that hardwork finally paid off :-)

Wish everyone best of luck interviewing!
Apology if my interview approach offend your ethics.
Like I said, I consider myself an average (or below average), so this is the only way I can pass the interview.
And if I can do it, so can you. :-)

FYI, of course I got rejects too. I got reject from Amazon and Coinbase.

EDIT
compensation link: https://leetcode.com/discuss/compensation/1947177/Meta-(Facebook)or-E4L4-or-Canada-(remote)

Comments (66)