Cars24-Style Machine Coding Round: Format, Tips & Practice Problems
Written and reviewed by Sahil Srivastav
Used-car marketplaces have inventory with quantity exactly one. That single fact removes the familiar stock-counter problems and replaces them with auction mechanics: many dealers bidding on one vehicle, a closing moment that must be unambiguous, and a winner determination that has to be defensible after the fact. Machine coding rounds in the style of Cars24 are built on that.
The second half of the domain is a workflow per vehicle: inspection scoring, pricing, auction, sale, and paperwork, where each stage gates the next. This page covers the commonly reported format, what evaluators weight, and Gronex repositories that train the same bidding and workflow mechanics.
What a Cars24-style machine coding round looks like
Expect a 90–120 minute build of an auction service: list a vehicle with a reserve price and a closing time, accept dealer bids with validation (above current highest by a minimum increment, dealer is eligible, auction still open), close at the deadline, and determine the winner. The statement will usually add proxy or auto-bidding, or an anti-sniping extension window, as the follow-up.
Closing is the part with real depth. The boundary case — a bid arriving at the same instant the auction closes — must have a defined answer, and it must be enforced inside the same guarded operation that accepts the bid rather than by a background job that may not have run yet. Rounds in this style ask directly whether closing is driven by a clock check on read or by a scheduled transition, and both answers are acceptable only if you can describe their failure modes.
Bid validation is where determinism is graded: two equal bids cannot both be highest, so the tie-break is arrival order and your storage must preserve it. Reserve-price handling adds a wrinkle worth getting right — an auction can close with bids that all fall below reserve, which is not a sale, and treating the highest bid as automatically winning is the most common correctness miss.
How you’re evaluated
Bid acceptance rules
Minimum increment, eligibility, and auction-open checks applied atomically, with a specific rejection reason each.
Unambiguous closing
A defined rule for a bid at the closing instant, enforced in the same operation that accepts bids — never in a hopeful background job.
Reserve-price correctness
An auction with all bids below reserve closes unsold; highest bid is not automatically the winner.
Deterministic tie-breaks
Equal bids ordered by arrival with stable storage, so the winner is reproducible from the recorded history.
Common mistakes that fail this round
- Accepting bids into a collection that does not preserve arrival order, making equal-bid ties non-deterministic.
- Deciding closing in a background sweep, so bids are accepted after the deadline whenever the sweep is late.
- Declaring the highest bidder the winner without checking the reserve price.
- Validating the increment against a cached highest bid, allowing two concurrent bids to both pass.
- Modelling the vehicle with a stock quantity, which invites the wrong concurrency solution for a unique asset.
Quick tips for the room
- Keep bids as an append-only ordered history; derive the highest.
- Make close() idempotent and check open-state inside placeBid().
- Check the reserve price before declaring any winner.
- Give every rejection a reason code — dealers will ask, and so will the reviewer.
How to prepare
Implement bid placement as one guarded operation that checks open-state, increment, and eligibility and appends the bid, then implement close() as idempotent and safe to call repeatedly. Add a reserve price and test the unsold case. If you have time, add proxy bidding, which is the most common extension and is easy once bids are an ordered history.
The repositories below map directly: the auction problem is the round itself, the escrow problem is the deposit-and-settlement layer around a sale, the task dependency problem is the gated vehicle workflow, the free seat-reservation problem is claiming a unique asset, and the shared-calendar problem covers the test-drive appointment side.
Practice problems in the Cars24-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.
Auction Bid Placement & Closing
The round itself: increment validation, deterministic ordering, closing-instant rules, and winner determination.
Open the challenge →Escrow Hold & Release
Deposits and settlement around a sale: held balances released exactly once with terminal-state guards.
Open the challenge →Task Dependency Manager
The gated vehicle workflow: prerequisites, ordering, cycle detection, deterministic progression.
Open the challenge →Shared Calendar Slot Booking
Test-drive scheduling: overlap rules, per-resource availability, no double-booking under contention.
Open the challenge →Seat Reservation System
Claiming a unique asset safely: reserve, cancel, list availability deterministically. Free to try.
Open the challenge →FAQ
Are these actual Cars24 interview questions?
No. They are Gronex originals in the style of auction-based marketplace rounds — the kind of problem asked in rounds like Cars24’s. Gronex is not affiliated with Cars24.
Why does unique inventory change the design?
Because the interesting contention is no longer about counting down stock; it is about ordering competing claims on one item and justifying the winner afterwards. That pushes the design toward an append-only bid history and away from a quantity field.
Should closing be time-checked or scheduled?
Either, if you can defend it. A clock check inside placeBid() never accepts a late bid but leaves the auction nominally open until someone looks; a scheduled close is tidier but must still guard against late bids. Naming that trade-off is the answer the question wants.
Is proxy bidding worth implementing?
Only after the core is demoed. It is the standard extension, and with bids as an ordered history it is a small addition — which is exactly why it makes a good final five minutes rather than a first-hour distraction.
Related
Gronex is not affiliated with, endorsed by, or sponsored by Cars24. 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 Cars24.