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
- Online coding assessment & survey
- Two technical interviews
- Project search
- Offer
STEP Internship (for first- and second-years)
- Two technical interviews
- Offer
- Project allocation
Full-Time
- Online coding assessment & survey
- Four virtual interviews: one behavioral, three technical
- Product area match & final approvals
- 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