Facebook NYC Onsite Interview Experience
Round 1: Went through my work experience and resume, got asked a bunch of soft questions like what was my most impactful work project, how I’ve dealt with technical difficulties, who my least favorite manager ever was, etc. Then did a simple whiteboard code exercise.
Whiteboard question: there’s some function that can “compress” strings like FACEBOOK -> F6K or FACEBOOK -> F2E2OK or INTERNATIONALIZATION -> I18N. The compression mechanism can delete arbitrarily many characters and replace them with the deleted character count. Write a function that takes a compressed string and a plaintext string and determines if the compressed string is valid for the plaintext string.
Round 2: Two whiteboarding questions.
Question 1: Write a function that takes a sorted list of integers and a target value k and counts the number of occurrences of k in the list.
Question 2: Find the maximum path sum in a binary tree.
Round 3: Systems design question asked to architect the backend for a photo system that has 100 PB of photo data and 500M active daily users. The interviewer went into a lot of detail expecting me to give exact numbers for CPU usage, memory usage, bandwidth numbers, exact hardware specs, etc. This kind of tripped me up because there was a lot of mental math on numbers with big exponents and I didn’t know all of the numbers (e.g. disk bandwidth) as well as I could have.
Round 4: Systems design question asked to architect a streaming video service like Hulu or Netflix. The system should enforce user subscriptions and limit logins to a fixed number of devices. This question differed from the previous one mostly in that we went into a lot more detail about how to manage things like authentication securely, how to architect a data pipeline on the backend, how caching should work, how to implement sharding, how to make the system HA, etc. So compared to the previous question, it was a bit more high level and less numbers oriented.
Round 5: Three whiteboard coding questions.
Question 1: Maximize profit for buying and selling stock given a series of price vectors (“Best Time To Buy And Sell Stock II” on Leetcode).
Question 2: Given m sorted arrays, find the k-th smallest value.
Question 3: Binary search in a sorted, rotated array