Allen and Jing, two software engineers at Google, recently hosted an insightful workshop aimed at demystifying Google’s interview process. The following highlights key takeaways from the session, including a detailed breakdown of the interview steps and useful tips to help you prepare effectively.

Process Breakdown By Role Types

SWE Internship

  1. Online coding assessment & survey
  2. Two technical interviews
  3. Project search
  4. Offer

STEP Internship (for first- and second-years)

  1. Two technical interviews
  2. Offer
  3. Project allocation

Full-Time

  1. Online coding assessment & survey
  2. Four virtual interviews: one behavioral, three technical
  3. Product area match & final approvals
  4. Offer

More About Each Task

Online Survey

  • Can reference standard libraries and official documentation
  • Make sure to do it by the deadline (typically 7 days)

Technical Interview

  • 5 minute introduction + 35 minute coding question + 5 minute closing for you to ask your interviewer any questions
  • Some time to take a break in between rounds
  • Can ask for accomodations during the interview but try to do so before starting the task
  • Languages: C/C++, Java, Python, Javascript, Go; allowed to ask for other languages
  • Possible Topics
    • Loops
    • String manipulation
    • Conditional logic
    • Sort & Search
    • Divide and conquer
    • Dynamic programming memoization
    • Greedy algorithms
    • Recursion
    • Big O
    • Graph traversal
    • Arrays
    • Linked lists
    • Sets
    • Hashing
    • Binary trees
    • Heaps
    • Graphs
  • No brain teasers, puzzles, or trick questions

Interview Tips

General

  • Keep your microphone on
  • Can use paper to scribble down notes
  • Speak out loud
  • Be careful about what you’re sharing
  • Be yourself - you will be more memorable and it will be easier to connect with your interviewer
  • Come prepared with thoughtful questions for your interviewer

What Interviewers Consider

  • How did you analyze the problem
  • Did you miss any edge cases
  • Did you solve the problem methodologically and logically
  • Did you demonstrate a strong foundation in concepts
  • Does the code work, was it testsed
  • Is it clean and easy to maintain the code
  • Were the ideas easily and well explained

DO

  • Listen carefully, rephrase the given problem and ask clarifying questions
  • Design a solution and think out loud the whole time
    • Communicate the high level strategy
    • Iterate by analyzing Big O runtime or space complexity
    • Handle edge cases in design too
  • Write actual code
  • Test that code
  • Discuss potential optimizations and expect follow-up questions
  • Explain your thought process throughout the interview

AVOID

  • Jumping directly into code
  • Not talking about examples or testing
  • Not writing real code
  • Not understanding question or prematurely optimizing

Resources