How I got Offer from Microsoft, Amazon, Flipkart, Walmart & Oracle

My journey to dream job. Graduated in 2009 and reached at Amazon in 2018, took 9 years and 87 Interviews to fulfill a distant dream.

Dhaval Dave
9 min readOct 18, 2019

What this Article covers

  • My background
  • How I prepared for Oracle,
  • How I prepared for Flipkart and Microsoft and Amazon.
  • Tips from my experience.

Lets start from My background.

I graduated from Tier-3 College in 2009, Where we learnt C++ and Java but Our coding skills were kind a ZERO. We were not even aware how pointer of pointers works or how to write code for binary Tree.

Only knowledge we had were how to write SQL queries, or write java code for CRUD operation.

I did two years job as associate Lecturer and then Full Stack Developer for few months where version control like GIT was not used (You can imagine what I would have learnt there ) So I decided to do Masters preferably from IIT.

Entering into Tier-1 College like IIT or NIT is not easy in India, some how with hard work of 16+hours a day for 8 months, I managed to get 99.40% in GATE and got Admission in to NIT-Warangal in 2011, Here I studied all premium subjects like cryptography, Mobile Adhoc Network, Virtual Private Databases. I filed three IEEE papers, applied for patent, still they were not adequate to land a job at Tier-1 MNC like Amazon, Microsoft.

In campus drive I was rejected in Amazon in last round due to less knowledge of Interview questions of Data Structure and Algorithm like Find if you can visit N Petrol bunks situated in circular manner.

Step — 1 : Getting Job at Oracle

From Campus Interviews I got job at Oracle : Here are list of things I did to prepare for Oracle.

I asked what to prepare to recent joinees of Oracle from different colleges like IIT and NIT, and to do so I used my LinkedIn and Facebook to find who got job and where. Only thing I understood is Data Structures, Algorithm and any one Programming Language is must to excel.

Milestone-1 : Data Structure

If you see the questions these companies ask in Data Structure is not as straight forward as “Print Binary Tree or BST” which we learn from book and internet. They ask “Print Right View of Binary Tree or Print Level order traversal of Tree in Spiral Order”.

image courtesy : google search

First step : was to understand basics of each Data Structure, understand each concepts like How array is printed, how LinkedList is formed and How 2D Array is printed etc.

Second step was to start reading about Interview question and their possible solutions from careercup and other sites and books like cracking coding interview, kurumanchi.

Once you understand the solution it was easy to crack such coding problems

Milestone-2 : Trying some Interviews

After understanding and practicing plenty of such questions I gave few shots at Interview of Microsoft and Amazon.

And I Failed miserably.

After retrospection I found I have understood all concepts and topics, practiced many questions but they were sort of mugged up solutions,
If a new question comes up in interview, I was trying to solve it with methods which I knew or I read previously.

So It was mandatory for me to understand how to create solution from scratch rather than understanding existing solutions present in many sites and books.

Milestone-3 : Preparing Again

This time, I used a strategy not to see any solution and try creating my self solution, yes these solutions were not optimized by space and time complexity but they were some thing I created on my own.

image courtesy : google search

Now it was time to understand how to optimize these problems by Time and Space complexity and what it takes to do so.

For this, vast reading of solutions was very much useful. From my created solution A to Optimized Solution B, I started thinking what things were missing and how I would solved that problem again.

Such practice made me create my own solution from scratch

Example 1 : Dynamic Programming Edit Distance problem : You need to understand why such table is necessary to solve this problem and how to use it to create solution not just which code is used to create this table

Dynamic Programming Table for Edit Distance.

Example 2: See this video of “Find minimum insertion to form a palindrome string” , this video explains how to start from scratch with base case of 1 length string to create recursive solution of N length string, and then optimize it with Dynamic Programming.
This level of understanding for each DS and Algorithm is required.

And that cleared my path to get job at Oracle in 2013.

Step-2 : Writing at Gohired.in and Teaching

One thing I understood after discussing with many co-applicant in interviews that people who failed to crack that round or failed to get job were those who read many interview questions from internet and books, but never understand or developed thinking pattern how to create these solutions on their own.

So I started writing blog in 2015 about this interview questions, but not with only coding solution but how to arrive at this solution.

And I started teaching few people how to crack coding Interview, where I had to prepared how to solve many questions and how to create these solutions rather than how to understand existing solutions.

After Learning DS and Algorithm main step is to convert your thought logic into code appropriately and effectively
Example: in Word search Problem of LeetCode : You have to use Depth First Search to traverse to 4 adjacent location.
You can code like

bool res = dfs(i+1,j,word) || 
dfs(i-1,j,word) ||
dfs(i,j+1,word) ||
dfs(i,j-1,word);

Or You can effectively write code like below which is reusable and easily modifiable (think for case when u have to add 8 direction or remove 2 direction)

