Facebook | E4 | Menlo Park, CA | May 2020 Offer
Anonymous User
2134

Contacted by a recruiter over linkedIn, expressed my interest towards facebook...
I am a MS CS graduate (Feb 2020) with 5 years of experience, 3 offers were postponed in march due to covid, was interviewing with Amazon at that time.

Currently - Have offer from Amazon for SDE2 seattle.

Interview with Facebook: (Each round has max time of 45 min)

Phone Screen 1:

  1. Verify Alien dictionary https://leetcode.com/problems/verifying-an-alien-dictionary/, easy completed most freq leetcode question
  2. Subtract two large number with floating point(followup) given as string, completed the solution, for the first one, followup just talked about how can we handle it

Phone screen 2:

  1. Matrix Antidiagonal Traverse
  2. https://leetcode.com/problems/minimum-remove-to-make-valid-parentheses/ talked about two approaches, implemented one of them

as both question were easy, interview concluded within 20 min including discussion, i thought there will one more question but he said he do not have any more quetions.. good for me

Virtual onsite:

Interview 1:

  1. find a path in a matrix (any length) if exist to reach from top-left to bottom-right, if does not exist return -1, matrix has few cell with status blocked means you can go into those cells
    Done using dfs as any path would suffice and I can build the path with dfs traversal

  2. Follow up of the first one now find me the sortest path instead of any.
    Used BFS, and with bfs moved on generating child to parent links using dict(), once bfs stops, generate the path from dict()

  3. https://leetcode.com/problems/find-the-celebrity/ (premium)
    Famous person, if you have given list of pairs such as (u,v), which denotes u knows v, (directed edges), find a person if exist where everyone knows him and he dont know anyone
    It was a simple graph question which can be done using indegree and outdegree

Interview 2:

  1. https://leetcode.com/problems/minimum-window-substring/, done
  2. https://leetcode.com/problems/powx-n/, done using recursion

Interview 3:
it was a behaviour round with situational and past experience based quesitons,
one coding question:

  1. Variation of https://leetcode.com/problems/string-compression/
    example : input ['A','A','A','A','B','C','C']
    output = [4, 'A', 1, 'B', '2','B']

dont worry about the cases where compressed string will increase the size instead of reducing,
did in python, which interview did not had a experience working with, so end up expalining a basic python stuff like range, append, if input, when will it be true etc

Interview 4:
System design:
Design a system which host contests, think of it as design leetcode.

  1. Design tables
  2. Design API's
  3. Design High level component and how will they communicate with each other

Don't consider it as component design on top of existing platform, its a new application so you have to handle everything like user base, questions base, registration to contest and to applications etc etc

Restriction:
Only 10000 users can participate in a contest
There will always be only one contest running at any moment
Note: Asked about the other requiements like do you want me to keep past contests submission, Interviewer told me to think about it and tell him what will I do, any question I could think of to clarify the requirment has expanded my scope, which caused a huge issue while working on database schema's and tables

completed high level design, components, Tables and database, did not get time to completed API design.

Current state:
Recruiter told me they wont be considering me for E5 (which I had not intentions to anyways, but I believe it was due to average perfomance on design round), feedbacks are with hiring committe, lets see...

Update:
Got the offer, and I declined it due to salary negotiations, but I told the recruiter I would like to retry for E5 in 6 months.
Salary negotition took hit due to design round average performace, will be working on it.

Hope it helps.

Comments (2)