Status: Total 4 yrs of experience as Mobile Developer. 2 yrs in a start-up in India. Came to USA for Masters in CS, then working as consultant/ contractor for past 2 yrs.
Facebook [NDA]:
This was my very first interview as full-time in USA.
The recruiter contacted me sometime in late December, 2019. I said I am not ready for the interviews right now and asked for some time to prepare. I started with Data Structures and Algorithms book first in January 2020. Took me about a month to just go through the concepts again. Then in February I started doing some easy leetcode questions. It was March when I got more sincere about this and really started putting time in solving problems on leetcode.
With COVID coming into play, pressure was mounting on me as my contract extension got cloudy and uncertain.
In mid April, I reached out to the recruiter asking if I can start the process in May.
Recruiter told me I had option to do phone interview or can opt for take home assessment. Take home assessment will be domain specific with some algorithm knowledge so I went ahead and immediately opted for this.
After a week time, recruiter contacted me saying I am invited for virutal onsite rounds.
I scheduled onsite rounds sometime in May.
Round 1 (Coding 45 mins): Interviewer asked me some questions in my field for about 10 mins. Then in last 35 mins, I was asked to solved 2 coding questions.
Round 2 (Behavior 30 mins + Coding 15 mins): This was mixture of behavior questions and a coding question.
Round 3 (Coding 45 mins): This round was like my worst nightmare. Interviewer kept drilling me for first 15 mins about my field knowledge. I was still able to answered all his questions.
Round 4 (System Design 45 mins): This was typical system design round on Google Drawings. Ticket booking system. This was my first system design interview and I ended up doing a major mistake that I went into technical coding implementation like classes interactions and all rather than actually designing a proper system, so ended up with non- functional design.
Right after I hang up the call, I felt devasted, felt like utter failure. But I had another big one coming. I had to get steady again, so I took couple of days break just to freshen up my mind.
After a week recruiter called, told me I am not selected.
Amazon [NDA]:
Just a week before my onsite date at Facebook, I had applied at Amazon on their website. Recruiter reached out at me next day and said I could take up online assessment.
Next day, I got an email I am invited onsite. I had about 1.5 weeks of time between Facebook onsite and Amazon onsite.
Round 1 (Behavior 60 mins): This was full 60 mins behavior round with hiring manager. Questions were focused on Leadership Priniciples. They want to get an idea about your problem solving skills, your team collaboration skills, your process improving skills. The interviewer was really friendly, always had light smile on his face. Felt like we made a good connection and were on same wavelength most of the time. Last 5 mins I had chance to ask them questions.
Round 2 (Behavior 30 mins + Coding 30 mins): This round began with 3-4 behavior questions focused on Leadership Principles. We spent 30 mins on this. Then began coding round.
Round 3 (Behavior 30 mins + System Design 30 mins): This round began with 3-4 behavior questions focused on Leadership Principles. We spent 30 mins on this, but since the interviewer was from same field as I am from, they dig little deep. Then began system design round.
Round 4 (Behavior 30 mins + Coding 30 mins): This round began with 3-4 behavior questions focused on Leadership Principles. The background of interviewer and me was different. So there were lot of follow up questions. I tried my best so they could follow what I am saying. We spent 30 mins on this. Then began coding round.
A week after, I got a call from recruiter with good news. Smile, Smile over my face :)
Preparation:
It took me about 4-5 months of very dedicated preparation.
Leetcode: 333/1499 Solved - Easy 94 Medium 199 Hard 40
Leetcode premium was worth getting. Also, Leetcode discussions and comments section helped me a lot.
I spent about min 8-10 hrs daily solving about 4-7 questions, depending upon difficulty level. Missed few days also to freshen up my mind if needed.
For Facebook, I mainly focused on practicing on leetcode for coding practice.
For Amazon, Don't take leadership principles for granted. I took 2 whole days, just to practice their behavior questions. Prepared about 25 stories by writing them down, and practiced in front of mirror. Dan Croitor is the man on youtube.
Went through all 35 questions mentioned in this series of videos.
Recrutier specifically told me, my round with hiring manager really sealed the deal for me and winning this huge offer.
For system design preparation, I did mostly from **** the System Design Interview*.
With whole COVID situation, I only got opportunities at Facebook and Amazon. I was bound for 2 yrs as under-paid contractor, so I was also feeling this pressure of getting a full-time job at reputed company, but I didn't bend, tried to keep myself happy by doing things I love in whatever spare time I got, during these 4-5 months.
I wish all the best to the folks, looking for job change in this hard time. Don't lose hope. Right opportunity will knock at your door, for you to grab.
Good luck!!!