Friday, June 21, 2024

My Journey from a Tier-3 College to Microsoft, Google, and Meta: Lessons Learned

Original post: Link 


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 achieve 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.

Realization:
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, college, family etc. to nudge you to help you realize your true potential.

The Grind:
Although i had decent idea of programming but never worked with DS/Algo. New 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 disaster 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 unsatisfied.

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 satisfying 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 flexibility of thinking a solved question in different dimension and thus was mostly stuck with one solution.

I followed two steps:

  1. Making sure I get familiar with DS and Algos and could translate it to code without hiccup. This just took away the pressure of writing code quickly.
  2. I started dissecting the question into multiple levels like which DS would be needed, what Algo to use. The moment you are able to dissect the problem into smaller sub problem you will start seeing light. Now since you are confident about writing the code it should be easy to write solution.

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 document and preparing answers for scenario-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:

  1. Being consistent
  2. Believe in oneself
  3. Prefer quality over quantity on LC
  4. Strive for optimized solution
  5. Think of multiple ways to solve the problem. (Need not be all optimized. Just in case you need to write a brute force solution)

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.

No comments:

Post a Comment

My Journey from a Tier-3 College to Microsoft, Google, and Meta: Lessons Learned

Original post: Link   Time to give back to community. Went through couple of post myself and got inspired and belief that cracking FAANG is ...