Preparing for an interview? Check out Cracking the Coding Interview
Published on

Meta London | E5 | Offer | India

Author
  • Shared Anonymously

Hi all,
Wanted to start by big thank you to this community for sharing the questions and interview experiences. It was immensely helpful and prepared me for my onsites. Now, It's my turn to give back to this community.

I was reached out by recruiter after referral by a random person on Linkedin for SWE infra role at Meta in December.
I asked for 2 months preparation before tech phone screen . I have already shared my phone screen experience here: https://leetcode.com/discuss/interview-experience/4649802/Meta-Phone-screen-or-E5

After phone screen I moved to onsites and asked for around 2 more months for onsite preparation. I know this is a lot of time but I wanted special time for system design preparation and did not want to mess up this chance.

Fast forward to March end, I had my onsites.

First round was System Design:

  1. Web crawler . Exactly this: https://leetcode.com/discuss/interview-question/723588/designing-a-distributed-web-crawler but instead of servers , we were given phones. I had prepared Alex Xu web crawler and regurgitated the solution from ther.e At the end the interviewer was interested in how this will scale to distributed systems and choice of databases. I fumbled here. I mistook consistent hashing and used it in the wrong place. Looking back, was I not nervous I would have given the optimal solution. Most of what they ask is given in Alex xu but you need to real in between the lines. I have seen lots of people getting stu,ped by web crawler and used to wonder why; because this is a comparatively easier question. Now I understand why. I would give around 4/5 because I could have made the system better distributed in terms of job scheduling by the queue but its all's well that ends well.

Second round was Behavioral:

  1. Here I was least preparaed . I did not spend reading even the most asked questions. Few hours before the interview I just read some how to answer these questions from ChatGPT to get a brief idea of what to say and what not to say. I would say my experience working on multiple projects helped here a lot. The interviewer asked questions related to the project I am most proud of. I just told him whatever actually happened by exaggerating some of my contributions. What I wanted to focus here was that I had created a lot fo impact and the way I spoke I made sure I sounded genuine . I did not want him to think I had some scenarios rote learned from somewhere. Looking back, I would say my actual on work experience helped a lot here. And some sentences from chatgpt helped a lot. He was a really cool fellow and made me feel comfortable . Don't get too comfortable and speak things you are not supposed to say when you get too comfortable. At the end of the day he is going to judge you based on the things you say. don't let them get even a bit of hint that may make you sound like a rude person or egoistic even a bit.

It might be the case that you worked on a project where oyur team member was a moron who doesn't know coding and you had to deal with him. Don't say this. Make it look good . make yourself look like jesus with lot of patience and positive temparament. Never say others are idiots or they work slower compared to you even if that's true. Be diplomatic here.

Coding round 1 :

  1. I screwed up big time here.

There were two questions:

  1. Given a string , find (1) the MAX length consecutive sequence of any character and (2) return all characters , in order which occured consecutively MAX times.

I think I did pretty decent in this one. I expalained my thought process first and once he was good with it I started coding. My coding style if pretty good and I code fast. Was able to get it in quickly however there was a bug in it. I wasn't able to point it out during dry run as well. he pointed it out and fixed it. I agreed with him saying that he's right even though I had no idea why his change worked . I just said ok because I did not want to waste time and wanted to jump to next question because I already had decent work in this one and did not want to watse any more time on this. I am not sure if this is a leetcode question. I had done all 6 months FB tagged but didn't find this one. Maybe it's out there.

  1. https://leetcode.com/problems/missing-element-in-sorted-array/description/ . It was wored like this: Given an array of an increasing integer sequence, find the Kth number in the missing sequence between these integers.

I dropped the ball hard on this one. I had already solved this question but I forgot what exactly is the code for it. I knew it was supposed to be solved by binary search. I started telling him that we can do iterative solution to check for missing numbers. But that would be too non optimal so we can deploy a binary search based solution because its a sorted array. I took around 5 mins to explain the above statement because I knew I did not know how to code it correctly so I wanted to score some points on communication. By the time I was done explaining, 35 mins over . He told its ok if I dont code it as we were close to time beig over . I begged him to let me code it as I can code fast and he agreed. Within 3 mins, I coded it up and (no surprises) it was wrong and had bugs. He asked me to dry run it for a test case and I tried it and it gave wrong answer. I thought it was GGs for me and 4 months of prep was down the drain because of silly binary search. He said its fine and asked if I had any questions. I asked standard questions related to his work and it was over. I was heartbroken and did not prepare at all for the next round. I knew I was going to be rejected in system design because the issues with the distributed solution I gave and thiss round was probably the last nail in the coffin for me.

