Meta Interview to Offer For SWE E4
Summary
I successfully interviewed with Meta for a SWE E4 role, a process that took 6 months from recruitment to offer. Despite challenges like a tough team matching process for NYC and not achieving an E5 due to help on system design, I secured an offer with improved compensation compared to my previous role at Amazon, motivated by changes in company culture and seeking better treatment.
Full Experience
Hello all. During my time interviewing, I read a lot of other peoples' posts here to give me encouragement. I hope this post does the same for others. The total timeline from recruitment to signing was 6 months. My story is really long to help those who need details. Best of luck to everyone. Don't give up!
My Background
I have 6 years of experience at Amazon and two prior internships.
Recruitment
I met a meta recruiter at Grace Hopper, but generally Meta, Google, and other FAANG companies email or linkedin message me. I applied after Grace Hopper in November and heard back in 2 weeks. I scheduled my phone screen for January since I planned to work full time until I got an offer.
Phone Screen
Studying
I prepared for 2 months for 20 hours a week. I went over the top 150 meta tagged questions 2-3 times. I looked at multiple optimal solutions. I paid for 1 mock interview with an ex-meta engineer and did multiple practice rounds for free on Exponent with strangers.
Interview
On the phone screen day, both questions were from the top 50 meta tagged questions. I got strong feedback the next day and moved onto the onsite.
Onsite
My system design was infra. I have experience in both infra and product work. I took off about 3 2 week vacations to study 40 hours a week. When I was working, I study 20 hours a week.
Studying
System Design
My onsite was in April because I needed a lot of time to prepare for the system design because I never had a system design interview before. I was hired at Amazon straight from college. For system design I read Alex Xu's book, although it was outdated. Then I did every problem on Hello Interview 2-3 times and reviewed their youtube videos and written guides 2-3 times. TBH there are more online resources for product than infra questions on Hello Interview. I scheduled a paid system design mock with an ex-meta engineer. This process took about 5 weeks.
Leetcode
Then I went over the top 150 meta tagged coding questions over and over again until I could do all of them in 10-15 mins. I made sure I spoke outloud in the meta format of asking clarifying questions, explaining my plan, confirming the plan was valid, explaining trade offs if there were multiple good solutions, saying the time and space complexity, coding, and going through at least 1 example. The important part for me was doing all of this in 10 minutes if I could. I memorized the solutions, but also made sure I could explain every line of code.
My next step was to make sure I could do variants. I watched all of the variants from this channel https://www.youtube.com/@CodingWithMinmer and then solved them myself. I did some of them twice if they were harder.
I redid all the hard meta tagged top 150 questions one more time 2 days before the interview. This took me 6 weeks.
Behavioral
I collected previously asked meta behavioral questions from hello interview and general behavioral questions (about 30-40 questions). I practiced speaking all of them.
Then I created a list of 5-6 questions for each of the five core meta pillars.
- Resolving Conflict
- Growing Continuously
- Embracing Ambiguity
- Driving Results
- Communicating Effectively
I outlined 10 different work examples. Then I wrote a story for each of the questions based on those work examples. Then I got friends to ask me the same questions over and over again. At first I took too long to answer a question (7 minutes) and I wasn't clear with the STAR technique. After 8-10 rounds of 5 questions, I felt like I had my examples memorized and each took 3 minutes to get all elements of star.
This took about 1 week.
Final Review
For the last 2 weeks or so, I practiced interviewing. I did online interviews on Exponent for system design, leetcode, and behavioral. It was really hit or miss who I got on the site. So I stopped after 1 week and just practiced with a friend each day.
Interview
- Behavorial
I got a nice interviewer who asked standard interview questions. Some weren't exactly like the questions I had practiced, but I just picked 1 of the 10 examples I had and fitted it to the question. Interviewer was laughing and said he wanted to see me in the office sometime.
- System Design
I was thrown off guard because I didn't get one of the questions on the Hello Interview Guides. Note this question was on discussion pages of Hello Interview, but was ranked low.
I thought I could use top-k videos for this problem, but my interviewer said since he only asked me for 1 game that I was going too far. I scaled it back and went more like the leetcode leader board with a Redis sorted set and he was happy. I wanted to try for E5 even though my years put me at E4. I wasn't picked for E5 because I had help.
- LeetCode I
I got two variants of top 100 meta tagged questions. I highly recommend people review CodingWithMinmer if you have an onsite. It saved me. Both of them were from CodingWithMinmer's channel although slightly different (but not in a meaningful way). The second variant, I didn't remember as well, so I got stuck at the coding, but made it out okay because I had so much time saved from the first question.
- LeetCode II
I got another two variants. One from CodingWithMinmer and the other was a top meta tagged; but to return the list instead of the size. I finished both in 10 minutes. The only problem was that for the first one I forgot the 0 case because Minmer did only positive numbers. I got so nervous and my brain couldn't think about how to solve it. The interviewer kindly reminded me that I had 30 minutes to solve this one case and to take a breath. She was really nice and that helped me calm down enough to finish the case.
Result:
My recruiter called me 4 hours after my final interview and said my feedback was really strong. I passed E4, but because for system design I got help, I didn't get E5.
Team Matching
This was the worst part. I live in NYC and I can't move. NYC is really hard to team match. It took me 5 weeks. I heard nothing for 4 weeks. I joined a Discord of other meta TM candidates to get advice. I saw some people had been waiting months. I heard that a good idea is to message people on Linkedin or get a friend in Meta to ping HMs. I did both. After my friend spammed HMs, I got matched the same day.
Negotiation
I didn't have any other offers from other companies. I was too busy to interview for more places, but my Amazon salary is near the top of my level. My Amazon salary got me probably the highest comp that Meta was offering for E4 right now from what I saw on the discord channel. It is nothing like 2021, but it is higher than Amazon so I took it.
My NYC Amazon Salary: 190K base/300K RSU for 3 years My NYC Meta: 193k base/450K RSU for 4 years/35K bonus/15% yearly rate bonus
Summary
I used to love my teams at Amazon, which is why I stayed so long. However, things have changed and management has become more toxic as my teams grew. RTO5, salary, and poor treatment of my team is what made me leave. I hope for better treatment from my new team. I hope people also find themselves relating to this too and find that my post gave them courage to fight for what they deserve (to be treated like a human) at work. At the end of the day the hiring process is all about luck. I got lucky to have nice interviewers. Don't be too hard on yourselves as some things are out of our control. I wish everyone else luck on their journeys
Interview Questions (1)
The system design question involved designing a leaderboard for a single game. I initially considered a top-k video solution, but the interviewer clarified the scope was for one game, indicating that my initial approach was overly complex. I had to scale back my design and proposed a solution akin to a LeetCode leaderboard, specifically mentioning the use of a Redis sorted set.
Preparation Tips
For the phone screen, I prepared for 2 months, dedicating 20 hours a week to going over the top 150 Meta-tagged questions 2-3 times and studying multiple optimal solutions. I also had one paid mock interview and multiple free practice rounds on Exponent.
For the onsite, I took several 2-week vacations to study 40 hours a week, and 20 hours a week when working. For system design, I prepared for about 5 weeks by reading Alex Xu's book (though outdated) and doing every problem on Hello Interview 2-3 times, reviewing their YouTube videos and guides. I also scheduled a paid system design mock with an ex-Meta engineer.
For LeetCode, I spent 6 weeks going over the top 150 Meta-tagged coding questions until I could solve them in 10-15 minutes, practicing the Meta interview format of clarifying, planning, confirming, discussing tradeoffs, stating complexity, coding, and example walkthroughs. I memorized solutions but also ensured I could explain every line. I also watched and solved variants from the CodingWithMinmer YouTube channel, redoing harder ones and all hard Meta-tagged questions two days before the interview.
For behavioral, I spent about 1 week collecting Meta and general behavioral questions (30-40 total) from Hello Interview. I created a list of 5-6 questions for each of Meta's five core pillars (Resolving Conflict, Growing Continuously, Embracing Ambiguity, Driving Results, Communicating Effectively). I outlined 10 different work examples and wrote stories for each question based on these examples. I practiced speaking them with friends, improving my clarity and STAR technique to answer each question in 3 minutes.
For the final review (last 2 weeks), I practiced interviewing on Exponent for system design, LeetCode, and behavioral, but stopped after a week due to inconsistent partners and practiced with a friend daily instead.