How to Land a Front-end Software Engineer job at Big Tech Companies such as Google, Facebook, and Twitter

Leanne Zhang
Jan 4 · 6 min read
Image for post
Image for post
(Google, Amazon, Airbnb, Dropbox, Uber, Square, Twitter, Github, LinkedIn, Slack, Lyft, Apple, Facebook) Image Src

Introduction

I have been working as a Front-End Software Engineer at Twitter for three years. Prior to working in San Francisco, I had worked in startup companies in Vancouver, Canada, and prepared myself for interviews with big tech companies in Silicon Valley.

Interviews are difficult and it’s even more challenging when you are interviewing from another country. Being a candidate as well as an interviewer, I would like to highlight important tips on how to prepare for a front-end interview to maximize your time. I have separate blog posts on Relocating to the US from Canada on a TN Visa and Why I moved and How I find a Software Engineer job in Silicon Valley while working in Canada. In this post, I would like to focus on how to prepare for a front-end software engineering interview in big tech companies.

Disclaimer: This post doesn’t represent all the questions that the big tech companies asked. It’s served to give an overview and allows you to focus on the most important parts for a front-end interview.

Structure of interviews in big tech companies like Google and Amazon

Normally, they have 3 stages.

  • Stage 1 is the initial technical phone screen usually lasts 45 minutes.
  • Stage 2 is the take-home assignment. This could be optional depends on the company.
  • Stage 3 is the onsite interview or now a virtual interview due to the pandemic.

Stage 1. initial technical phone screen (45 mins)

  1. Introduction — 1 min
  2. Career aspirations — 5 mins
  3. Coding via online editor such as CoderPad — 30 mins
  4. Questions for the interviewers — 5 mins

How does the interviewer evaluate your technical interview?

  • Did you solve the problem on time with minimal or no hints?
  • Did you take the time to understand and clarify the questions before coding?
  • Did you speak your thought process out loud during the interview?
  • Did you find bugs before the interviewer catches them?
  • Can you make the code more efficient?

Preparation: please spend some time to get yourself familiar with the CoderPad before the interview.

If the interviewers are not 100% sure about the candidate, they might ask the candidate to do another round of phone interviews before bringing them onsite.

Stage 2. Take home assignment (Optional)

This isn’t common in big tech companies like Google, Facebook, and Amazon but more in smaller to medium size companies like Medium or Netflix. For example, they might ask you to build a simple web application like a boggle game or a calendar and give you a week to work on it.

How does the interviewer evaluate this?

  • Did your assignment work with no errors?
  • Does it capture all requirements?
  • Does it cover all the edge cases?
  • No leftover console.logs
  • Code is not overly repetitive
  • Code and comments are clear
  • New functions are well named
  • Do tests exist? If yes, are they meaningful?

Stage 3. Onsite Interview / Virtual Interview

The onsite interview normally would take a full day targeting four main areas.

  1. Data structures and algorithm
  2. Front-end domain
  3. Web architecture and design
  4. Behavioral Interview

1. Data Structures & Algorithm

Smaller and startup companies tend to focus more on front-end domain knowledge, but a lot of big tech companies still put emphasis on data structures and algorithms to evaluate your abilities to solve problems.

A good place to prepare for algorithms is the HackerRank interview preparation kit or go through the Cracking the Code interview book. Since you are interviewing for a front-end position, make sure you practice solving the problems in JavaScript, and know the Big-O time complexities. If you are interested in a step-by-step interview guide with solutions and don’t mind paying, check out the Ace the JavaScript Coding Interview in educative.io.

Once you are familiar with HackerRank Interview Preparation Kit, I would recommend practicing on LeetCode, starting from easy to hard questions.

In general:

  • If you are looking for an internship, practice on the easy questions first.
  • If you are a junior and intermediate software engineer, practice both the easy and medium questions.
  • If you are a senior, work on easy, medium, and hard questions.

How does the interviewer evaluate this?

  • Did you finish solving the problem within the time allocated?
  • Is your code efficient?
  • Did you speak your thought process out loud?

Tip: Since you are most likely will be writing your solutions on a virtual whiteboard or a plain text editor during the interview, while practicing, write your solutions using a pen, copy the code to an IDE, and check if they compile successfully.

2. Front-end domain questions

The interviewers may ask you to build a UI widget from scratch. The best way to prepare for this is to code and build a widget using your favorite IDE or the online CodeSandbox in plain vanilla Javascript, Html, and CSS.

Example questions:

  1. Design a 5-star rating widget
  2. Build a 7 days weather forecast web application
  3. Build a monthly calendar

Tips:

  • Try to learn how to use native fetch, this could save you some time.
  • Know how to layout your UI components using flexbox or CSS grid. Interviewers appreciate the candidate’s attention to detail.
  • Understand Promises versus callbacks. Implement promises from scratch, and how to handle errors from promises. Memorize a new Promise((resolve, reject) => {}), this saves a lot of time in interviews.
  • Understand closure — be able to explain what closure is.
  • You can practice by doing it yourself without looking at answers from https://javascript30.com/

My favorite resources to learn JavaScript:

3. Web architecture and design

There is no right or wrong answer when it comes to answering the design question. What the interviewers are looking for is your depth of knowledge of the web application system to determine what level of software engineers you can be.

Be prepared to answer how the internet works at a high-level.

  • Example of an open-ended question: “What happens from the time you enter a URL and hit enter until the website is displayed in the browser?”

Examples of front-end design questions:

  • Design a hotel booking system
  • Walk me through the front-end architecture of the real-time chat application

The interviewers are looking for:

  • Have you clarified the requirements and narrow down your scope?
  • How well can you design the APIs?
  • How well can you design the database?
  • How are you handling UI components and states of the web application?

My favorite resource for learning about web architecture is Web Application & Software Architecture from Educative.

Further reading: System design primer is also a good one but I found it to be more useful for a full-stack or a back-end role.

4. Behavioral Interview

This last part of this interview is conducted with your hiring manager. He or she would like to go over your resume and hear about your experience and projects.

Please highlight your accomplishment, what you learned, what you want to improve, and what you want to accomplish next for your career.

Additionally, please come prepared with questions for the hiring manager. The hiring manager is looking for your passion, self-awareness, and team fit.

Conclusion

Thank you for spending time reading this article. I hope you find it helpful. I’m cheering for your next job search. If you have done any interviews recently especially during this pandemic, please feel free to share your experience in the comments below.

If you would like to have further reading on getting started for software engineer, I highly recommend this book A Smart Guide for Your Career as a Software Engineer.

Lastly, I could not thank enough my amazing reviewers Mike Nikles, KahWee Teng, Xin Lai, Rong Lim for their great feedback and insights based on their work experience.

JavaScript In Plain English

New JavaScript + Web Development articles every day.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store