Coding Round 2:

  1. I nailed it here. He asked two questions:

  2. It was modification of leetcode problem: https://leetcode.com/problems/random-pick-with-weight/ . Here's the modification: https://leetcode.com/discuss/interview-question/671856/google-phone-pick-random-country . Since I was well prepared for the leetcode fb tagged questions, I had already solved this modification . I started with linear solution and coded it up and he asked to optimise and I coded the optimised one . Made quick work of it after explaiining the solution at the start and then doing verification/ dry run.

  3. https://leetcode.com/problems/insert-into-a-sorted-circular-linked-list/description/ : I acted like I had never seen the question before. I asked standard questions I had prepared for every question to clarify it. The questions I have generally give the interviewer an impression that I am a talker and dont think in silos. I wrote the code in a way that made it look like I am creating the code by thinking of edge cases while I had rote learnt the code from heart just a few days back. I coded it correctly. And he seemed satisfied and by this 45 mins were over and he asked if I had any questions and I said no. I was already sure that coding round 1 and system design had done me a GG and I just wanted this torchure to be over.

Post the last round, there was radio silence for 3 weeks. I pinged the recruiter once during the 3 weeks and got reply that they were still working on the feedback. I did not push any further after one mail because I knew it was a reject so I started working on other things. Then all of a sudden yesterday the mail hit my inbox. Recruiter said the feedback was overall positive and they are ready to make an offer . I was stunned as this was really not what I was expecting. I had started working on my stupid job dedicatedly again and now here I am. Recruiter says we will start working on team matching now and that's where I am at now.

I believe this community has helped me a lot and hence wanted to give it back . I hope this writeup helps someone who is preparing for meta atm. Don't lose hope and all your hard work will pay off.

Looking back, few things I wanted to say / advice:

  1. Behavioral interview is important. It is actually very important. Don't do the same mistake as me and prepare specifically for it. I got lucky but that's because I had enough experience working on multiple projects and my actual working patterns align with what meta expects. This may not be the case for you. Behavioral/system design interviewer is the one leading the interview debrief at Meta. So make sure you keep both of them happy. This is very important and looking back, I think I just got lucky to have an interviewer that was really cool.

  2. It's ok to screw up one interview . Don't let it affect your performance in other rounds. After screwing up the web cralwer a bit, I was totally in the vibe that I am just wasting my time and interviewere's time with next rounds. If that was not the case, I could have possibly done better in round 1 of coding. Even if a round goes bad, don't think about it. I know it's easier said than done but I don't know how else to put this. Your performance is judged overall. Sometime they may just downlevel you but still give you an offer.

  3. Focus on communication and verification parts in meta interviews . They are important and can save your day like they did in my case. I like to teach a lot and the way I teach things makes it really simple for listener to understand what I am teaching. This quality helped me in explaining the solutions. to the intervieweres before I started coding .

  4. Do mock interviews. My system design interview at Meta was the first system design interview that I gave in my life. I think if I had experience with them, I could have managed my time a little better. Also make sure you are familiar with excalidraw. Meta uses it and being fast with excalidraw helps a lot.

  5. Focus on system design more and not just coding . 3.5 months out of 4 months I had, I just spent on coding round preparation. I was never comfortable with leetcode or good at it. In fact I am really bad with DSA. However, knowing all the questions from fb tagged list (even the premium ones) helped me get through. You could tell me a question and I can tell you what leetcode problem it is and how to solve it. System design carries a heavy weightage and can you can probably get some leeway if you nailed this one and screwed coding a bit.

  6. Meta doesn't expect you to give picture perfect solutions always. Speaking / communicating with the interviewer is more important imo during meta interviews specially because they rate you based on it.

  7. The above doesn't mean you forget coding round preparation. My picture perfect solution, communication and verification in last round probably helped me get away with bad performance in forst round. Make sure you know fb tagged solution by heart but don't get nervous if you see an out of syllabus question. They are usually easy or a modification of leetcode problems only.

  8. Last but not the least, rote learning leetcode problems can trick you sometimes. There could be a minor twist which you might miss thinking you already know the question . This is how I failed by google interviews. I did not read the question properly because I knew the similar leetcode question and coded as per the leetcode answer but then at the end of interview realised the question had a minor twist which completely changed the meaning of question. Don't fall for this. Spend some time understanding the question and ensure that what it is asking for is exacrtly what you know the answer of . Make changes otherwise. Keep calm and try to solve it if you have never seen it. Luck plays some role here but my funda of living is that "chance favours the prepared mind" .

I'd be happy to answer any other questions you have. Feel free to comment below. I am probably thinking of making anpther post on how I prepared for my interviews. I have lots to say there and share as well. Let me know if you want me to make another post on that and I'll probably spend some time writing that. Good luck with your interviews and stay strong.

ReportMark as Helpful