What to Expect in the Groww System Design Interview
Experienced candidates report two design rounds at Groww rather than one. The first is a machine coding round of 90 minutes to two hours, in which you build a small working program, and the second is a high level design discussion of about an hour.
Reported machine coding problems include an expense sharing application like Splitwise, a stock exchange with buy and sell bids, and a cache built end to end. Reported design topics include stock market systems, a scalable cache, subscription based access to an API, and a review of a project from your own resume, and freshers do not report either round.
The Machine Coding Round
A machine coding round asks you to build a small working program in one sitting, usually a console application. It is graded on working code, unlike a design round, which is graded on the discussion. The difference between the two rounds is explained in system design versus low level design.
Reported problems at Groww include the following:
- An expense sharing application similar to Splitwise, with groups, equal splits, custom splits, and settlements.
- A stock exchange where buyers and sellers place bids, and a trade happens when the two prices match.
- A cache built end to end, stated in one line, so that you have to declare your own assumptions first.
- A chess move validator that takes the moves of two players and rejects any invalid move with a clear error.
- A group chat in which an admin may create a limited number of groups and a user may join a limited number.
What the interviewer grades in this round is narrow and clear: the program must run, and the classes must map to real concepts such as User, Group, Expense, and Split. A new requirement, such as a percentage split, must fit without a rewrite of the existing code.
Validation must reject bad input with a clear error message rather than a crash. Candidates report that talking through your class design while you type counts toward the score. The common question types for this round are covered in what a low level design interview is.
The High Level Design Round
This round is a discussion of about an hour, usually with a shared drawing tool. Reported topics match Groww's own problems: stock market systems, a scalable cache, and a subscription model for access to an API. Candidates also report being asked to design a system from their own resume, so you must be able to answer detailed questions about your own project. Expect the questions to concern correctness more than raw scale, because a broker cannot lose an order or execute it twice.
A Walkthrough: Design Order Placement for a Broker
Here is a high level plan for a stock market design, which is the topic candidates report most often.
Step 1, requirements (5 minutes). A user places a buy or sell order, the order reaches the exchange, and the result returns to the user. Nothing may be lost or duplicated, and the load rises sharply at market open.
Step 2, the write path. Accept the order, validate funds and holdings, and write the order to a durable store before you reply to the user. Give each order a client-supplied idempotency key, so that a retried request never creates a second order, and return an order identifier immediately.
Step 3, the exchange path. Publish the accepted order to a queue that is partitioned by instrument or by user, and let a worker send it to the exchange and record the response. Treat the exchange as slow and occasionally unavailable, which means that every retry must be safe.
Step 4, state and reconciliation. Model the order as a state machine with these states: placed, open, partially filled, filled, rejected, and canceled. Run a reconciliation job against the exchange records, because those records are the true state.
Step 5, live prices. Prices arrive as a high volume feed, so normalize them, publish them per instrument, and push updates to clients over long-lived connections. Shard the price feed by instrument, and shard the client connections by user.
Step 6, reads and caching. Portfolio views are read far more often than orders are placed, so cache the computed positions, invalidate them on each fill, and explain what a stale portfolio value costs the user.
Common Mistakes in This Round
- Designing for scale only. A lost order matters more than an extra second of latency, so name correctness first.
- Skipping idempotency. Retries are certain on a mobile network, so a design without a deduplication key is incomplete.
- Treating the exchange as always available. Model the failure, the retry, and the reconciliation that follows it.
- Running out of time in machine coding. A partial program that runs scores better than a complete design that does not compile.
- Weak resume answers. If your own project becomes the design question, you must know its numbers and its failures.
How to Prepare
- Practice building against a clock. Write a Splitwise or order book program in two hours, twice, until you can produce clean classes quickly.
- Learn object-oriented design properly. Grokking the Object Oriented Design Interview covers the exact problem shapes reported in this round.
- Learn the distributed building blocks. Grokking the System Design Interview covers the queues, caches, and replication that this walkthrough uses.
- See where these rounds sit. They come late in the Groww interview process, after the coding rounds.
- Prepare the motivation answer too. The hiring manager asks it, and how to answer why Groww gives the structure.
- Know the waiting times. How long it takes to hear back from Groww covers the gaps between these rounds.

GET YOUR FREE
Coding Questions Catalog

$99

$197

$72