Interview Questions332 real reports analyzed

Google Interview Questions

The questions Google actually asks — distilled from 332 real candidate reports and ranked by how often they came up. Coding, system design, and behavioral, with model answers written by our team.

101

questions tracked

73

coding problems

332

reports analyzed

Updated 2026-05-26

Most-asked Google questions

The questions reported most often across real Google interviews, each with a model answer written by our team.

Tell me about yourself.

asked in 21 reportseasy

I'm an engineer with 6+ years building high-scale distributed systems. At my previous company, I led backend infrastructure improvements that reduced latency by 40% and enabled 10x user growth. I'm drawn to problems requiring deep technical thinking—designing resilient systems, optimizing performance under constraints. Google appeals to me because it tackles foundational challenges at scale: building systems that serve billions reliably. I'm particularly interested in cloud infrastructure and AI systems. I bring hands-on experience in system design, mentoring, and shipping high-impact projects, ready to grow alongside engineers solving Google-scale problems.

Solve a sliding window problem with a harder follow-up.

asked in 17 reportsmediumO(n) time, O(1) or O(k) space (depending on problem)

Use two pointers to maintain a dynamic window that expands when valid and contracts when violated. The key insight: once the left pointer moves right, it never backtracks—this ensures O(n) time despite the nested-loop structure. For harder follow-ups asking to find *all* valid windows or handle multiple constraints, consider combining pointers with hashing for frequency tracking or precomputing prefix data. Google values candidates who recognize that optimal solutions eliminate redundant comparisons entirely rather than re-examining elements.

Implement a binary search solution.

asked in 13 reportsmediumO(log n) time, O(1) space

Binary search efficiently finds a target in a sorted array by repeatedly dividing the search space in half. Start with pointers at array boundaries, compare the middle element to the target: if equal, return the index; if the target is smaller, search the left half; otherwise search the right. This eliminates half the candidates per iteration. The key insight is leveraging the sorted property to achieve O(log n) instead of scanning linearly. Carefully handle boundary conditions and midpoint calculation (mid = left + (right - left) / 2) to avoid off-by-one errors and integer overflow.

Answer behavioral questions about past work experiences and situations

asked in 11 reports

Use the STAR method: establish Situation and Task, detail your specific Actions, then quantify Results. Google prioritizes concrete examples demonstrating impact, ownership, and collaboration. Showcase leadership at all levels—not just management—and highlight how you handled ambiguity, learned from failure, or resolved conflict. Avoid generic narratives; connect examples directly to the role. Prepare 5–7 stories spanning different domains (technical, interpersonal, project challenges). Google values Googleyness: intellectual humility, bias toward action, and willingness to grow.

Solve a one-dimensional dynamic programming problem

asked in 10 reportshardO(n) time, O(n) space

Define your state clearly—typically dp[i] representing the optimal solution for the first i elements. Derive the recurrence relation by analyzing valid transitions from prior states, then compute forward iteratively. The key insight: identify minimal state dependencies. Most 1D DP problems need only the previous value(s), enabling space reduction from O(n) to O(1). Correctly handle base cases—they anchor your computation and must match your recurrence definition.

Explain your alignment with Google's values and culture.

asked in 9 reports

I'm drawn to Google's user-first philosophy and bias toward action. I've built features by directly gathering user feedback—not just guessing—then shipped incrementally rather than seeking perfection. What resonates is that Google balances speed with rigor: shipping fast doesn't mean shipping recklessly. I thrive in environments where solving hard problems at scale matters more than politics, and where intellectual honesty and curiosity are expected. I see myself contributing to that culture by shipping impact, owning outcomes, and constantly questioning whether we're solving the real problem.

Answer questions about past work experiences and cultural fit.

asked in 9 reports

Structure every answer with STAR: compress Situation and Task, expand on your Actions and quantified Results. Google rewards ownership—show how you drove decisions under ambiguity, not just executed tasks. Emphasize user impact and shipping speed. Demonstrate collaboration without diluting your leadership. Prepare 5-6 diverse stories: handling failure, cross-functional influence, constraints-driven shipping. What matters: authenticity. They're not looking for perfect stories; they want to see how you think, whether you take ownership, and if you'd thrive in their culture.

Demonstrate cultural fit and alignment with Google values

asked in 8 reports

I exemplify Google's values through collaboration and user-centricity. When leading a backend redesign, I prioritized user impact over technical elegance—gathering feedback from frontend and product teams before optimizing. I embraced diverse perspectives, actively seeking input from junior engineers whose fresh ideas identified blind spots. I maintained intellectual humility, readily admitting knowledge gaps and learning from colleagues. This approach delivered a solution that scaled while remaining maintainable. Google values engineers who balance technical rigor with teamwork, stay humble amid complexity, and keep users at the center of decisions.

