Google/FB/Amazon/Apple/Indeed | Reject/Reject/Offer/Offer/Offer
Anonymous User
17248

Hi all,
The leetcode community has given me so much over the past couple of years so I think it’s my time to give something back. If you want to get to the interview experiences..skip ahead.
Just to give some context: I worked in an investment bank for about 4 years and in 2020 felt like I was stagnating. Felt like I wanted to feel like what it’s like working for tech companies. I had 3 yrs of experience before that but mostly in India. Had never heard of leetcode before 2020 and my interview prep used to be focused around going through a lot of interview questions from random sites. (I wonder how I got the jobs that I did before :D)
Anyways fast forward to Jan 2020 and I got a call from a Microsoft recruiter. I cracked the OA and started prepping for onsite. That is when I came across leetcode for the first time, and it felt like a gold mine to me. I did somewhere around 50-60 LCs easy/mediums and watched some sys design videos and felt I was ready (Boy was I wrong!). Needless to say, I tanked the interview but to my surprise 2 of the three coding rounds were from Leetcode and I was like holy cow. Looks like there is a way to get into FAANG after all for an average engineer like me. Over the next 4-5 months pandemic hit and with nothing better to do I kept on grinding leetcode and giving interviews with every company under the sun including FB, Amazon and a bunch of other fin tech companies. Tanked all of them but I could feel that my ability to solve questions and their variations was improving with every interview. At the same time, I was also trying to get better at recognizing patterns.
However, after interviewing with almost 15-20 companies over 6-7 months, I didn’t get a single offer. I did a couple of onsites but that’s about it. I was a little desperate by that time and the feeling that maybe I am not good enough was starting to sink in. But just at that time I got a call from another ecommerce company (2nd biggest after Amazon probably) and went to onsite and what do you know..it was my lucky day. Cracked all the coding question and knocked the sys design out of the park. Got an offer and moved to Austin.
Fast forward another year and the feeling that I couldn’t crack FAANG was nagging. I had a great team and a great manager with amazing work life balance. I know that FAANG is not the end of the world, and we should be happy if we are at a good place etc. etc. but I just felt that I had to crack it just for the sake of it. So, I decided to give it another shot. Renewed my premium membership. By now I had about 270 LCs (100 easy, 120 med, 40-50 hard). I applied to a few companies.. only the ones that I really wanted to get into and I got calls from literally all of them - (FAAG), LinkedIn, Microsoft, Indeed. I lined up interview with them trying to keep them close enough so that I don’t have to revise too much as well as far enough so that I am not overwhelmed.

I will discuss my experiences here:
Amazon:
The recruiter from Amazon reached out. I had interviewed with Amazon twice last year and this one was personal :D.
Onsite:

  • Coding round: Binary search rel. question (Similar to finding the first and last index of a number in sorted array)
  • System design: Tiny URL. The manager was really friendly and responsive throughout the interview.
  • Coding round: This was a little weird where they asked me to design a library that would process a stream of logs and perform some filtering on it. The coding was straight forward but emphasis was on code reusability and extensibility.
  • Coding round: Similar to finding the largest area of island question. The interviewer was really friendly. I think this was the bar raiser and he asked a follow up to do dfs iteratively. But I think this was more of a bonus question and he was happy with my initial solution. I wasn’t able to code it out but I told him would use an explicit stack to simulate the recursion stack.

Recommendation: Be ready with some interesting stories for LP. The coding questions are usually LC Medium level.
Result : Offer

Apple:
Phone Screen : This was with the hiring manager. He started off with some behavioral questions around agile/waterfall and then gave leetcode easy/medium about array manipulation. He gave me 25 mins time to solve the question. I solved it in 5 (anyone who has been grinding LC for 1 year should be able to I think). Anyways he asked me to quickly schedule the next rounds with the HR since I mentioned to him that I am interviewing with other companies as well.

