Algorithms, Blockchain and Cloud

Four Facebook/Meta Interview Experiences


Four Facebook/Meta Interview Experiences

Over the years, I have interviewed with Facebook/Meta four times. Although I wasn’t successful each time, I gained a lot of valuable insights. Facebook rebranded to Meta on October 28, 2021, and from here on, I’ll refer to it as Meta.

Facebook, Inc. has been renamed and rebranded as Meta as of October 28, 2021. The name change reflects the company’s growing ambitions beyond social media and its focus on building the metaverse, a virtual world where people work, play, learn and connect with their friends and family.

If you joined in November 2022, your stock has already multiplied by six times by now. During the pandemic, Mark Zuckerberg pushed hard for the Metaverse project, causing a significant drop in stock prices. However, he later admitted to the mistake of this strategy and shifted focus toward AI large models, driving the stock price back up.

Meta’s stock has risen significantly in the past two years

First: 2010

In early March 2010, I had just submitted my PhD thesis and was waiting for my defense. At this time, I received an interview invitation from a Meta recruiter in the US. After a brief discussion, we scheduled the first round of the coding interview. At that time, I was living in a humble rental house in Luton, UK, sharing with a few classmates.

Though Meta was founded in 2004 (the same year I went abroad) and experienced rapid growth after the 2008 Facebook Beta redesign, it was still in its early stages in 2010. Meta had not yet established offices in the UK, and the position was based in the US. If I passed the first round, I would have been invited to the US for further interviews.

The first round took place on April 1, 2010, at 11:30 AM PDT, via phone call and an online coding collaboration tool (collabedit.com).

Unfortunately, I failed for two reasons:

  • Firstly, I gave an incorrect answer to an algorithm complexity question.
  • Secondly, I chose Pascal, a language the interviewer was not familiar with, which put me at a slight disadvantage.

Facebook Interview via Collabedit (Coding, 2010, Pascal)

This interview was for an E3 level position (Entry Level). The full interview details are recorded here.

Second: 2019

The second attempt was in 2019 while I was working at General Electric (GE) in Cambridge, UK. The first round took place on Meta’s self-developed online collaboration tool (bluejeans.com) and involved two LeetCode problems.

Starting in 2019, I began using C++ more frequently in interviews. I felt that choosing this language helped as C++’s STL provides rich data structures and algorithms, and compared to Python, it is less “beginner-friendly”. However, mastering C++ and avoiding common pitfalls, like integer overflow and pointer issues, requires more practice.

First round: June 3, 2019, 1:00 PM BST. After passing the first round, the recruiter called to provide feedback and arranged an on-site interview at Meta’s London office. This was my only visit to Meta’s London office, and I was impressed by the cafeteria.

Final round: July 26, 2019, 11:45 AM BST. I took a train from Huntingdon to London King’s Cross Station, with Meta reimbursing the round-trip fare. The interview was for an E4 level position.

The feedback was that my system design skills were insufficient. The coding interview was conducted on a whiteboard, which can lead to mistakes and is time-consuming, so practice is essential. I remember one question was about the Next Permutation problem, which many people find hard to solve quickly if they haven’t seen it before.

There was a easy leetcode question in the round of behavior interview, as a warm-up.

I previously shared detailed blog posts on:

Third: 2020

During the pandemic, I joined Amazon’s AWS S3 team in Cambridge. However, due to the pressure of On Call duties, I began seeking new opportunities in the latter half of the year. Meta contacted me again.

First round: September 4, 2020, 1:00 PM BST, with two medium-difficulty LeetCode problems.

Final round: November 5, 2020, 10:00 AM GMT. After the pandemic, most final interviews became online.

I purchased a whiteboard, which Meta reimbursed. During the System Design Interviews, I drew on the physical whiteboard.

This interview was for an E5 level position (Senior). The feedback again pointed out insufficient system design skills, but I was rated close to E5, on the edge between E4 and E5. Perhaps because I was working in AWS S3 at the time, the system design question was about designing a file storage system.

Fourth: 2024

This year, I applied to Meta while also interviewing for Google here. The position was for an E6 (Staff Enterprise Engineer) level, so an additional product design round was included.

Unfortunately, I was unfamiliar with the product design round and did not pass. However, I was pleased that my system design (E6 level, staff level) was up to standard.

First round: Coding, still two medium-difficulty LeetCode problems.

Coding was relatively easy for me, and I provided multiple solutions while guiding the interviewer. Key points included:

  • Asking clarifying questions
  • Considering edge cases
  • Testing the code after writing it
  • Explaining while coding
  • Trying to find multiple solutions to a problem

During one coding interview, I solved three medium-difficulty problems in 40 minutes because the interviewer added an extra question due to time.

The final round was split over two days with five rounds, including:

  • Two coding rounds
  • One product design round
  • One system design round
  • One cultural fit interview (similar to Amazon’s behavioral interview)

A tip is to keep talking and never let the interviewer lead the conversation. In the product design round, because I was unfamiliar, the feedback was that the interviewer had to lead most of the time.

Lessons and Summary

Though I have failed four times over the years, I have learned a lot from each interview. One of the main reasons for failure was attempting to interview for higher-level positions before my skills fully matched. Changing jobs usually comes with a premium offer, but the prerequisite is that the skill gap shouldn’t be too wide. These experiences have helped me gain a clearer understanding of my strengths and weaknesses and provided direction for future improvement.

Meta’s interview freeze period is 12 months, so you can try again every year. The levels I aimed for have progressively increased, showing that I have been continuously learning and improving. Interviews not only challenge yourself but also provide a clear picture of your abilities and areas for improvement.

Round Date Result/Feedback Target Level Interview Format
First April 1, 2010, 11:30 AM PDT Failed first round, incorrect answer on algorithm complexity, disadvantage using Pascal E3 Online: Phone, collabedit.com
Second Coding: June 3, 2019, 1:00 PM BST
Final Round: July 26, 2019, 11:45 AM BST
Insufficient system design skills E4 First round online Bluejeans, final round onsite at Meta London office
Third Coding: September 4, 2020, 1:00 PM BST
Final Round: November 5, 2020, 10:00 AM GMT
Insufficient system design skills, close to E5 level E5 Online Bluejeans + Coderpad
Fourth Coding: September 24, 2024, 12:00 PM BST
Coding: October 3, 2024, 4:00 PM
Product Design: October 3, 2024, 2:00 PM
Other three rounds: October 8, 2024, 12:15 PM
Insufficient system design skills, missed product design round E6 Multiple rounds, including coding, product design, and system design interviews online

Software Engineer Levels Comparisions: Meta/Facebook, Microsoft, Amazon and Google

Meta Careers website has a few coding puzzles to solve.

Software Engineer Interview Experience

Interview Tips

Interview Questions

–EOF (The Ultimate Computing & Technology Blog) —

1813 words
Last Post: Simple investment strategy: regular investment in Bitcoin/BTC (Dollar Cost Averaging)
Next Post: Introduction to Pi Coin: Is it Really a Blockchain-Based Cryptocurrency?

The Permanent URL is: Four Facebook/Meta Interview Experiences (AMP Version)

Exit mobile version