Google Interview Questions
The coding and system-design questions asked in Google interviews - with worked solutions, in-browser code execution, and active-recall review. 11 questions.
How Google interviews software engineers
Google's SWE loop runs in stages: resume screen, sometimes an online assessment, a technical phone screen, and an onsite loop of four to six rounds, followed by hiring-committee review and team matching. End to end it typically takes eight to twelve weeks.
The phone screen is a ~45 minute live coding interview. The onsite is usually two coding rounds, a system design round (from L5 up), and a behavioral / 'Googleyness' round. Hiring is committee-driven, so the onsite is decoupled from any specific team - you match to a team after passing.
The interview loop
- 1Recruiter & resume screenRecruiter call on background and logistics; resume is screened for the bar.
- 2Technical phone screen~45 min live coding with an engineer, in a shared doc - data structures and algorithms.
- 3Onsite loop4-6 rounds: two coding interviews, one system design (L5+), and a behavioral / Googleyness round.
- 4Hiring committee & team matchA committee reviews packets independent of the interviewers; team matching follows an approval.
What they look for
- Data-structures and algorithms fluency with clean, optimal solutions
- Clear communication of trade-offs and complexity
- Googleyness: collaboration, humility, and dealing with ambiguity
How to prepare
- Drill medium/hard DS&A and always state time/space complexity and alternatives.
- Practice in a plain shared doc - no autocomplete, no run button.
- Prepare structured behavioral stories; the Googleyness round is scored, not a formality.
Sources
- IGotAnOffer - Google software engineer interview - Full process, questions, and prep plan.
- Exponent - Google SWE interview guide - Stage breakdown with sample questions.
- Hello Interview - Google L6 guide - Level expectations and rubric detail for senior roles.
See every company's references on the interview-process sources page.
Practice questions
- Analytics / Logging SDK(premium)
Design a Firebase-Analytics-lite / Amplitude-lite Android SDK - microsecond-budget `track()` on the main thread, a durable on-device queue that survives OOM kill, and batched uploads that respect battery and consent.
Mobilehard-2mo - Messenger App(premium)
Design an Android messenger - a durable outbox so a tapped message survives a kill, a server-assigned per-chat seq so order is a property of the data, reconnect catch-up, and FCM wakeup for offline recipients.
Mobilehard-2mo+5
- Photo Gallery App(premium)
Design a Google Photos-style gallery - one timeline over the device and cloud libraries, background backup, full-resolution viewing, fresh-device restore.
Mobilehard-1mo+3
- Doc Editor App(premium)
Design a Google Docs-style collaborative editor on Android - local-first keystrokes, conflict-free merge across hours-long offline gaps, reconnect catch-up, and 100k-character documents at 60 fps.
Mobilehard-2mo - Newsfeed App(premium)
Design an Android social feed - opaque cursor pagination over Paging 3 + RemoteMediator, optimistic engagement with idempotent retries, 60 FPS mixed-media scrolling with autoplay video, and pull-to-refresh that surfaces new posts without losing the reading position.
Mobilehard-2mo+7
- Ride-Sharing App(premium)
Design an Uber / Lyft-lite Android rider app - a server-authoritative ride state machine, an idempotent ride request that survives a process kill, a 1-2 Hz driver-location stream interpolated to 60 FPS, FCM (Firebase Cloud Messaging) wakeup when the WebSocket is closed, and reconnect-and-reconcile under cellular drops.
Mobilehard-2mo+4
- Valid Parentheses
Stack-walk a bracket string to validate it, then localize the first error, then find the longest valid substring (LC 32).
Practicalmedium35m2mo+12
- Find Duplicate Files(premium)
Group identical files by content. Stream-hash to keep memory bounded, then add size pre-filtering and an opt-in symlink/min-size policy.
Practicalmedium45m2mo+4
- Encode and Decode Strings(premium)
Serialize a list of arbitrary strings into a single string and parse it back. Any character is allowed in the strings, including the delimiters - length-prefix framing is the only safe answer.
Practicaleasy25m2mo+3
- Time-Based Key-Value Store(premium)
A key-value store with timestamped writes. Read at time t returns the latest value written at or before t; later phases add arbitrary-order inserts and range queries.
Practicalmedium35m2mo+9
- Meeting Rooms(premium)
Given a list of half-open meeting intervals, find the minimum number of conference rooms; later phases assign specific room IDs and add capped capacity with priority eviction.
Practicalmedium35m2mo+9