Google interview prep · updated Oct 2026

Google Software Engineer Interview Questions

Software Engineer 8 questions

Software engineers at Google work across products such as Search, Photos, Translate, Android and Chrome. The work needs strong algorithms, careful handling of people's private data, and code that many other engineers will read and rely on. Prepare to solve problems aloud, to talk about testing on many kinds of devices, and to tell stories about unclear problems you made clear. What to show here: careful problem solving and respect for users' data. Each question below has what the interviewer is checking, an answer frame and a sample spoken answer to adapt.

Technical

1. A photo library holds many pictures that are almost the same, such as several shots of one scene. How would you find these near copies without comparing every pair?

What they are checking
Checks whether you know hashing ideas for similarity, and can avoid a comparison that grows with the square of the input.
Answer frame
  1. Explain why exact hashes fail for near copies.
  2. Describe a perceptual hash or feature vector for each photo.
  3. Group similar hashes using buckets so only likely pairs are compared.
  4. Use time taken as a cheap extra filter.
Sample spoken answer

“An ordinary hash changes completely if one pixel differs, so it only finds exact copies. For near copies I would compute a perceptual hash: shrink the photo, reduce it to light and dark patterns, and store the pattern as a short bit string. Similar photos get bit strings that differ in only a few places. Comparing every pair is too slow for a large library, so I would place photos in buckets by parts of the hash and compare only within a bucket. Near copies are usually taken seconds apart, so the time taken is a cheap first filter. I would let the user confirm before anything is removed.”

Red flag to avoid

Weak answers compare every photo with every other, or use an exact hash that misses photos differing slightly.

System Design

2. Design a translation feature that still works when the phone has no connection, for example for a traveller abroad.

What they are checking
Checks whether you can design within the limits of a device: storage, memory, battery and updates.
Answer frame
  1. Clarify needs: which languages, text or camera, quality expected.
  2. Put a smaller model on the device, downloaded per language pair.
  3. Use the server when online, and the device when not.
  4. Plan updates, storage limits and honest messaging on quality.
Sample spoken answer

“A phone cannot hold the full models used on servers, so I would offer a smaller model for each language pair that the traveller downloads ahead of the trip, ideally on wireless internet. The app should suggest this when it sees a trip or a new language. When online, the app uses the server for better quality. When offline, it uses the local model and tells the user quality may be lower. The models must fit in limited memory and not drain the battery, so I would test on modest phones. Updates arrive as small differences, not full downloads. Text typed offline stays on the device.”

Red flag to avoid

Weak answers assume a connection is always there, or put a server-sized model onto the phone.

Technical

3. An app must run on Android phones from many makers, with different screen sizes, memory and system versions. How would you test it so that problems on unusual devices are found before users find them?

What they are checking
Checks whether you have a practical test strategy for a fragmented set of devices.
Answer frame
  1. Pick devices from real usage data, covering low memory and old versions.
  2. Automate tests on emulators and a set of real devices.
  3. Release in stages and watch crash reports by device.
  4. Reproduce and fix by device group.
Sample spoken answer

“I cannot test every device, so I would choose a set from usage data: the most common models, plus the extremes, such as the smallest screen, the least memory and the oldest supported system version. Unit and interface tests run automatically on emulators for every change, and a smaller set runs on real devices, since emulators miss maker-specific behaviour. Then I release in stages, starting with a small share of users, and watch crash and freeze reports grouped by device model and system version. If one model stands out, I pause the release, get that device or a close one, and reproduce the problem.”

Red flag to avoid

Weak answers test on their own phone and one emulator, or release to everyone at once.

Technical

4. You need to change the behaviour of a library function that a very large number of other teams call. How do you make the change without breaking them?

What they are checking
Checks whether you can carry out a wide change in shared code safely, in steps, with respect for other teams.
Answer frame
  1. Find all callers and how they depend on the current behaviour.
  2. Add the new behaviour beside the old, without removing anything.
  3. Move callers over in batches, with tests.
  4. Remove the old one only when no caller remains.
Sample spoken answer

“I would first find every caller and run their tests against my change to see who depends on the old behaviour, including by accident. Instead of changing the function in place, I would add the new behaviour next to it, as a new function or an option, and mark the old one as deprecated with a note on how to move. Then I would move callers in small batches, preferably with an automated tool, and send each owning team a change to review. The old function is removed only when nothing uses it. Throughout, I would keep a short document explaining why the change is needed.”

