These are the questions a Google loop for a Software Engineer (L3/L4), General actually asks, each with an answer you can adapt and say out loud. Rehearse them first, then run OfferPilot AI live in the interview so the copilot hears the question and drafts your answer in real time.
Opening
Tell me about yourself.
Give a concise arc of your background and the production systems you have shipped, emphasizing correctness, clarity, and real algorithmic intuition rather than rote practice. A strong Google framing is that scale forces you to care about complexity for real, an O(n^2) that is fine at a thousand rows falls over at a billion, so tie your interest to that. Keep it to about a minute and lead with what is most relevant to the role.
Coding
Two Sum, return indices of the two numbers that add up to a target.
Confirm assumptions first, exactly one solution and no reusing an element, then state the brute-force O(n^2) baseline. Move to a single-pass hash map from value to index, checking whether target minus the current number is already seen, and state O(n) time and O(n) space. Dry-run [2,7,11,15] target 9 to show the lookup returning the right indices.
Number of islands, count connected groups of land in a grid.
Frame it as connected components on an implicit grid graph where each cell is a node and edges join orthogonally adjacent land. Scan the grid, and on each unvisited land cell increment the count and flood-fill to mark everything reachable so you do not recount it, noting DFS and BFS are both valid and that BFS avoids deep recursion on huge grids. State O(rows times cols) time and the worst-case space for the recursion or queue.
Longest increasing subsequence, return its length.
Give the clean O(n^2) DP first, dp[i] is the LIS length ending at i by scanning earlier smaller elements, then reach for the optimal O(n log n). Explain the patience-sorting tails array where tails[k] is the smallest possible tail of an increasing subsequence of length k+1, binary-searching for the first tail at least the current number and replacing it, or appending to extend. Note the answer is the length of tails and that tails is not a real subsequence but its length is provably correct.
Algorithms & Complexity
Walk me through analyzing time and space complexity, how do you reason about it?
Describe your method: count operations as a function of input size, keep the dominant term, drop constants, that is worst-case Big-O. Call out hidden costs like string concatenation in a loop, slicing that copies, or a nested lookup that is secretly O(n), and for recursion write the recurrence and use the Master Theorem, citing merge sort's T(n)=2T(n/2)+O(n) as O(n log n). For space, count memory beyond the input and explicitly include recursion-stack depth, and separate worst case from amortized, like a dynamic-array push.
How does a hash map work, and when does it degrade?
Explain that a hash function picks a bucket, giving O(1) average insert, lookup, and delete, with collisions handled by chaining or open addressing. Then be precise about degradation: O(n) when many keys collide from a bad hash or adversarial input, plus the hidden resize-and-rehash cost that is O(n) on that operation but amortizes to O(1). Close by noting that when you need a tight worst-case guarantee you reach for a balanced tree with O(log n) and ordering instead.
When would you use BFS versus DFS on a graph?
Start from the shared cost, both visit every node in O(V + E), then contrast use cases. Use BFS for shortest paths in unweighted graphs and level-order work because it explores by distance, and use DFS for reachability, topological sort, cycle detection, and full-path exploration. Mention the memory-and-depth trade-off, BFS can hold a wide frontier while DFS can blow the stack on deep graphs, and note that weighted shortest paths call for Dijkstra or Bellman-Ford instead.
System Sense
How would you design a URL shortener like tinyurl?
Center it on a mapping from short key to long URL, and generate keys by base62-encoding an incrementing or distributed counter for short, collision-free keys, noting a hash works but needs collision handling. Emphasize that reads vastly outnumber writes, so keep the write path simple and put a cache in front of a sharded store, and push analytics asynchronously off the hot path. Show scale awareness, seven base62 characters is trillions of combinations, and close by asking about custom aliases, expiration, and the read-to-write ratio since those change the design.
Googleyness & Collaboration
Tell me about a time you worked with a difficult teammate or resolved a conflict.
Pick a real technical disagreement and show you separated the person from the position. Describe asking what outcome each side was optimizing for, one protecting a timeline, one worried about scale, then turning it into something measurable like a small benchmark or risk assessment as the tiebreaker. Land a result where the data decided and you still folded the other person's concern in, like phasing a migration so nothing shipped late.
Tell me about a time you had to learn something quickly or work through ambiguity.
Choose a story where you were handed something unfamiliar with no clear owner and a vague report. Show that you anchored on measurement first, reproduce it, profile to find the hot path, fix the real cause like an accidental O(n^2) from a lookup that should be a set, then leave the place better documented with a benchmark in CI so it cannot silently regress. Close that you are comfortable in ambiguity because you start from a real measurement.
Closing
Do you have any questions for us?
Ask questions that get past the recruiting version. Strong ones: what the strongest engineer on the team does differently from a solid one, how the team decides between a cleaner abstraction and the pragmatic version under a deadline, and what technical problem the team is stuck on right now.
Answer these live, not just in practice
Preparation gets you the shape of an answer. In the room, the follow-up you did not rehearse is what decides the loop. OfferPilot AI listens to the interviewer, transcribes on-device, and drafts a speakable answer grounded in your own résumé, while staying off the screen-share stream. Download it free and get 5 minutes a day, or see plans.