Solve a topological sorting problem

asked in 8 reportsmediumO(V + E) time, O(V) space

Topological sorting orders vertices in a DAG so edge u→v has u before v. Optimal approach: Use Kahn's algorithm—compute in-degrees, queue all zero in-degree nodes, then repeatedly dequeue nodes and decrement neighbors' in-degrees, enqueueing newly-zero nodes. Key insight: This iteratively removes nodes with no dependencies, naturally avoiding recursion and detecting cycles (output size < n indicates a cycle).

Merge overlapping intervals into a single list of non-overlapping intervals.

asked in 7 reportsmediumO(n log n) time, O(1) space

Sort intervals by start position, then iterate sequentially. Maintain the current interval; if the next interval's start ≤ current end, they overlap—merge by setting current.end = max(current.end, next.end). Otherwise, output the current interval and start a new one. Sorting is the key: it guarantees no future interval can affect an already-resolved one.

Design a system architecture for a Google product.

asked in 6 reportshard

Start with a layered architecture: stateless API servers behind load balancers, microservices handling business logic with service discovery, and a scalable data layer. Use database sharding by user/tenant for horizontal scaling, with read replicas for queries. Implement eventual consistency where appropriate; use consensus (Raft/Paxos) for critical state. Add a message queue (Kafka) for async workloads. Deploy with redundancy across regions, implement circuit breakers for fault isolation, and monitor with distributed tracing. Key insight: design for failures and partition tolerance first—synchronous dependencies kill availability at scale.

Solve a tree traversal or manipulation problem

asked in 6 reportsmediumO(n) time, O(h) space

For tree traversal problems, choose DFS for depth-first patterns or BFS for level-order. DFS via recursion naturally handles backtracking and modification; BFS works well for shortest-path queries. The critical insight: most problems need one O(n) pass, carefully tracking state (counts, paths, values). Postorder traversal helps when modifying nodes—process children before parents. Handle nulls gracefully. The right choice avoids redundant passes and sidesteps stack overflows.

Design a system for hosting and retrieving images

asked in 6 reportshard

Three-tier design: API layer, sharded metadata database, and distributed object storage (S3-like) backed by CDN. Uploads: Write to geo-replicated buckets, update metadata asynchronously to avoid bottlenecks. Retrieval: CDN cache for hits; signed URLs for authenticated object-store fallback. Scaling: Shard metadata by user ID; async queues for image processing (resize/thumbnail). Critical insight: Object-store write throughput and CDN hit-rate optimization are the primary scalability levers; design around them.

Solve a problem involving n-ary trees.

asked in 5 reportsmediumO(n) time, O(h) space

N-ary trees generalize binary trees with multiple children per node. Key insight: iterate through a children list rather than checking left/right pointers. DFS approach: recursively visit each child and combine results—intuitive for max depth and node collection. BFS approach: use a queue for level-order traversal when level information matters. Both achieve O(n) time by visiting each node once. Choose recursion for simplicity; use iteration if stack space is tight.

Implement an LRU (Least Recently Used) cache.

asked in 5 reportsmediumO(1) time for get/put, O(capacity) space

Use a HashMap paired with a doubly linked list. The map stores key→node references for O(1) access; the list maintains insertion/access order. On get(), return the value and move the node to the list's tail (marking it most recent). On put(), insert or update the node and move it to the tail; if capacity is exceeded, evict the head node (least recent). Both operations run in O(1).

Find the area of the largest square containing only 1s in a binary matrix.

asked in 5 reportsmediumO(m·n) time, O(m·n) space

Use dynamic programming: dp[i][j] represents the side length of the largest square with bottom-right corner at (i,j). For cells with value 1, compute dp[i][j] = 1 + min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]). The key insight is the minimum: to form a larger square, all three adjacent squares (top, left, diagonal) must be valid—the smallest limits growth. Track the maximum dp value, then return its square for the area.

Solve a BFS related problem.

asked in 5 reportsmediumO(V + E) time, O(V) space

BFS explores graphs level-by-level to find shortest paths in unweighted graphs. Initialize a queue with the source node (mark visited), then repeatedly dequeue and enqueue all unvisited neighbors. The first path reaching your target is guaranteed shortest—this is BFS's defining advantage. Key insight: level-by-level exploration ensures no shorter path exists. Implement careful visited tracking to avoid cycles. Google values clean queue-based implementations, proper edge handling, and demonstrating why BFS guarantees optimality over other traversal approaches.