Background:
- BTech in Information Technology from one of the known colleges in India
- Experience : Around 13 years of experience in Service industry. I worked with many different companies and currently working as a contractor for state project.
- I’m well into my late 30’s and have mostly worked on mainframe applications with COBOL as my working language. From last 3 years, I have been working on VB .NET as well.
Note: These all interviews were done in US location during Oct - Nov 2020 duration
Facebook : Applied through referral. Recruiter reached out just next day after I was referred. I asked for 1 month time for preparation.
- Phone Interview : This was my first ever such kind of interview. I froze for first 2 minutes and did lot of visible mistakes in my code.I realize that and told my interviewer that I got nervous and corrected everything. Telling interviewer about my nervousness really helped to ease out pressure. Anyways, my first question was a LC easy question related to math and required use of recursion. I did it very easily. My second question was one of the LC medium related to bracket expressions. I was able to finish my two questions within 20 mins so interviewer asked me one more question which was variant of 2nd question. I was able to do that too very easily .My feedback was very strong as per recruiter, I asked for 2 months time for onsite preparation.
- Virtual Onsite :
- Round 1 Coding : (Q1) This question was LC medium requiring use of heap. (Q2) One of the DS cloning question ( It was a variance of one of the LC question). I did well in this round although I needed hint for the second question.
- Round 2 Product Design : This was on one of the facebook’s APIs. I completely bombed this round. I came with expectation that I will have to do some kind of end to end system design but we digged deep on APIs from the start and I was not prepared for it.
- Round 3 Behavioural : I nailed this round. There were normal behavioural questions and I guess if you will use STAR format to answer these you should be good. In the end I was asked on LC easy question on Tree which I was able to do easily.
- Round 4 Coding : (Q1) This was LC medium question which required use of stack. I was not able to figure out optimal solution. I still asked interviewer if I can proceed with coding my solution and she was ok with it. (Q2) LC Easy question. I did it very easily.
- Round 5 Product Design : This was my best round. I really connected well with my interviewer. Question was related to Document processing area and I kind of have worked in this in the past so it was easy for me.
- Round 6 System Design : Recruiter called me and told that she got mixed feedback. I did good in coding but one of my product design was not good. Team felt that I may have a back end background so they wanted to do one system design interview with me. I knew that it was second round which has cost me. I also did realized that I was not much prepared for system design. I asked recruiter to give me a month time but I was told that they have to wrap up in two weeks. Anyways, this turned out to be my worst round.
- Result : Reject
Amazon: Recruiter reached out to me via Linkedin.
- Online Assessment : Recruiter told me that positions are closing fast so I should do my OA ASAP. I decided to do it over weekend. I had two questions, one was very easy(required use of HashMap) and second question was graph question. My second question failed one test case.
- Phone Interview : Interviewer was nice. I got one of the variation of island question. I did well in this round. I was told by recruiter that I got good feedback and if I do same way in my onsite it should be able to make it.
- Virtual Onsite :
- Round 1 Coding : There were lot of behavioural questions(about 20 mins) followed by one OO design question. Question started in very vague manner.I didn’t realize that expectation was to come up with object oriented solution. I was not sure if I did what was expected. Interviewer told me I did good(which was not true).
- Round 2 System Design : This round was with manager.I really enjoyed behavioural part of this round. We really dig deep in my past experience and I felt interviewer was very much listening my stories and asking me lot of follow up questions. Anyways, behavioural has been my strong side so I did good in this. We had 10 minutes left, so we quickly went through with System Design Question. At the end interviewer told me he really wish my rest of the rounds go well. I took it as a positive sign.
- Round 3 Coding : This was again long boring behavioural followed with two coding questions. Q1) Question which required use of Hashmap(I have never seen it in LC but it was easy question). Q2) One of Island question variation requiring DFS use.
- Round 4 Coding: I was very tired by this time and I have used lot of my energy in behavioural part of interview. I have to say it that I didn’t had much stories left to tell by this time.My behavioural part went ok. My coding question was on LinkedList. I was able to code it. I was asked to optimize space. Interviewer tried to help me by giving hints but I was I think very tired by this time. I was not able to get it.
- Result : Reject ---- I thought my fourth round last 10 mins were bad but rest of the interview went good but recruiter told me that my first round was not good.
Google : Connected Recruiter via Linkedin
- Phone Interview : I was asked a easy DP question which I did easily. I was asked lot of questions on threads, distributed system which I was not expecting. I somehow also mentioned incorrect time complexity of my DP question incorrectly(all because of my nervousness of doing google interview).
- Result : Reject
Oracle : Connected Recruiter via Linkedin
- Phone Interview : Two Easy questions followed by some questions on Threads. I was not expecting any questions on threads and all and so didn’t do well with those.
- Result : Reject
Microsoft : Connected Recruiter via Linkedin
- Online Assessment : I got three questions. All three questions were related to Strings. These questions were easy. I was able to finish it well ahead of time.
- Virtual Onsite :
- Round 1 Coding : This was a binary search question. I would say question was easy. I was able to come up with solution. While coding I got little nervous and made some mistakes but I was able to catch it and fixed it. Interviewer was very nice. Once I finished coding,we discussed how we can optimize it. How we can use it as a service etc.
- Round 2 Coding : It started with behavior followed with a question on Tree which required BFS approach to solve the problem. Interviewer asked to optimize space complexity. I tried to think but was not able to come up with space optimal solution.Interviewer asked to anyways code my solution. I coded it and I told interviewer let me think if I can find optimal solution. Luckily, it striked me and I gave him optimal answer. Interviewer was impressed and I think this turned out to be my best round.
- Round 3 Coding : Well, I was in good mood. My previous interview turned out from ok to very good and luckily my interviewer was also very nice. We had lot of discussions in general(behavioural but in very light mode) followed by easy math question.
- Round 4 Coding: Unlike my other interviews, this round started directly with coding question. Question was related to Queue implementation. Question seemed easy earlier but when I started coding, he changed the question slightly. I felt it more like a rapid fire round and probably interviewer wanted to see how I react to changed requirements. I think
I was able to provide solution and code it as per interviewers satisfaction. This followed with some system design question where I was asked to design some of the functionalities of one of MS Office tool. This round also went well.
- Result : Offer
Preparation :
Around Oct 2019, I made my mind to give one honest try to FAANG. I started with brushing up my basics with one of the coding courses. Since my background is on mainframe systems, it took me some time to get hands on with one of more accepted language(Java) and start preparing. Initially, it was all fun. I kind of finished my course(except for DP and Graphs---which I felt very hard that time) and decided to apply for jobs. Few of my friends who had already gone through this journey suggested me to do Leetcode too. It was March 2020 and till this time I had no idea what were the expectations in these interviews. I was of the opinion that knowing algorithms, DS and system design is all what you need 😊. Well, anyways I started Leetcoding and realize that I was struggling with most of easy questions too. I have got good grip of algos but I was lacking practice and I haven’t seen any variation of questions(only classic algos with its famous questions).I didn’t got any call that time and then COVID happened. Our second son was born in
April month and suddenly my priorities changed. I took a pause from my studies for a month. When I resumed by May month, this time I was somehow very much focused. I decided to do questions by patterns. Every week, I will take one algorithm and do questions of that algorithm only. I also started doing daily challenges. I was participating in weekly contests almost every week. By August 2020, I had done around 400 questions and I was consistently doing 3 questions in Weekly contests. I decided to start applying for the jobs again. Although, this time I used Linkedin as my tool to apply. I connected with atleast 200 recruiters(from almost 30 different companies) and got all my interview calls.
- Uptill now I have done 639 questions (Easy-224, Medium—354,Hard—61)
- For Interview Preparation, I did lot of interviews, it helped me for Coding but for System Design I didn’t find it useful. I did one interview which was more traditional system design with one of the facebook guy but to me that also didn’t helped as I felt my Facebook System Design was not exactly like covering all different components but more like digging deep in only one area.
- For Behavioural (LP questions), I created a spreadsheet and mapped two stories for each LP. My wife took couple of mock interviews of me which really helped. I have a lot of experience so finding lots of amazing stories was not a issue to me.(Although I felt too much of LP like in Amazon round tends to make interviews boring).
- My journey has been very long and I guess I would not have been able to carry on till now if I would not have been enjoying what I was doing. There were many moments when I felt may be I’m wasting my time then I will go for a long walk, talk to friends(who really motivated me during my bad moments).
- When I was getting rejections(Microsoft was my last interview) it was very tough time. I used to doubt myself a lot. It was very tough to stay positive, I used to read other people’s experiences that time from leetcode and that used to really help me. I realized now that if you keep working hard you will get results in the end. It may happen for some in 1 month and for some people in 1 year but if you don’t give up and keep working hard you will get results.
- Now last but not the least, I guess it is not the same to do preparation when you have family vs when you are bachelor. My wife supported me like anything in my goal which made it easier for me. When I see back, I see an amazing journey that I will always cherish but at the same time I don’t think I will be able to do it again.