Time to give back to community. Went through couple of post myself and got inspired and belief that cracking FAANG is possible. I hope this article helps and motivate people to acheive their dream company and job not necessarily FAANG.
Background:
As most of the engineering aspirants I too had a dream of cracking IIT but like 95% of the aspirants could not get through. Got a decent rank in AIEEE but chances of getting a computer science stream in top college would not have been possible. Result: Landed in a Tier 3 college as i always dreamt of being a software engineer.
College life (Fun vs Toil):
I was happy that i could get into computer science but being part of Tier 3 college meant more of fun and less of toil. I was just happy with good CGPA with very less effort and enjoying rest of the time. Result: Had a decent CGPA across 8 sems but lacked practice on getting prepared for bigger companies. Landed in a service based company with a paltry package.
Realisation:
During my time in service based company a college friend, who now was a product company based employee, asked a question: What are you doing here? Why are you complacent? Why don't you prepare for product companies? He is my friend from the very first day of the college and believed in my potential. At times you need friend, colleage, family etc. to nudge you to help you realise your true potential.
The Grind:
Although i had decent idea of programming but never worked with DS/Algo. Knew concepts like Queue, Stack, Tree, etc, but the moment i was asked to translate into code, I would see stars all around my head. So the idea was to start with basic concepts and build the thought process of thinking in different and efficient way.
2013 - My rescue: Data Structures And Algorithms Made Easy : Data Structures And Algorithmic Puzzles (Paperback, Narasimha Karumanchi).
The First Test:
2014 - It was time to test waters. First FAANG company, Amazon - Cleared screening round and solved two questions. A big win already. 2nd round, it was a disasters and i could not write a Trie class.
Gave couple of more interviews for product companies. Finally got selected in one but FAANG was still a dream and the urge to crack DS/Algo company still unstatisfied.
The Second Grind and Test:
Post couple of years, restarted the whole grind but with a new arrow in my quiver this time, Leetcode. Got introduced to LC in 2017 and started with easy questions. Got through only 50% of them. So, medium and hard were out of league. Started practicing day in and day out practicing as many questions as possible. Result: I was able to solve most of the easy level and around 40% of the medium questions.
Test: Got through couple of companies of which one was Microsoft.
The Third Grind and Test:
The most difficult but staisfying phase. I have been working on PS/DS skill on and off for around 9 years around which i gave interviews for Amazon, Google and Meta interviews but none of them had all the interviews going well. It was a hit and a miss.
On retrospection, it was due to mental block where I wished I already knew the asked question. If i get one, i would try to remember the way i solved or i would put myself under pressure that i have never solved this problem. I lacked the flexibilty of thinking a solved question in different dimension and thus was mostly stuck with one solution.
I followed two steps:
In all the interviews I took post this approach, I would invest 80% of time to find the sub problem and solution to it and writing code would just be 20℅.
Remember to un-remember the solution but remember the process you took to get to the solution.
Secondly, I was using LC in an in-efficient way. Solving problem is a win but getting to 100% faster solution is the gateway to success. I started reading discussion and articles to solve problem in different and efficient way.
Worked on my soft skill and behavior round which is as important as DS/Algo round. Making a documents and preparing answers for scenrio based question using real example faced during work.
Result: After failing 3 times at Google and 2 times at Meta, got selected for both the companies in 2024.
Learnings:
Conclusion:
After all these grind and result, I would say I am still not perfect. I might not be able to solve all problem at the back of my hand but the experience has taught me anything is possible with patience and being consistent.