Google India-Style Machine Coding Round: Format, Tips & Practice Problems
Written and reviewed by Sahil Srivastav
Infrastructure-flavoured product problems reward a precise contract more than a large framework. Rounds in the style of Google India often turn indexing, quotas, scheduling, caching, or dependency processing into a small implementation whose edge cases expose the model.
This page is a style guide with Gronex originals. It emphasises a testable core and clear discussion of how the design would grow.
What a Google India-style machine coding round looks like
Expect a scoped build in which inputs arrive over time and the service must return deterministic results: a scheduler, cache, rate limiter, dependency resolver, or quota manager.
The follow-up usually changes one constraint—fairness, expiry, duplicate work, or a new priority. A clean policy seam and explicit data invariants let you extend without rewriting the core.
Infrastructure discussion belongs after the demo. Explain memory, complexity, failure, and persistence trade-offs from the behaviour you have already implemented.
How you’re evaluated
Contract precision
Inputs, outputs, errors, and boundary cases are explicit.
Deterministic behaviour
Equal-priority work and expiry decisions have stable ordering.
Complexity awareness
The chosen data structures match the access pattern and stated limits.
Failure handling
Retries, expiry, and partial dependency results have defined outcomes.
Common mistakes that fail this round
- Starting with a distributed architecture before implementing the local contract.
- Leaving tie-breaking and expiry semantics unspecified.
- Using a linear scan where the operation is repeatedly called under a stated limit.
- Mixing time access into business logic.
- Claiming exactly-once behaviour without an ownership or deduplication mechanism.
Quick tips for the room
- State complexity before choosing structures.
- Inject time.
- Define tie-breaking in one place.
- Keep the first implementation small and observable.
How to prepare
Practise one scheduler and one cache or quota problem with a written complexity target.
Read the failing tests in the repositories below as contracts, then explain which production primitive would preserve each invariant.
Practice problems in the Google India-style round format
Each is a real backend repository with a failing test suite — the same working-code standard the round applies. Open the brief and read the full problem, no signup required.
Sliding Window Rate Limiter
Enforce quotas at precise boundaries. Free to try.
Open the challenge →LRU Cache with TTL & Statistics
Eviction, expiry, and observable cache counters.
Open the challenge →Dependency-Aware Task Execution
Run a graph of tasks with failure propagation.
Open the challenge →FAQ
Were these Google India questions?
No. They are Gronex originals in the style of infrastructure and service-design rounds. Gronex is not affiliated with Google.
Should I optimise immediately?
Meet the contract first, then name the access pattern and improve the structure where the stated workload requires it.
How much distributed design is expected?
Explain the production boundary after the local implementation demonstrates the invariant.
What is a strong demo?
A short happy path followed by one boundary and one failure case, with outputs that make the contract visible.
Related
Gronex is not affiliated with, endorsed by, or sponsored by Google India. All company names and trademarks belong to their respective owners. The problems on this page are Gronex originals written in the style of such interview rounds — not actual interview questions from Google India.