I applied online. The process took 1 day. I interviewed at Meta (Menlo Park, CA)
Interview
I had chosen to go onsite for the facebook recruiting process, so I interviewed at the Menlo Park HQ office. For the first fifteen ish minutes their engineer asked me about my background, some interesting problems I had worked on on Android etc.
Then he asked me Leetcode medium question based on trees. I'm the sort of person who likes to take the time to understand the problem better, talk about possible approaches and agree on a solution, but in this case the interviewer seemed like he just wanted a solution as quick as possible. I took about 30 minutes to code and to test the edge cases. The code was perfect, and I was figuring out edge cases along the way by testing but the interviewer just kept interrupting me - giving me hints and edge cases and I hated that.
He then proceeded to ask me a second question - a variation of a leetcode medium question that can be solved in linear time by using a "trick". If you try to normally solve this problem the first time you're not going to solve it optimally or take some time to think about it (which is what happened to me). I told the interviewer the solution and I started to code, but could not finish the problem.
Needless to say next day I got a reject.
If you're going to do a phone interview at facebook this is what I have noticed (and feedback from friends who went through the same):
1) You need to finish Leetcode. There is no better way to say this but they want a monkey who can spit out code. They're really not interested in how you work your way through the problem or optimize it.
2) Don't waste time thinking about how to solve the problem. The interviewer will just scribble in their notebook if you do this and flag you for slow coding. Again - spit out leetcode.
3) You will either get 2 mediums or 1 easy - 1medium for a phone screen.
4) You are responsible for keeping track of time. The interviewer will not rush you but if you go over the 20 minute unofficial limit for leetcode mediums, bye bye.
This is not a company that care about how intelligent you are but how fast you can spit out code.
I applied through a recruiter. The process took 3 weeks. I interviewed at Meta in Mar 2019
Interview
I was reached out to by a recruiter asking if I was interested in sending over my resume/interviewing with Facebook. Within an hour of e-mails I had my first phone interview scheduled. It was scheduled for only about 45 minutes, about 30-35 of that reserved for programming problems. The problems were done with coderpad while on the phone, speaking to the interviewer. The first interviewer was really polite and sounded excited about the interview. As with any programming interview, I spoke out loud my thought process and the interviewer was interacting a lot with me along the way, it made me feel much more positive and made me forget about any lingering anxiety. After the weekend I learned I had made it to the second round of phone interviews. This interviewer sounded much less excited, I really got the vibe that they didn't want to be doing this. Where the first interviewer would interact with me, this one was almost a brick wall, and let me waste 5 minutes of our conversation looking for bugs (there was one in my code, the other "bug" was due to their lack of knowledge in my chosen language). At the end, we ran out of time and I didn't get to ask many questions. I felt kind of strapped for time near the end of both interviews, but the second was much worse.
Interview questions [4]
Question 1
Given a list of points and a number k, find the k closest points to the origin.
I applied through an employee referral. The process took 5 weeks. I interviewed at Meta (New York, NY) in Mar 2019
Interview
I applied through a friend’s referral at the nyc office.
First was the phone interview. Coding on a shared document. Tough graph question. Had some trouble and had to ask for a hint at one point but eventually got the correct solution. Heard back a couple days later they were going to bring me on-site.
On-site was a week and a half later and had two coding interviews, lunch, then a behavioral interview with coding second half, then systems design interview.
First coding interview: first problem went very smoothly. Medium level problem involving using a stack. Of course asking clarifying questions first. Second problem was a tree traversal problem. I just could not come up with the “intended” optimal solution.. ended up having to go with the “dumb” solution which I believe still had the same order of time and space complexity anyway, but was a bit ugly.
Second coding interview: this interview has easy coding problems.. I think maybe they were testing to see my communication and absolute code perfection over intelligent solutions here? First problem was a personal finance problem to calculate tax owed given income and tax brackets . Second problem was to, given a blank NYT crossword puzzle, output where the “clues” would be (i.e. where does “1 across” start and how long is it etc.)
Lunch was lunch
Behavioral: didnt prep too much but i came across as authentic because of it. I don’t know if there’s really a good way to prep for this. Soft skills come with time. One question I literally said “i don’t really find myself in those situations at work” which was fine I guess. The coding part of this interview was actually pretty rocky. Had to add two binary numbers (represented as strings I.e. “10110”). I believe this was also just to test communication and thought process.
Systems design: problem was design a simple version of Instagram which allows users to see Friends’ images in a feed and also go to friends’ accounts to get that persons images. To prep, look at the material the recruiter will give you. They gave me a GitHub link with a bunch of practice systems design questions and example solutions. Just learn what “kind” of solution they are looking for and that will get you halfway there. (They want boxes and arrows representing the different components and how they interact). I only prepped for systems design the night before and was fine. It didn’t even go that amazingly, I had a hard time figuring out how to get the latency down for refreshing the feed, which required what I considered significant help.
A week and a half later I got an offer.
Interview questions [6]
Question 1
Given a mathematical expression in prefix (+ 5 (* 7 8) 9 10 33) evaluate it.