Hi Blind fam, Just wanted to share how I prepared for a slew of interviews recently. Offers: Google Airbnb Amazon Startup Reject: Facebook Prep: 7 months of daily leetcode problem. (i.e. that means I was spending about 30 minutes per day) Honestly, not 100% sure if I overdid it here, but whatever. 2 months of cramming company problem sets. (i.e. Facebook, Amazon, and Google) Leetcode Count 375. 117 easy, 219 medium, 39 hard. Grokking the System Design Interview. Designing Data Intensive Applications. Pramp. Interviewing...let me say the best way to prepare for interviewing is to interview. That's why you should schedule your interviews by priority of companies you care about. (i.e. companies you care about most interview last) I can't share anything about the questions. Company problem sets were a huge help in getting the fundamentals for those algorithms. Doing those 3 company problem sets mentioned above I would say would at least guarantee you a 50% chance of making it. Was it worth it? Yes, TC went up 40%. Resume will be diversified with some great experience. Moving into another technical area that I want to get more experience in. What did your study schedule look like in the 2 months leading to the interview? I was studying 2-3 hours after a 7-8 hour workday. Personally, I don't believe slacking off at work to study for interviews. If the interviews don't go well, then your best alternative is your current job, so you don't want to be screwing that up. On weekends, I would study 5-8 hours per day. I would say this went on for about 8 weeks. It sucked lol. Also I cut off alcohol during the week of interviewing, but basically in general during these entire 8 weeks since I was studying all the time. Programming language recommendations So this is interesting. I started studying all the way back in April. I started off with JavaScript. Then realized that was dumb because they don't have a lot of the data structures I needed and people judge you for writing JavaScript. Then I moved to C# a few months in. This was better, but still lacked basics such as min heap/max heap/array initilization was a pain. 3 months before interviewing, I decided to pivot to Java. Oh man, what a great decision. Initializing arrays => so much easier. Min heap/max heap => priority queue with lambda parameters. People judging you? => Not a chance. So many companies use Java. Using Java is a plus. For example, you want a min heap? PriorityQueue queue = new PriorityQueue(); You want a max heap? PriorityQueue queue = new PriorityQueue((a,b)->{ return b.compareTo(a); }); How did I negotiate? Competing offers. Let me repeat. You need competing offers. Also let me reiterate, if you get to the offer state, there is no harm in negotiating. If you ask for more, guess what, they'll just say no. They're not going to rescind your offer. This is a common misnomer people have when they get to the offer stage. However, when you think about it, they've already invested way too much time and money in your application to just throw you away for negotiating. Also, your hiring manager may never even know because compensation is often dealt with as a completely different set of people. How did I land the first interview? I tried several methods: 1) Contacting LinkedIn recruiters that reached out (this is the most efficient way) 2) Applying online. This works but you will see a long delay since you essentially get placed into a queue of candidates. 3) Trying a LinkedIn Premium subscriptiong and reaching out to recruiters directly. (this did not work) Do referrals work? Maybe for landing the first round interview? For landing the job, probably not at all. The only referral I had was for Facebook and that was my only reject. đ How did I prepare for Systems Design? To be honest, I don't have a ton of Systems Design experience. I actually think that's why I got rejected at Facebook was due to my performance in this interview. If you're like me, doing all the case studies in Grokking the System Design Interview is your best bet. It's $80, but hey it may make the difference on making an extra 100K per year so the ROI on that $80 is totally worth it. I'd say Grokking was 80% of my knowledge. Designing Data Intensive Applications was probably the other 20%. It's a good read regardless of whether you're interviewing. Just be warned past chapter 6, the author starts to ramble. (i.e. I recommend only reading chapters 1-6)
What level at Microsoft ? Yoe?
5 but keeping level anonymous
Great post! Thanks OP
Thanks đ. Level at msft ? Thought goog will be l5
Thanks for sharing and congratulations!
By âcompany problem setsâ do you mean the curated company sets made by Leetcode or just sorting company tagged problems by frequency?
Could you also please share the levels you were offered for each company? (I know you said L4 for Google above) Also I thought L4 at Google doesnât require system design?
You worked really hard, congrats on your offers :)
It's much easier than that to create a max heap in Java. Use Collections.reverseOrder() in the constructor during initialization.
Yeah but maybe you want a min or max heap on a particular property of an object. Lambda function would make that easy.
Sure. In that case, I personally find it more intuitive to make that object implement Comparable<> and override its compareTo() function. But to each his own.
You worked so hard just to settle for Google L4? Hereâs my unpopular opinion: Interview more. Try for Uber, Snap, Instacart, Coinbase etc. Those will easily beat the Google L4 offer by at least 50k. Plus if you do well at Uber, youâll get a L5 role.
Congrats!! Yoe?
5
Where did you join ?