Sharing my preparation strategy for offers from Fb, Google, MSFT etc.

Amazon bloglog
May 10, 2018 58 Comments

I have a post out sharing my offer numbers(under Compensation topic). People Pm'd me asking about my preparation startegy and interview experiences, hence this post.

Background -
Total 5.5 years exp, MS in CS.
Currently SDE2 in Amazon. My team is good, only issue is I have been working 65-70hrs/week on avg consistently for past 6months or so. Was planning on switching team but decided why not try a new company. Also I have spent almost 5 years in Amazon itself, so seems great time to look out.

Prep started in Jan, hit up my friends and contacts in Fb,Google, Apple and MSFT for referral, and schedule phone screens for mid Feb.

Firstly went through all the fundamentals for following topics ,
Data structures - Tree(bst, n ary),Graph, Priority Queues, Linkedlist and Trie
Algorithms- Searching , sorting, some Greedy variants, backtracking and finally DP.
Bit manipulations
Alogrithmic analysis(Big O)

Spend around an hour or two on each. Mostly refreshing them and getting absolute clarity on fundamentals.
Resources - Google search to find University's pdf or.ppt for each topics.

I decided to use Java(since that is what I used last 5 years) , so got well versed.with general collections library, priority queues , impicit conversions and all tools I could use to crank out code.

For practice, Cracking the coding interview was God send. For each topic worked through the topics. Solved around 15-20% of problems and rest read and understood them. I didn't use whiteboard but rather laptop to practise and made a point to ask for laptop in interviews

Leetcode, unlike many others , I just did around 50 or so problems. All mediums.

System design -
Current work in Amazon involves distributed applications so that definitely helped.
I have been lucky to design , get reviews by PE build tier 1 systems. Also went through the experience of being burnt by wrong decisions on tradeoffs and the fixing them. Hence I think the experience gives another dimension to just theoretical knowledge.
Theory wise,
CAP theorem, Flp , issues with asynchronous distributed systems. Protocols for consensus (Paxos). Variations on Consistency (Linearzable to eventual and everything. in between). General components to scale systems(load balancers, statelessness etc). Nuances related to replication and partioning. Consistent hashing and assignment mappings etc.
Papers to definitely read
Chubby
Paxos made easy
Kafka
Original dynamo paper
Chord or Pastry DHT.

Timeline for prep were,

Start of Jan to Mid Jan - Refreshed each topic
Mid Jan- mid Feb - Atleast go through each topic in Cracking the coding interview(reading and understanding mostly)

Late Feb - Phone screens

Practise more problems from cracking coding interview Feb and March. Mostly weekends and sporadically during week.

March last week and Early April week interviews.

Whole April, team matches and waiting for approvals.

Later April early May offers.

I'll add/edit more if I remember something.
I'll create a separate post for interview experience.

comments

