avatarJ Li

Summary

The article outlines essential resources and strategies for landing a job at FANG (Facebook, Amazon, Netflix, Google) companies, emphasizing the importance of system design knowledge, coding interview preparation, and fundamental algorithms and data structures.

Abstract

The author shares their personal journey and the resources they utilized to secure a job at a FANG company. Key resources include "Grokking the System Design Interview" and "Designing Data-Intensive Applications" for system design, "Cracking the Coding Interview" and its accompanying GitHub repository for coding interview preparation, and online courses such as "Algorithms, Part 1" alongside the textbook "Algorithms" for foundational computer science knowledge. The article also highlights the significance of object-oriented design, recommending "Grokking the Object-Oriented Design Interview," "Head First Design Patterns," and the classic "Design Patterns: Elements of Reusable Object-Oriented Software." Additionally, the author stresses the importance of practicing interview skills in a real-world setting, such as in front of a whiteboard, and maintaining patience and determination throughout the job application process.

Opinions

  • The author believes that system design knowledge is crucial for FANG interviews, as employers are looking for engineers who can build scalable systems.
  • "Grokking the System Design Interview" is regarded as the best system design material for beginners, providing comprehensive coverage of common design topics.
  • "Cracking the Coding Interview" is highly recommended for understanding the interview process and preparing for technical coding questions.
  • Visual learning materials, such as online courses, are preferred by the author for grasping fundamental algorithms and data structures.
  • Object-oriented design is considered an essential skill that can be reflected in coding interviews and can influence the completeness of a candidate's answers.
  • Practicing speaking in front of a whiteboard is seen as a critical aspect of interview preparation, helping candidates convey their thoughts effectively.
  • The author emphasizes patience and determination as key traits for candidates to possess, as the job search process can involve rejections that do not necessarily reflect a candidate's abilities.

Resources that help me land a job at FANG

Photo by Sharon McCutcheon on Unsplash

(This post is also available in my blog)

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

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 candidate 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. It covers quite a lot of common design topics and examples to which it applies theories. The course is quite useful for beginners.

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 assessment to phone interview to onsite interview. The process varies from company to company. Reading the first chapter gave me good expectation because of the great details.

Not only this book demonstrates 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.

If you lack of fundamental algorithm 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.

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. A advantage of these courses is that the author constantly updates the content.

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 modular 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. Practicing 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 similar 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.

Previous posts:

System Design Interview: How to Design a System to Handle Long Running Jobs

SQL (Relational Database) or NoSQL? Ace the FAANG System Design Interview

My posts about FAANG interview

My posts about Finance and Tech

From CRUD web app dev to SDE in voice assistant — My ongoing Journey to Machine Learning

Full Stack Development Tutorial: Integrate AWS Lambda Serverless Service into Angular SPA

Full Stack Development Tutorial: Serving Trading Data with Serverless REST API running on AWS Lambda

Full Stack Development Tutorial: Visualize Trading Data on Angular SPA

Reinforcement Learning: Introduction to Q Learning

Interview
Jobs
Job Hunting
Technology
Recommended from ReadMedium