Introduction
Giving back to the Leetcode community by sharing the strategies/tips/resources that helped me get L4 offers from Google and Facebook.
There are no innovations here. My goal for this post is to provide:
- A few useful tips that you might not have seen yet
- Strategies that worked for me
Tips by interview type
Coding
Tips
- Do mock interviews until you’re comfortable with being watched and thinking out loud. Find a buddy on discord or other platforms. After getting comfortable with the mock interview aspect of things, I’d suggest cutting down on mocks. I think being the interviewer is less productive than using the time to solve another problem instead.
- Make leetcode a part of your morning routine. Solve at least one problem every day.
- Take notes about each problem you solve. Have a note with 3 columns: problem, date, performance. Add a new row for each completed problem. In the performance column, evaluate yourself based on the categories from Yangshun’s Tech Interview Handbook. This will help you identify your weak spots like forgetting to test thoroughly.
- Get used to working on problems without pen/paper/whiteboard. I think this is going to stick around in the post-covid world. Get over the need to draw big trees & graphs.
- Don’t spend more than an hour on a problem. I know opinions are split on what to do next, I personally open the solution if I can't come up with an idea for 15 min. I then add the problem to the redo list (described below).
- Best resources for more tips like this:
- CTCI intro chapters
- Yangshun’s Tech Interview Handbook. This handbook is a goldmine overall. If I had to choose just 1 guide for interview prep, it’d be this one.
Problem sets I used
- Blind 75. Link to the leetcode post. Lots of people recommend this one. I picked it up at the time when I already solved 150 problems and felt more confident, but this list exposed a bunch of new topics that I needed to practice.
- “List of questions sorted by common patterns” post here on Leetcode - link
- Leetcode Mock mode. I strongly recommend this one, not so much for the time constraint, but for the benefits of not having to decide which problem to do next. You don't want to tire your brain trying to pick the next problem. To learn more, read about "decision fatigue".
Organizing your leetcode todo
Have a note with 2 sections:
- New problems. Links to leetcode problems you want to do next. Keep it under 10 to not overwhelm yourself. Put other links elsewhere.
- Problems to redo. Read about "spaced repetition", keep redoing a problem until you can solve it fast.
System design
Tips
- Do mock interviews. I found great interview partners on Discord. Exchange contact info with your interview partner if they’re in a similar boat. Exchange tips and keep each other motivated. When you take a turn as an interviewer, take detailed notes and share high-quality feedback.
Favorite Resources
- Mikhail’s “System Design Interview” YT channel. Super high quality content. See comments there if in doubt.
- Github system design primer. Good solutions in written form. You do need to supplement it with other resources though.
- “My System Design Template” post here on Leetcode - link. I just followed that.
- YouTube videos from various authors. Take the problem topics from Gro__ing, watch videos for them.
Behavioral interview
Tips
- Practice out loud.
- Don’t expect to be able to read answers from your notes if it's a VC.
Favorite Resources
- CTCI intro chapter – fill out that grid
- Yangshun’s Tech Interview Handbook chapter on the behavioral round
- Jackson Gabbard YT video
Resume prep resources
1.Google “This Is What A Good Resume Should Look Like”
2. Resume chapter in Yangshun’s Tech Interview Handbook
Recruiter call tips
- Prepare a note with 1) your questions to them; 2) answers to questions you expect
- During the call, write everything down. You’ll be surprised how much you forget otherwise.
Company-specific
FB
- Timing goal: it’s indeed <20m per problem, but the point to keep in mind is that it’s highly likely you’ll get a problem you’ve seen before. So it’s not the end of the world if you can’t solve every new problem in <20m.
- Sort by company + popularity and solve the top 30 problems.
Google
- I saw someone say “you either pass google on first try or never”. This is a myth. My interview questions weren’t the kind that I’d describe as filtering for high IQ talented geniuses.
Big ideas from outside
These are things I picked up from podcasts that have nothing to do with interview preparation, but I found them beneficial.
Deep Work
- There's this book by Cal Newport, it preaches "hard but important intellectual work completed during long uninterrupted periods of time". It applies to interview prep really well.
- Some tips from it: turn on DND mode on all your devices, put your phone in a separate room, work hard until a set finish time.
- Google for “deep work summary” and collect more tips. I do recommend the whole book too.
Meditation
- Consider it if you're:
- Stressed out
- Having trouble focusing
- Personally I discovered other benefits as well. Look around the internet for more motivation and benefits of meditation, it's legit.
- Use an app – doing a course makes a huge difference compared to standalone YT videos
- Meditating for 5 min right before the interview is great