Got a referral through a friend who worked at Meta, which sped up the entire process. After a casual initial chat, I went through a technical interview where I faced a DSA question about validating palindromes. The interviewer was friendly but rigorous. During prep, I had spent time with the coding challenges on PracHub, and it was funny to see a similar palindrome question pop up. Overall, I received an offer, but ultimately decided to decline it after careful consideration.
Interview questions [1]
Question 1
Given a string s, return true if it can be a palindrome after deleting at most one character (Valid Palindrome II).
Got referred through a friend at FB. They contacted me 1-2 weeks later via email. Set up a phone chat that the recruiter initially missed, but we rescheduled. Once we had a phone conversation she said they can move really fast: ~1 week to make an offer.
I went on site for a first round interview (since I'm local to the area). The interviewer was nice. She asked me to describe what I work on now. Then we jumped into two coding problems. I interpreted the problem as a Hamming Distance problem and asked if it was, she kind of shrugged it off -- I don't think she knew what Hamming Distance meant. I coded a solution on a laptop (new trial process they were doing), but it turned out we were not talking about the same problem. In retrospect, the problem she was describing was Levenshtein Distance. I had the feeling she only knew the solution to the problem because she had the answer sheet.
The second problem was another classic DP problem. Finding the sum of 1's in a submatrix. I went on to describe the recurring relation for the subproblem in the linear case. She didn't want me to do that and she quickly said the solution to the 2D case was a generalization of the 1D case.
Because of the novelty of the laptop in the interview and the misunderstanding of the initial problem, the recruiter fought for me to do another phone screen even though the first one didn't go that well.
The second interview I opted for a phone interview. This time the interviewer seemed more knowledgable and came into FB through an acquisition. I was asked what I work on now and some hard problem I solved in the past. Again two interview questions were asked (using collabedit). The first was to list out all the paths in a binary tree which was simple. I did make some mistakes and corrected it in the code as we talked through use cases. The second problem was checking if a string was a palindrome for strings with symbols and spaces in them which again is easy. I did solve both problems, but in the beginning the interviewer stated he's looking for accuracy and performance. My tree traversal was a simple preorder traversal using recursion and the palindrome involved one loop.
Apparently the second interview did not go well even though I provided correct solutions in both. I guess the interviewer was serious when he said he's looking for correctness -- I guess you need to be able to code compilable/error-free code in a text editor.
The recruiter and onsite coordinator were very helpful and the interviewers were very friendly. However, the style of FB interviews seems to be that you should study and know by heart common interview puzzles/algorithms/DP problems and be able to reproduce that error free.
Interview questions [1]
Question 1
Levenshtein Distance, Sum of 1's in a submatrix, Print all paths of a binary tree, Palindrome
Recruiter call was pretty standard, first round was 2 Meta tagged LC mediums in 45 minutes. On-site was 2 coding sessions of 2 LC mediums, a system design interview and a behavioral interview with an engineering manager.
Interview questions [1]
Question 1
How do you answer if someone asks how long a deliverable or project will take?
The entire process usually takes 3–8 weeks, depending on scheduling and the specific role. Coding interviews heavily emphasize common DSA topics such as arrays, strings, trees, graphs, BFS/DFS, heaps, hash maps, and dynamic programming. System design becomes increasingly important for E4+ positions.
Interview questions [1]
Question 1
Given an array of integers and a target value, return the indices of two numbers that add up to the target