Onsite Interview Tips for Facebook / Google / Microsoft / Amazon / Apple


Guess what, the Big 5 (Top Internet / Software Companies) have similar recruiting process for SDE/SWE/SRE/SE positions (Software Engineer, Software Development Engineer, Site Reliable Engineering).

On the final interviews (aka onsite), it usually involves at least 4 rounds (Google may have 5 rounds). It consists of at least 2 coding interviews (focusing on data structures and algorithms), 1 behavior questions (leadership), and 1 or 2 system design interviews.

Below are a couple of tips. Please read through the points below to give you the best possible chance of succeeding in your interview. Remember, each interview will last 45mins so please keep track of time as you’re coding and designing solutions.

Coding Interview Tips

You will have 2-4 questions to work through during this time. Ask clarifying questions before you start coding to ensure you have a good understanding of how to approach the problem. Do remember that you need to work through the problem in an efficient manner to get to an optimal solution within the time frame

  • The interview will focus on data structures, algorithms and CS fundamentals
  • As you are coding, explain your thought process out loud (no silent coding) so the interviewer can follow/understand the way you are tackling the problem
  • If the interviewer gives you hints, take it on board and try to incorporate it into your solution. They are trying to help you get back on track
  • The aim is to get to an optimal solution within the time frame. Review your code – fix any bugs and don’t forget to test your code line by line. If testing shows a more optimal solution, talk to the interviewer about it and implement if time permits
  • Practice coding on a whiteboard/laptop under time constraints
  • Practice testing your own code and finding bugs

Behavioural interview Tips

With this interview, we are seeking candidates with the following attributes – ability to work with minimal guidance, self starters, proactive, empathetic, able to take difficult feedback and act on it, not afraid to make mistakes/fail but to learn from these mistakes, and lastly, that you if you don’t know something you are willing to learn and able to identify areas of improvement. You will be asked questions based on your prior experience, so have 10 examples in mind. Some points to help you prepare:

Feedback

  • Can you give an example of a valuable piece of feedback that you have received?
  • When did you receive constructive/negative/difficult feedback? How did you act upon this?

Teamwork/Collaboration

  • How would your co-workers describe you?

Conflict/Disagreement

  • Describe a time where you had a disagreement or conflict within your manager or colleague
  • Can you describe a situation where you had to work with a decision that you didn’t agree with?

Mistakes/Failures

  • Describe a technical mistake you have made recently? What did you learn?
  • What’s the most difficult/challenging problem you have had to solve?
  • What is your biggest failure? What did you learn from this?

Self Starter/Proactive

  • If things aren’t going to plan, how do you move yourself/your projects forward?
  • When did you set a goal? How did you achieve it? Can you describe a time you didn’t achieve it?
  • How do you seek out opportunities? (we really like candidates who are proactive in fixing/improving things) How do you communicate, both within your team and with other teams?
  • How do you work in an environment if you had no manager or guidance? Describe how you would get your project/task done?

General

  • What motivates you?
  • Where do you see yourself in 2-3 years? (career growth)

Systems Design Tips

  • Spend the first few minutes asking as many questions and gathering the requirements
  • First drive for a completed high-level design which solves the problem, then deep dive into some components on alternative design options/trade-offs
  • Focus on your ability to build a large scale distributed system end to end
  • You need to lead and drive the conversation (not the interviewer)
  • Focus on solving the problem instead of sharing irrelevant fancy tech terms
  • Treat it as a peer discussion rather than your presentation, it is ok to have interviewer follow up on details or challenge you or give you tips/hints
  • Question will be vague, so ask clarifying questions (this will also allow you to gather requirements too)
  • Use the whiteboard (or other tools) to design your high level solution, then drill down into details
  • Important things to consider in the design and details: scaling the system, fault tolerance, consistency, partition tolerance, reliability, availability, bottleneck, performance, cost, simplicity, sharding, load balancing, caching, how a request flows through the system end-to-end, data storage etc
  • Also talk about alternatives to your solution eg if you were designing the system for 1 user or 2 billion users how would you design change. Discuss trade offs (pros and cons) to your design solution too

Good luck on your interviews and I hope you ace it!

Facebook Interview Tips and Guidance

–EOF (The Ultimate Computing & Technology Blog) —

GD Star Rating
loading...
1030 words
Last Post: Split the List into Two Parts
Next Post: Can we Make Strings Same by Unlimited Number of Swaps?

The Permanent URL is: Onsite Interview Tips for Facebook / Google / Microsoft / Amazon / Apple

Leave a Reply