Want to comment? LOG IN or SIGN UP
TOP 58 Comments
  • Microsoft helper_
    I hope you’re not trolling. Just doing 50 questions of leetcode is definitely not enough. You must be preparing long before you really started preparing.
    May 10, 201811
    • Microsoft helper_
      Yeah cracking has 189 problems. That makes it 239 problems in total. Ok that’s a sizable number to get through.
      May 10, 2018
    • Microsoft helper_
      Not really. OP’s experience was good. Not everyone has the same experience. Companies expect near perfect solutions to problems in a very short time. If you don’t know the solution before hand good luck. Obviously it depends on the nature of the problem too. Coughing up a brand new algorithm to a medium-hard problem on the spot and solving it near perfectly. Now multiply this by 2 as you’re expected to solve 2 problems in 45 mins. Give me a break about intelligence!
      May 10, 2018
    • Microsoft helper_
      He got fang after 239 questions, not 50. Read above. He mentioned solving all cracking.
      May 10, 2018
    • OpenText / Engno_scrubs
      I'm a creative/innovative thinker. If I haven't seen the problem before, half the time the solution I think of is different from the standard textbook solution. This throws the interviewer off, and they don't know where to go from there.
      May 10, 2018
    • Vistaprint / Eng🌲 Trunk
      /r/iamverysmart
      May 10, 2018
    • Microsoft / EngAmI3vil
      OpenText, I used to do that, too: it’s due to inexperience. After solving more problems and looking through Cracking the Coding Interview, as well as asking candidates some of the questions I’ve gotten myself in the past, I saw there were efficient and obvious coding patterns that people use.

      You should use those, if you know them. Communication is half the battle.

      Plus, nobody wants to see that “creative” code in their code base...
      May 10, 2018
    • Oracle / Engafrdw
      You serious? Before blind I had never even heard of leetcode. Not everyone treats interviewing like it's time for final exams and you slept all semester.
      May 10, 2018
    • OpenText / Engno_scrubs
      @AmI3vil Ok, you're right. I just realized that the problem an onsite interviewer gave me was a dp problem that could use a memoization table. (Problem statement: Implement a power function. For example, power(2, 5) = 32.) The "creative" way I originally thought was to start with the base. Then square it as many times as you can to while still being below the desired exponent. Then multiply the product by the base until you reach the desired exponent.
      May 12, 2018
  • Wait so did u get any offers yet
    May 10, 20182
    • LinkedIn
      Lebr0n

      LinkedIn

      PRE
      Goldman Sachs
      Lebr0nmore
      Yes. Good offers - FB, G, MSFT, etc
      May 10, 2018
    • Oracle Howmany
      Plus Amazon and Apple
      May 10, 2018
  • LinkedIn
    Lebr0n

    LinkedIn

    PRE
    Goldman Sachs
    Lebr0nmore
    Awesome experience! Thanks OP! You only did 50 lc. How were the interview questions? Were they harder than what you practiced? Were you able to solve all in < O(n^2) time?
    May 10, 20182
    • Amazon bloglog
      OP
      Yeah did only 50lc, but worked thorough cracking coding interview.

      Regarding interview diffculty,

      G~Airbnb >>> Fb~Appl >>>>>>Msft.
      Btw, got rejected from Airbnb.

      Both G and Airbnb had graph/dp , enjoyed solving those. Fb was tamer and mostly straightforward. MSFT was I would say lc easy maybe medium or two, it was unexpectedly easy.

      I'll see if I find time to pen down interview experiences.

      Also I think difficult is blown way out of proportion on net. Even some harder questions are asked with not expectations of solving it fully but to see how you think through.

      Sorry did not take a look at LC hard(intentionally to not get demotivated :) )
      May 10, 2018
    • Daimler google2be
      Amazing!
      May 10, 2018
  • BetterWorks / OtherB.B.8
    Nice, I had a very similar timeline of events as you.

    To add some of my own strategy to this thread: I went all in on LC, using tags to go through each of the categories that OP listed, do a handful of problems in each category (ramping up in difficulty). I do a second round through all the categories again to reinforce after the first pass, so this ended up being something like 150+ problems. Also my emphasis is to make sure I've seen as many problems as I can and associated question types with the solution algo. Thus to prevent wasting time, I'll google the answer if I'm stuck/stumped for 30+ min. It's easier to think of it as training for muscle memory / recognizing patterns rather than training yourself to "devise algos from scratch." This is important because companies like Google will avoid LC problems, but there are only so many derivative questions one can come up with.

    I know this may be an anomaly, but I was barely asked any DP problems or LC hard. My suggestion is to tackle a few LC hard, learn the sol but don't stress over them.

    For system design and general interview I also utilized these two guides:
    https://github.com/jwasham/coding-interview-university/blob/master/README.md
    https://github.com/donnemartin/system-design-primer
    May 10, 20183
    • Amazon bloglog
      OP
      Thanks for sharing, btw where are you headed now ?
      May 10, 2018
    • BetterWorks / OtherB.B.8
      FB also! Starting very soon!
      May 10, 2018
    • West Corporation theocean
      Thanks for the github links.
      Jun 5, 2018
  • Intel baboinka
    Now this is a good post to read. Too many shit topics on Blind lately..
    May 10, 20180
  • Microsoft Helloooo
    Just curious, why didn’t you try for Uber, Airbnb and other unicorns?

    Looking at your knowledge in distributed system, you deserve E5 :-)
    May 10, 20182
    • Amazon bloglog
      OP
      I did Airbnb and got rejected :). Rest I did not have contacts/friends to get referral and did not want to put effort in pinging recruiters and try to get someone to respond.
      May 10, 2018
    • Oracle HairyLeson
      Were Airbnb questions hard? Did they ask complicated graph problems?
      May 11, 2018
  • New / EngDey
    I think I know where I fucked up, didn’t study enough. Leetcode medium is already being asked in phone screenings so I guess next time I wouldn’t schedule a phone screen until I have completely mastered all basics. I guess it won’t happen again as I have another year to get really good. Putting all my effort into this.

    Thanks for sharing OP
    May 10, 20180
  • Amazon SMYu17
    Which companies let you use the laptop when you asked?
    May 10, 20183
    • Amazon bloglog
      OP
      Google, Facebook and Airbnb. Btw, you need to ask for laptop and it is not a default option.
      May 10, 2018
    • Amazon nah breh
      At what point did you ask? Like via email ahead of time or when the interview started?
      May 10, 2018
    • Amazon bloglog
      OP
      Asked Hr while setting up on-site and a reminder email a day before onsite
      May 10, 2018
  • IBM / Eng
    6969696969

    IBMEng

    BIO
    Watson
    6969696969more
    How did you like working at Amazon? You said you built tier 1 services, was that at AWS? Don't answer the latter question if you're not comfortable.
    May 10, 20181
    • Amazon bloglog
      OP
      My experience at Amazon hasn't been that bad. One thing , middle managers have too much influence and power over reporting employees, so you definitely need to choose a good manager.
      May 10, 2018
  • eBay ueyegev
    How did you manage to prepare while working 60-75 hours? I am in the same situation. Work burning me out.
    May 14, 20180
  • Amazon highrent
    OP were you able to ask for a laptop in all your interviews (aside from the System design ones)? I didnt know this was an option lol because my biggest struggle has been lack of finesse on a whiteboard. I would’ve done a lot better on laptop if that were an option so this is good to know if thats an option nowadays
    May 10, 20181
    • Amazon bloglog
      OP
      I did not want to waste time practicing on whiteboard , so was upfront about laptop for coding. For Fb G and Airbnb they provided one, so I. Brainstormed solutions on whiteboard but final code of laptop. Cut copy paste is essential and I have habit of thinking while coding and moving things around.
      May 10, 2018
  • Amazon BlindReal1
    Can you share the Comp ranges ?
    May 15, 20180
  • Microsoft blind987
    How do you do the whiteboard coding session?

    I know in the past I did shittily on that since I didn’t spend enough time on leetcode.

    But this time I did an interview recently and felt prepared for every question. I got through it all no problem.

    And then the recruiter told me the interviewers felt my coding wasn’t good enough. 😂

    Like do you guys just go up there and write out perfect solutions without any hiccups?

    I always do fine on coding screens because I write code on the computer and it’s great. The code is neat. The questions are usually easier but the quality of what I write on the computer is better than what’s on a whiteboard

    But my whiteboard coding is always a mess as I write stuff down and erase things. It must be what’s making interviewers think I can’t code.

    I try to explain my thoughts and everything but I always have these awkward pauses as I have to stop and think.

    It’s annoying af to be a strong coder that sucks at whiteboard coding questions and then being told by a recruiter that I should improve my coding skills.
    May 10, 20183
    • Amazon highrent
      this is why I wonder if the OP was able to ask for Laptop for all of the coding questions
      May 10, 2018
    • Amazon bloglog
      OP
      Same here , MSFT and Apple I had to whiteboard . Luckily MSFT was way straightforward and did not have issues. Apple was able to go through it (power through it)
      May 10, 2018
    • Microsoft mauster
      Did you ask for laptop at Apple?
      May 11, 2018
  • Cisco archvile
    Congrats
    May 10, 20180
  • Uber / EngKkyi51
    Op i am bit curious on your numbers from FB and G. Can u share the ballpark?
    May 10, 20180
  • WalmartLabs / Eng
    ahahaha

    WalmartLabsEng

    BIO
    A coder dreams of working in FB Google everyday
    ahahahamore
    Good!
    May 10, 20180
  • Facebook / Eng_anon
    When u used a laptop, did they expect you to debug and test corner cases using tools like coderpad? Or was it just coding and manual validation?
    May 15, 20182
    • Microsoft charli@
      OP, could you please let me know..I have an interview lined up and thinking about asking a laptop.
      Oct 16, 2018
    • Facebook / EngBookEng
      Mostly they don’t ask testing and validation. But depends on interviewer. I did execute some problems. I don’t mind doing it, but I am afraid it adds a few minutes to write main function.
      Oct 19, 2018
  • This comment was deleted by original commenter.

    • Elementum voPhkb
      Check compensation topic, starts with Sharing my offers.....
      May 10, 2018
  • Amazon BlindReal1
    Nice post
    May 15, 20180
  • Elementum voPhkb
    How difficult were the system design questions at these companies?
    May 10, 20180
  • Google Huggfghgf
    Great read, thanks!
    May 10, 20180
  • Elementum voPhkb
    Could you post a link to your other post regarding your offers? I couldn't find it
    May 10, 20182
    • Amazon bloglog
      OP
      Check compensation topic, starts with Sharing my offers.....
      May 10, 2018
    • Elementum voPhkb
      Found it. Thanks
      May 10, 2018
  • Tableau / EngqMd53
    OP, how many problems were in Google's phone screen? I have Google's and Facebook's coming up. I know Facebook asks two coding questions, but what about Google?
    May 11, 20181
    • Microsoft / EngChongching
      My new grad phone screen was 2 problems, they were leetcode medium ish
      May 11, 2018
  • Intuit fundeep
    Which university PDFs did you find that were the most helpful?
    May 27, 20180
  • Smartsheet jjdfh
    While attempting to solve these leetcode medium and hard problems at what point do you give up and see the solution?
    May 10, 20180

Join verified employees in our anonymous social network!Download the app!

close