Facebook | Remote | E5 (Reject)
Anonymous User
3759

Basic Info

8 YOE. Senior full-stack engineer. Have been doing full-stack engineering my entire career. Have been a technical lead for many projects on SMB and enterprise products.

Recruiter Connection

A recruiter reached out to me on Linkedin in mid-October of last year. While I wasn't looking for anything, it's Facebook right? I responded and setup a phone call. The call was excellent. Recruiter was extremely nice and seemed to be in my court from the get-go. It seemed like I would be a great fit for the E5 roles they're hiring for, so we scheduled a phone screen.

Phone Screen

I actually received 2 phone screens since I was interviewing for 2 different teams. I scheduled these for early December due to holidays, and needing lots of practice.

First phone screen was 1 problem I have not found online. It as roughly a LC medium. I couldn't get to a solution fast enough and ended up not getting asked the second question. Fail.

Second phone screen was 2 LC mediums. I hadn't seen either on LC until after the interview, but I managed to solve both I believe optimally and in time. I had a strong connection with the interviewer and felt great about it.

Feedback was exactly as expected. First interview was too slow, but second interview was great. I scheduled the (virtual) onsite.

Engineering Manager Discussion

FB offers the opportunity to meet with an engineer or engineering manager at FB to discuss whatever you want about the upcoming onsite. I took advantage of this opportunity to primarily get an understanding of what's expected in the design interview. We spent over 30 minutes just discussing Product Architecture vs System Design, and since I was already going for product architecture, focused on exactly what they're looking for. I took detailed notes and felt very confident in the interview given that's what I've done week-over-week for years.

This is important for later.

Virtual Onsite

Scheduled for late January, so had nearly 2 months to prepare. Overall, the onsite was garbage, primarily because it was split up over the course of an entire week, despite specifically asking to do it all in one day.

First day was 2 coding rounds back to back. The first round was very meh. While I arrived at a solution quickly, the interviewer drilled me on improving the time complexity for the remaining 20 minutes. Walking through test cases over and over and simply not seeing a better way. It was an LC Medium, btw. The second round was perfect. 2 LC mediums that I hadn't solved but seen, and I solved both optimally in the time frame.

Second day was behavioral and design. Honestly, my behavioral was incredible. I felt a strong connection with the interviewer, and my feedback stated the same thing. We skipped the coding question at the end because we were having a great discussion. Design was pretty meh. I did product architecture but failed to practice as much as I should've. 45 minutes is NOT long to get an in-depth design complete. My feedback stated as such. I simply didn't get the time to deep dive, and that cost me.

The third day was 1 more coding round. I'm not sure why I got 3 total coding rounds, but whatever. It went perfect. Again, strong connection with the interviewer, and solved both questions optimally in time. First question was unique, I've never seen online, and second question was an LC easy.

Results

The hiring committee wanted me to do another design interview. They said my behavioral was excellent, coding was "borderline", and design had "missing signal". I scheduled this for 1 week later.

Follow-up Design Interview

What a nightmare. I studied like nuts for a week, being lazy at work and studying all night. I felt very confident. However, the interviewer gave me the wrong interview. Product architecture is supposed to focus on client-server interaction, APIs, security, privacy, etc, but the interviewer cut me off when I began deep diving on client-server decisions and API design. They had me, instead, focus on an overall back-end system design. After uncomfortably drafting up a back-end design, I was drilled on DB - SQL vs NoSQL, sharding strategy, and ultimately scaleability and performance. These are system design topics, not product architecture. I rationalized this may be the "missing signal" they want, so I went with it. At the end, I told my interviewer I was uncomfortable because I thought this was a product architecture interview, and they didn't respond.

Immediately after the interview, I emailed my recruiter to ask why I received a system design interview. They simply said product architecture can contain back-end topics but back-end isn't the focus. I responded and stated I did, in fact, receive a system design interview, but no response.

Final Results

Didn't hear anything for a week. Finally, heard something today, and it's a rejection due to design. I was given feedback on a product architecture interview, with a no hire decision due to lack of deep dives and not discussing trade-offs. Honestly, I'm irate. After spending 3.5 months fully focused on studying and preparing, I've gotten rejected due to, what I believe, is an invalid interview. I told the recruiter as such, but they got very defensive saying it was in fact a product architecture interview and there's nothing they can do. We even discussed what happened in the interview and the interviewers notes and timeline does not match with what actually happened.

This particularly stings because, as mentioned earlier, I met an engineering manager to discuss exactly this. My notes from that meeting explicitly say to not worry about scale, performance, data storage strategies, and overall back-end design. Those are system design topics.

Honestly, I feel the interviewer realized they gave me the wrong interviewer when I spoke up, and chose to cover up the mistake.

Overall, I will not be interviewing at Facebook again. What a waste of time. Getting rejected on my own merit would have been entirely ok. I love constructive criticism and would have taken that feedback as something to improve. However, getting rejected based on getting the wrong interview leaves me with nothing to improve on (design wise, specifically).

My Recommendations

  • It's true that grinding LC doesn't translate well to real coding interviews. Focus on fundamentals. Number of LC's solved is not an indication of your chance of success.
  • Study for the design interview. It's very important. Don't just practice coding.
  • Study for the behavioral interview. Brain dump all of your important work stories and rehearse them. Don't just assume you'll remember everything on the spot.

Question
If anyone reading this has taken an FB product architecture interview or is very familiar with them, please correct me if I'm wrong. I'd love to be wrong here.

Comments (5)