Onsite: This was split over two days due to scheduling issues. True to its nature these were the trickiest interviews.

  • Coding round: First 15 mins were spent around my background and projects I have worked on. The coding exercise was straightforward around matrix rotation.
  • The interviewer had a hard time following my code, but I knew the solution so was pretty confident in explaining it to her.
  • System Design: The interviewer was very excited about the recent monolith to microservice migration that he was working on and based the complete discussion around it. Was an interesting experience nonetheless. Most of the discussion around designing microservices and REST APIs and best practices.
  • Behavioral: This was a behavioral round with a bunch of discussions around TMAAT questions and in-depth discussions.
  • Coding round??: This was the craziest interview I’ve ever had. The interviewer’s first words were “So tell me why are we here?”. No intros no ice breakers nothing. I kinda froze and took 30 seconds to compose myself and came back with a response. Then he asked me some Java related questions “What is JVM etc etc”. Then a random question given an array find the second largest element..gave two approaches…he’s like yeah you got it lets move on..design a POS system.Gave him some microservice architecture and some discussion about how you would localize them etc. Then with 10 mins left in the interview he pasted a 50 line question in the coderpad regarding string manipulation, complete with 27 test cases that he had prepared. I was completely exhausted at this point but came up with some sliding window kinda approach. I knew about the rolling hash approach for further optimization but didn’t really have the energy to code it out so stayed away from the discussion. After some typos and some fixes was able to pass the 27 test cases he had. Then general discussion about Apple etc.
  • Interview 5: This was a manager from another team who interviewed me. He just wanted to know the in-depth details of the tech stacks that I have worked on and what the SDLC’s for them looked like. Half an hour of technical discussion and some more “TMAAT” kinda questions.
    Result : Offer
    Recommendation: Apple doesn’t follow any pattern for their interview. I think it’s more customized specific to teams. So be confident about the stuff that you have worked on, and you should be fine. Coding questions were around LC mediums.

Google:
Google allowed me to skip phone screen and moved me to onsite directly. This is my dream company. I know it might not be the highest paying one right now, but I have always believed in the company.
The recruiters were really helpful and accommodating of my scheduling requirements.

  • Round 1: Was a coding interview. Nothing I had seen before. Related with making some string replacements. I started off with a little bit of a wrong approach but mid-way through the question figured out the problem with the approach and coded out the right one. The annoying part in the interview was the fact that their coding tool kept disconnecting. Lost like 5 mins because of this and didn’t get a change to write too many test cases.
  • Round 2: System design. Was around blacklisting some ips. I did fine in this round. I messed up some sections while doing some back of the envelope calculations. I am not too good with bits and bytes and am always nervous doing such calculations. The interviewer was really helpful though.
  • Round 3: Googlyness : This was like a barrage of “TMAAT” questions. Nothing special.
  • Round 4: Coding round: The interviewer gave a pretty interesting problem around finding managers through an employee hierarchy tree. I initially started thinking about it as a tree naturally but soon realized it could be better modelled using disjoint sets and applying union find. Was able to write out a pretty decent solution and handled some edge cases too.
  • Round 5: Coding round: Tree problem around leaves from leetcode. Can be solved using simple dfs. I had recently solved the problem so solved it in like 5 mins. Then the interviewer gave quite a few variations of the problems and solved it using combination of dfs and bfs.

The recruiter reached out and said that they couldn’t make up their minds and wanted to do two more coding rounds.

  • Round 6: Graph BFS question around finding friends on social media. Did pretty well on this and then another question similar to merging intervals. Killed this round and was damn confident about the next one.
  • Round 7: This is where shit hit the fan. To begin with the interviewer won’t turn on his camera and I had to ask him repeatedly if it’s possible to turn it on cause it’ll help me with some visual feedback. Reluctantly he turned it on. Then he pasted a question around recursive string replacement which was not something that you can complete in 45 mins (At least not in JAVA). I felt like the interviewer was a python guy and hence was thinking along those lines. Anyways midway through the interview, after keeping track of the bzillion pointers, I knew that it was over and just wanted the interview to end.

