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.

Sunday, June 16, 2024

First google interview? here are some tips

 Original post: Link

I recently gave an interview for google and messed it up. Here are some notes which might help you.

  • no, you won't have to code on google docs. they have a bare minimum IDE-ish with basic syntax highlighting, monospaced font and auto indentions unlike docs.
  • you might have the coding skills you need, but you definitely need the interview skills as well. you have to make the right decisions under pressure as well as explain it which is not something you'll learn on leetcode.
  • google questions are vague. they leave the interpretation up to you. I don't mean it like they're complicated but that they want you to ask as many follow up questions as you can.
  • discuss everything, every edge case, every issue you might face, every approach that you can think of. don't type a single line of code until you know everything.
  • note down your thoughts as comments, it's easy to forget your train of thought when you're in an interview.
  • if you're not sure about what EXACTLY the code would be, write in terms of comments or pseudo code first. then later change it to the exact code. you can do it for sections of code that you don't want to write the logic for right now, like if cases or functions that you want to handle later.
  • it's okay to take a 5-10min pause just to think. it's way better than going with the wrong approach. first tell them that you need 5mins to think and make sure to tell them what you were thinking about after the pause.
  • can't say this for everyone but your interviewer is literally there to help you. utilize them. it's like you're a driver and they're sitting on the seat next you. they can't drive the car, but they might nudge you to the right directions and tell you how close you are to your destination.
  • after the interview, ask the interviewer where you can improve. (this might give you an idea about how you did)

Wednesday, June 12, 2024

Books to read - Suggestions

 Original post: Link

This post is about things which can shape your personality, although these books can help anyone, but it is mainly intended to college grads.

Along with LC one can also learn some practical lesson from some of best seller books, which will be helpful all along your life. Some of the book which I read recently, I wished I would have read long back, hence this post to help others.
Feel free to let me know in comments if I have missed any great book.

One more point, Self-help/guidance is effective depending on where you are in life, sometimes you would be immensely benefitted and sometimes you will think what this is I am reading.
Thats perfectly fine. You can drop it and may be re-read at different point in life.

Atomic HabitsDescription
Atomic HabitsWe Humans wanted to develop Good Habits (like Leetcoding everyday :)) and break some bad ones. This book is essentials in that, it formulates a 4-rule based approach on how to approach about habits. A must read to get the house in order.
IkigaiDescription
Once you have developed habits, we need a purpose in life, like become a competitive programmer or a happy person. This book explores those topics What you love to do (Leetcode), What you get paid for (our job), what you are good at and what world needs. The common intersection of all these is 'Ikagai'. So do read it to find your true purpose.Ikigai
Thinking Fast & SlowDescription
Thinking Fast & SlowSo now you have good habits and also some purpose, and on this platform to achieve them, you need to have good brain. Read this book to open secrets of working of brain. System 1, which is fast, automatic, and intuitive, and System 2, which is slow, deliberate, and analytical. Kahneman explains how these systems interact to shape our judgments and decisions.

A word of caution: this is a very dense book, if you know any other book on critical thinking, you can read that instead.
I too read another book called 'UltraLearning'.
You can even do the course from Coursera 'Learning How to Learn'

Fooled by RandomnessDescription
Often life will not pan out what you have planned, there is a role of luck, chance, probability in life. This book highlights how randomness and unpredictability can lead to false conclusions, emphasizing the importance of understanding the limits of knowledge. It discusses the cognitive biases that lead people to underestimate the impact of random events.Fooled by Randomness
The Subtle Art of Not Giving A F*ckDescription
The Subtle Art of Not Giving A F*ckEmbracing the life with some imperfection and remain happy is what this book talks about. It argues that prioritizing what truly matters and accepting one's flaws leads to a more meaningful and fulfilling life. He emphasizes the importance of setting boundaries, taking responsibility for one's choices, and understanding that pain and failure are essential for growth.
The Psychology of MoneyDescription
Assuming everything goes as per plan, you followed all above steps, and some surprises goes your way, you will end up having a good job and possibly great sum of money every paycheck. What to do with all that money, today's generation is spending on eat-out, travel etc. etc. While all that is good and we must enjoy our lives, we must also save and invest smartly. This book talks about various aspects of money. I chose this over other great finance book because it talks about psychological concepts of Money. Later on, you can read 'The Warren Buffet Way' , 'The Intelligent Investor' and many more.The Psychology of Money
Good EnergyDescription
Good EnergyHealth is utmost important. To accomplish anything in life and to do all the above steps you need to be in good health first. You can picky any book of your choice on this topic, but I found this new entrant a NY Times best seller promising. I am yet to read this but the reviews look promising.

I want to keep this list short & crisp so that it appeals to more users.
You can agree with me that if the list is too long, we become lazy and avoid taking any actions, so I stick to basic stuff like Habits, Passion, Luck, Money, Health.
After you read all the above book, more avenues will open up and you will smart enough to figure out yourself that you should read next depend on what path you want to choose.
Topics like Entrepreneurship, Management, Spirituality, Stock Market are some of topics you can choose next to read.

How to Start reading: Reading is not a very easy task, especially in today worlds where we have so many distractions like social media, OTT, Internet, Video games to name a few.
I would recommend the method suggested by 'Atomic Habits' read for '2 minutes' every day and better start reading 'Atomic Habits' as first book itself so that it will inculcate the habits
of reading further books.

Next tip is writing some important point while reading the book in a diary. Keep a diary near to you while you read. After 6 months you will forget most of what you read but if you note down some important point which hit your brain, write it and keep that diary with you and occasionally read the diary while sipping morning tea, chances are you will carry the learning for a longer run.
You can take a print and hang on walls. Books like 'Atomic Habits' are already providing those charts.
You can read these books either Paperback or e-book, even audiobook platform like Audible and KukuFM (Indian languages) are great (but I prefer paperback and sometime kindle).

Whatever you read above, don't make a firm opinion about any concept, be flexible for change.
For example, author of 'Thinking Fast & Slow' and Noble Prize Winner Dan Kuhneman admits some of the ideas in books no longer valid. Same with 'The Intelligent Investor' the author suggest that rules of investing do change after a decade a so, so you go and re-write those rules. Hence be flexible to the opinions you form after reading above books.

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