Red flag to avoid

Weak answers change the function directly and leave other teams to discover the breakage.

Behavioral

5. Tell me about a time you were handed a problem that was poorly defined, and how you turned it into something that could be built.

What they are checking
Checks how you handle ambiguity: asking questions, narrowing scope and getting agreement before building.
Answer frame
  1. Describe the vague request.
  2. Explain the questions you asked and whom.
  3. Show how you narrowed it to a first version.
  4. Share the result.
Sample spoken answer

“My manager once asked me to make search better in your project. That could mean anything. I asked what had prompted it and learned that support had complaints about people not finding documents they knew existed. I read a sample of failed searches and found most were spelling variants and partial names. I wrote a one-page proposal with a narrow goal: a known document should be found when the title is typed with small errors. I listed what was out of scope. After agreement, I built that alone. It led to your result, and the complaints gave us the next goal.”

Red flag to avoid

Weak answers start coding on a guess, or wait for someone else to define the problem fully.

Behavioral

6. Describe a time you chose a design that kept less of users' personal data, even though keeping more would have made your work easier.

What they are checking
Checks whether you treat privacy as a design constraint and can explain a real trade-off you accepted.
Answer frame
  1. Describe the feature and the data in question.
  2. Explain the easier option and its risk.
  3. Describe the design you chose.
  4. Share what it cost and what it gained.
Sample spoken answer

“For your project, I built a feature that suggested places based on where a user had been. The easy design stored each user's full location history on our server. I was uncomfortable holding that. I proposed storing only a coarse area and a short recent window, and doing the detailed matching on the device. It made the feature harder to build and to debug, because I could not look at the raw data when something went wrong. My lead supported it after I explained the risk of a leak. The suggestions were slightly less precise, and your result. I would make the same choice again.”

Red flag to avoid

Weak answers collect everything in case it is useful later, or treat privacy as a legal matter for someone else.

Scenario

7. After your change ships, reports arrive that the app is draining the battery on some Android phones. What do you do?

What they are checking
Checks how you investigate a performance problem in the field that depends on the device, and how fast you limit harm.
Answer frame
  1. Confirm with field data and find which devices are affected.
  2. Pause or roll back the release.
  3. Reproduce using battery and wake-up profiling.
  4. Fix, add a test and release in stages.
Sample spoken answer

“I would check the field data to confirm the drain started with my release, and whether it affects all phones or certain models. While investigating, I would pause the staged release or switch the feature off remotely, so more users are not affected. Then I would try to reproduce on an affected model with battery profiling tools, looking at what keeps the phone awake: a timer firing too often, a location request never released, or a network retry loop. After fixing it, I would add a test that measures wake-ups for that scenario, and release again in small stages while watching the same data.”

Red flag to avoid

Weak answers say it cannot be their change because it worked on their own phone.

Why this company

8. Google's engineering ranges from ranking web pages to phone systems to translating between languages. Which problem would you like to work on, and why?

What they are checking
Checks whether you have real curiosity about a specific area and can link it to your skills.
Answer frame
  1. Choose one area and say why.
  2. Link it to your experience.
  3. Show that you know what is hard in it.
  4. Say how you want to grow.
Sample spoken answer

“I would choose language, such as translation or voice input. I grew up using two languages and I notice how often software handles one of them poorly. In your project I worked on text processing and saw how rules that are simple in English break elsewhere. The hard part is that quality must hold for languages with little written data, on phones that may be offline. That mix of algorithms and care for real users is what I enjoy. I want to grow by working with people who know this field deeply, and by writing code that many other engineers depend on.”

Red flag to avoid

Weak answers name no area, or choose one without any idea of what makes it difficult.

Salary questions come last

No figures on this page: pay depends on the level, the city and the offer in front of you. When the offer comes, the free salary negotiation script helps with that part.

For the call itself

The questions above are the prep. On the real call, ClapAssist helps with the ones you did not practice.

ClapAssist is an AI interview assistant for Mac and Windows. It listens to the interview on your computer and shows you what to say, in short lines you can read while you talk. Your live interview audio and screen are never stored. Your resume and notes are saved to your account so the app fills them in on any computer. It is hidden from screen share on every plan, including Free; only you can see it.

Download with 10 free minutes
Mac and Windows · Stays out of screen share · No card