Result : Reject..feedback from the recruiter was what I was expecting..killed round 1..round 2 not so much.
Recommendation: Union find, seg. Tree, Tree Maps, String manipulation and back of the envelope calculations.

LinkedIn:
Phone Screen: This was pretty straight forward. Warm up question was around finding balanced parenthesis and follow up with multiple types of brackets. Second question was an array problem. Solved both and they wanted to move to onsite. I told them that I have an offer and some other onsites and I would really like to move quickly but they couldn’t be bothered. Recruiter reached out after a few days, but I told her that I don’t intend on moving forward with the process.
Result: Next round but didn’t take it up.
Recommendation: Leetcode most frequent should do it.

Uber
Phone Screen: Hardest interview of the season. The guy expected me to solve account balancing problem and the output of the problem was supposed to be the required transactions. He had a follow up also to this which he removed after realizing that I was hardly going to be able to finish the main problem in time :D. I had never seen the problem or maybe had seen it but ignored it thinking it’s too hard for phone screen prep. He even made me run test cases on it :O :O. All the tests ran fine but I knew it was a reject. Their expectations were beyond crazy.
https://leetcode.com/problems/optimal-account-balancing/
Result: Reject
Recommendation : Ummm…errr…Pray.

Facebook:
I knew this was a tough nut to crack that’s why I scheduled my phone screen after the long weekend. I went through the FB top questions lists a bunch of times and boy was it worth the effort.

Phone screen:

  • Contiguous array sum.
  • K closest points to origin.
    The interviewer was smart and very friendly. I knew the questions like the back of my hand and I don’t think he was too bothered about the solutions. He was focused more on the follow up discussions Like providing a O(n) space soln for Q2 etc. Very good discussions and conversation. I discussed quick select with him and the time complexities etc. He was kind enough to not ask me to implement it :D.

Onsite:

  • Coding Round: Usual FB kinda interview. 2 mediums in 45 mins. Backtracking problem and LCA variation. Both from leetcode.
  • Coding Round: This was a little different. Q1 was a straightforward palindrome questions. Q2 was LC medium/hard similar to merging n sorted lists with some twist. Came up with the optimized brute force and managed to come up with the heap solution just in time. I am usually pretty quick to code up solutions but for both of these I coded right till the end of the interviews.
  • System Design: This was around designing a bidding system and the REST Apis behind it. Nothing out of the ordinary. Think it went well.
  • Behavioral Round: This was the usual TMAAT kinda questions.

Result : Reject. TBH I think I did really well. But didnt hurt as bad as google since wasnt too keen on joining FB anyways (Even before the outage ;))
Recommendation: Grind top 100 from LC. Also make sure even if you can’t code out the super optimal solution, you at least know about the complexity of the super optimal one and can have a discussion about it.

Indeed
This was the longest set on interviews. Was able to skip the phone screen. The onsite loop had like 8 hours of interviews.
Interview 1 : Coding question with a mix of trees and follow up converting it to graph. Solved it using djikstra. Interesting question. Havnt seen on LC.
Interview 2 : System design around designing job review system. The interviewer was very receptive and helpful.
Interview 3 : Hackerrank. This was the weirdest interview. They gave a question around implementing fuzzy search (beast of a problem) and said they will turn off their video and audio and just observe me :/. It was a 1 hour 30 min interview and managed to get 13/19 cases pass. IMO it was a wasteful exercise since there was no interaction with the interviewer anyways. Might as well have sent me the link before the interviews.
Interview 4 : Resume deep dive. Questions around different projects. Nothing to write home about.
Interview 5 : Code review. They gave a PR and asked me to provide review comments. Once again the interviewer turned off their video and asked me to perform a normal code review. Nothin out of the ordinar if you are used to reviewing PRs at work.

Result : Offer
Recommendation : The most thorough interview of the season. Indeed is a pretty good employer from Austin's perspective. Default WFH and competitive comp. More of a vest and rest kind of place. I think if you are good with medium LC should not be a problem.

Comments (35)