I am writing this post to share my interviewing experience with some top tech companies, namely Amazon and Google. I want this post to inspire others out there and encourage them to believe in themselves.
This post will NOT contain question specific details, it will give you a good idea of what to expect.
Background:
Masters in CS with 2+ years of experience in a mid level company. I was happy being where I was, because I was always afraid that if I set out to look for another job at FAANG companies, I would never be good enough for them. I had always been one of those people who definitely had potential but lacked focus and motivation to achieve more than they currently had. I was convinced I wasn’t smart enough to make it big in tech. I always thought to myself that eventually I would get better, and that I have enough now, so there is no need to push myself, and life is so much more than just our career( true but we should strive to try our best).
Fast forward to April 2020 (Covid era), I knew my job could be in jeopardy because of the economy going south and I needed to secure a job at the big companies which were more stable.
Amazon[REJECT]:
An Amazon recruiter reached out to me via LinkedIn mid April and I knew I had to give it my best shot. At that time, it seemed like my only option. Amazon was one of the very few companies that had not gone into a hiring freeze. I had almost no experience of LeetCode earlier and was really weak with even basic concepts. However I thought Amazon was achievable due to the large number of people they hire and their focus on leadership principles (I can communicate well in non-technical topics). I started doing LeetCode day and night. The lockdown and reduced workload definitely helped, as it meant I could openly do coding without worrying about coworkers looking at what I was doing.
I was pleasantly shocked at what some pressure did to me. I was highly motivated, never let a day go without coding, all I thought of was Leetcode, algorithms, data structures and system design. I had convinced myself that this is a do or die situation and failure here was not an option. I had a LeetCode premium subscription and definitely liked seeing the pattern in questions asked. By the time of my virtual onsite I had about 1.5 months of prep, with around 120 questions solved.
Day of Interview:
2 coding (1 question directly from Leetcode)
1 OOAD
1 System Design
1 Leadership round
Man oh man did I stink that day. I was barely able to solve any coding. If I could, I would give myself negative points for OOAD. I had performed humiliatingly bad. I was so naive back then that I was even expecting to get an offer letter. I didn’t even know recursion properly back then, leave alone DP. I had memorized some solutions to popular questions, but when it came to using those in interviews, I was able to do squat. As expected, REJECT, with one year waiting period before next interview.
Needless to say I was heartbroken. Amazon was probably my best shot and I ruined it. Leave it to me to never get anything done properly. I was applying to companies and not hearing back. It sucked even more that referrals were getting me no calls whatsoever.
I applied to a few companies, even Google (though I remember thinking, “yeah right!”).
Google[OFFER]:
Anyway, a Google recruiter reached out to me via LinkedIn early June. I thought it was a spam/phishing profile because there is no way my resume/LinkedIn profile looks impressive enough for Google. He was indeed real and I scheduled my telephonic round with them for after a few weeks. I thought I had no real shot with them but I will work my hardest and try to clear just the telephonic round, that itself will be a big achievement for me. Plus I knew if I prepared for a Google level interview I could clear any other interview. So once again, I started doing LeetCode 24*7. This is all I thought about. I only wanted to give this my best shot, for once work really hard for something and not be that person who leaves things for luck. The support from my family and friends helped me go a a long way.
I had my telephonic round and I thought I did terribly. I wrote some messy code, and later I realized it was supposed to be Dijkstra. I drank some scotch that night and went to sleep, knowing I would be getting a rejection email the next day and that I am probably too dumb for this anyway. However next day my recruiter calls me to tell me they want a follow up. I was delighted to know my bad performance wasn’t bad enough for them, and that maybe I am improving and am not as bad as I think I am. I worked non stop for my next telephonic round. I passed that with flying colors. I was feeling very confident with my prep and now had my eyes set on that final virtual onsite.
Luckily for 2-3 years of experience, they don’t test you on system design, so this meant one less thing to worry about. I took mock interviews with friends. I redid all my solved problems multiple times. I had done around 250 questions by the time of my virtual onsite (3rd week of August). I was extremely thorough at those questions and knew them inside out. I definitely took advantage of the company tag on LeetCode which was very useful (got some questions from them in my interviews).
Day of onsite: Google has 45min interview + 15 min break. This is so wonderful, it gives you time to destress yourself by closing your eyes and clearing your head. First four rounds went well, but my final round went horribly. I had no connect with my interviewer and till now I don’t understand what his question really was. I was prepared for a reject. Google recruiter reached out after a week saying feedback looks positive and they will be moving to HC. After a few days, HC approved me for L3. I didn’t care, I would take a janitor’s job at Google. Plus with all the smart people there, I would rather over-perform at a lower level than under-perform at a higher level and risk being fired. I had my team match a week later and got to know that very day that the team wants to move forward.
I cried with joy like I had never before. Had my dream really come true? After years of being disappointed with myself was I really about to achieve something worthwhile? I had really gone from someone who lacked motivation and discipline to clearing some of the toughest interviews out there. I signed my offer letter after a week and am still celebrating. I thanked my Google recruiter as he was the most professional and patient person I have ever dealt with. Google recruiters are top notch professionals which really gives you a good idea of the quality of people Google hires.
Key takeaways:
LeetCode premium definitely helps. In an ideal world questions would not be repeated but there is definitely a pattern and some questions/topics are more popular than others. In this hyper-competitive world we should take advantage of all the resources that are at least easily available to us.
Consistency, discipline, smart/hard work, focus will take you further than you think. Persistence and perspiration trump talent.
Failure, rejections is all a part of life. No rejection or offer defines us. Remember, we only fall down so that we can learn to pick ourselves up again.
Life is not a sprint, it is a marathon. It is not only about the destination, it is also about the journey.
If I can, anyone can!