Resources that help me land a job at FANG

header

In about the same time last year, I started to prepare for interviews of big tech like FANG. In one of my posts, I talked about leetcode’s role in landind the job. I think it will help more to list all resources I had used to make this come true.

System design: Grokking the System Design Interview and Designing Data-Intensive Applications

System design is increasingly important in FANG interview because the employers not only want a programmer, but an engineer who know how to build scalable systems. A candidiate is expected to know different perspectives of a system, resources like storage, memory, network etc. The candidate should also talk about trade off when a particular decision is made. Grokking the System Design Interview is the best system design materials so far. (If anyone knows better resource, please let me know in the comment).

Cracking the Coding Interview and CTCI github

This book literally opened the door to the interviews in big tech. I bought this book a couple years ago when I got my first phone interview from FANG. It helped me understand what the interview processes look like, from HR screening to online accessement to phone interview to onsite interview. The process varies from company to company. Reading the first chapter gave me good expection because of the great details.

Not only this book demonistrates the process of interview process, but it also provide good coverage of technical coding question types. If you have learned basic data structure and algorithms, this book is perfect for you to get a taste of what the coding questions look like in big tech interview. What I like the most is the author gives you some tips on how you should approach to the question when you get stuck. Also, how you should get clarification with the interview matters a lot too.

The data structure and algorithms parts are also great. What makes it even better is it has working solutions to the questions posted in github. It’s very handy and good for studying topic by topic systematically.

Algorithms course and Algorithms (the book)

If you lack of fundamental algoirhtm and data structure, you can start learning from online courses. Personally I find I prefer more visual materials like video. So I always start from free online courses. But once I want to dive deep, I will have to go with Algorithms. Algorithms is a great reference which gives you both breath and depth of the algorithms you will use during the interview.

Object Oriented Design Grokking the Object Oriented Design Interview, Head First Design Patterns and Design Patterns: Elements of Reusable Object-Oriented Software

There can be a round of Object Oriented Design interview depending on the company or the level of the position. Even there is no dedicated round for testing OOD, it can be reflected from the code you write during the coding interview. It can also be an indicator of how good you are.

Grokking the Object Oriented Design Interview has great examples for building systems from Object Design perspective. Examples like “Build a LinkedIn”, “Build a Facebook” will give you ideas of what objects will be needed and how the objects’ relationship will be. Combining this course with the Grokking the System Design Interview can help you get a complete picture of building systems. Hence you will likely have a more complete answer in the interview.

Head First Design Patterns is a great introduction if you are completely new to design patterns. This provides very straight forward examples which help quickly grasp the concepts of common design patterns. The coverage of difference patterns is also high. This book can guide you to choose an appropriate pattern based on requirement. This can be a bonus point for you to talk about your choice of pattern during interview.

The famous Design Patterns: Elements of Reusable Object-Oriented Software by Gang of Four is a classic design pattern book to help you write moduled reusable source code.

Talk like you are in a real interview in front of a whiteboard

This is one thing that you may easily overlook. Being able to convey your thought is very critical in real interview. It’s a key ability that interviewers look for. I bought this whiteboard and started to go through solution in front of a buddy. I was surprised how bad it could be even I had clear solution in my mind. Practising in front of a whiteboard definitely improve the interview skills. You will find this much more important in the system design interview. I personally prefer wall-mounted board over the standing board as wall-mounted wall is more simillar to what you will get.

Patience and Determination

It is not gonna to be smooth. If rejection comes, it does not necessarily mean you are bad. Ask the HR for feedback on why. Keep applying. I have been there. Patience and determination are all you need to nail it ultimately. It’s the most important piece.

Written on December 15, 2019