int iA = { 0, -1, 1, 0 };
int jA = { 1, 0, 0, -1 };
bool b = false;
for(int ia = 0 ; ia < iA.length; ia++ ){
for(int ja = 0 ; ja <jA.length ; ja++) {
b = b || checkExist(board, word, i+iA[ia], j+jA[ja],x)
}
}

Milestone -4 : Getting a job at Flipkart and Walmart

When I was targeting Flipkart/Amazon, the most necessary part was to prepare what will come at me, You need to check different types of rounds they take and majorly what they expect you to answer.

Some companies has first rounds as Competitive programming from HackerEarth or HackerRank while some has machine coding or developing small project like “Design and Code for Expense share application (like splitwise)” or “Design and Code for Chess move validator.”

Main rounds are System Design round after DataStructure and Problem solving rounds, where you have to prepare to create high level architecture and low level design for any of the existing world application, example Uber Pool/Car-pool system, or Design Movie booking system like Odeon or BookMyShow.

To prepare for such System Design round, I read many blogs of existing tech giants like Twitter, Uber, HotStar : https://blog.twitter.com/engineering/en_us/a/2010/announcing-snowflake.html,
https://stripe.com/gb/blog/rate-limiters
,
How HotStar scaling lead to breaking live stream record in world
https://blog.hotstar.com/tagged/scaling

which gave me idea about how to think for High Level Design(HLD) and Low Level Design(LLD) afcourse You need to well versed with some concepts like MicroService based Architecture, REST APIs, Cache, Load Balancers & Elastic Load balancing,Database normalization etc.

So Prepare for the battle after knowing which battle you are going to fight.

Milestone-5 : Getting Offer letter of Microsoft and Amazon

I started taking Interviews at Flipkart for Data Structure round and System Design rounds, Which made me prepared for next interviews, as I had to be prepared for what I was asking in Interviews at Flipkart.

Also understanding different architecture of Flipkart helped me a lot in improving my system design skills, I used to read a lot in discussions and tech blogs of giants.

When I started taking interviews, I understood what kind of mistakes people do generally in Coding Interviews and System Design Interviews, And I started learning from other’s mistake, which is must.

well once I was prepared in all fronts of cracking a coding Interview in 2017–2018, I wanted to try for both Microsoft and Amazon.

Before that I have given SDE-III interview at Walmart, which was very similar with Microsoft’s interview in terms of DS, Algo and System Design & I cleared it, but my Aim was Amazon.

Again both companies has different structure and requirement in rounds, but in nutshell all drilldown to same Data Structure, Algorithm, System Design and some behavioral questions.

image courtesy google search

Bar Raiser Round at Amazon : This round in Amazon has everything, Bar raiser are specially trained to find out where you actually stand in data structure, logic, system design and real concepts of programming.

To crack this round I was prepared with all concepts of shell programming, db normalization, HLD & LLD, no-sql database concepts & Amazon Leadership Principles and their example wrt to my current work.

In 2018-I had offer from both Microsoft and Amazon, And to learn more complex eCommerce systems I chose Amazon.

Tips for Any one to crack Coding Interviews at Any Tech giant from my experience

  1. Clear all Concepts of Data Structure, Algorithm and System Design
  2. Find list of questions of each data structure from internet (careercup, gohired, leetcode, hackerearth…) And Solve majority of problems for each Data structure and Algorithm on your own, see whats missing form optimal solution and try to derive that optimal solution from where you were.
  3. White boarding of each code : Convert your pseudo code or logic to actual running code at least on white board or paper.
  4. Run your code with different Test Cases : If you have not coded in compiler, prepare list of test cases and try to dry run your code and see if there are any errors or edge cases are missing. (Trust me : this is where many candidate fails, I have experienced this while taking interviews at Flipkart and Amazon)
  5. System Design : Once you grow in ladder of Software Engineering this skill is must. Not only in Interview of senior engineer but in day to day life of Senior developer
    Be prepared for System Design from interview perspective to design real stuffs.
  6. Confidence : This is most important of all.
    Starting in 2009 and reaching at Amazon in 2018 (9 years after) was not at all easy journey. I had many setbacks, I had many failed interviews, to be precised I have appeared in 87 whole Interviews (I have kept a list of all interviews I have given after my masters) and I have succeeded in in getting cracking 22 interviews, I chose finally few company after understanding work, or getting to know work culture or pay.
  7. Learning from mistakes : सिंहावलोकन/Singh-Ava-lokan/Retrospection : When Lion walks 5 steps, he checks always his back if he is has done any mistake or not. Be like Lion, learn from mistakes and do not repeat them, in all 87 Interviews so far I learn from each failed interviews, I learnt from each successful interviews as well.

Best Luck guys for preparing for your dream job.

I will write next article in few days about my Amazon interviews (failed and succeeded one) with each round’s question and my learning.
Follow me for that update
.

If you have any doubt, you can find me on
LinkedIn : https://www.linkedin.com/in/davedhaval87
or at my website www.gohired.in

--

--

Dhaval Dave

Mentor @GoHired “Crack Coding Interviews”, EX-Amazon, Flipkart, Oracle.