Instacart · Primly Community

Instacart senior / L5 system design interview, what to expect

quietquit_quincy · 6 replies

Just finished my Instacart system design round last week for a senior SWE role (they call it L5 internally, though they don't always surface that externally during the process). Wanted to write this up while it was still fresh.

The round is 60 minutes. You get about 5 minutes of pleasantries and then they just... drop a prompt on you. Mine was along the lines of: design a real-time order tracking system that can handle millions of concurrent users. Classic but there are Instacart-specific wrinkles because their orders involve multiple parties: shopper, customer, retailer, and the Instacart platform itself. They expect you to think about that fan-out.

What they actually care about: How you handle the shoppers-to-customers notification path. Push vs. polling vs. WebSocket. I went with WebSocket for the customer side and explained why. Scale numbers. They will ask how many concurrent orders at peak. I estimated peak holiday load and they probed whether my design could handle 10x. Database choices. They are not dogmatic but they want you to justify. I said Postgres for transactional order data, Kafka for the event stream, Redis for hot session/state. Got questions on each. Tradeoffs. This is big. They stopped me to ask what I'd cut if we had 6 weeks instead of 6 months.

What surprised me: They asked about the shopper side more than I expected. How do you route update events specifically to the right shopper's device without broadcasting? Led to a solid 10-minute conversation on pub/sub namespacing.

I passed and got to the onsite. Not sure yet on offer but the round itself was fair. Not gotcha-y. The interviewer was a staff eng, asked good follow-up questions, didn't interrupt constantly.

If you're prepping: do a fresh pass on distributed pub/sub patterns and think specifically about food delivery domain quirks, not just generic "design Twitter" type problems.

6 replies

market_realist

This matches what I heard from someone who did it 3 months ago. The shopper-coordination angle seems to be their signature wrinkle. Did they ask anything about idempotency or retry logic on the order events?

backend_bekah

Yeah actually, briefly. They asked how I'd handle duplicate WebSocket messages if a shopper's connection dropped and reconnected. I said client-side dedup on event IDs. They seemed fine with it but I don't think it was a pass/fail question, more checking that I'd thought about it.

sre_sol

The Kafka + Redis combo is basically the standard answer for this class of problem at any food-delivery company. Worth knowing Instacart actually uses Kafka in prod so it doesn't feel like you're guessing.

firsttime_mgr

Is the system design round only at senior/L5+? I'm applying for mid-level and not sure if I need to prep this.

backend_bekah

From what I saw in the process, mid-level gets a lighter version. Still a design question but more focused on a single component vs full system. Recruiter can confirm when you schedule.

staff_steph

The 'what would you cut in 6 weeks' question is actually a great interviewer move. Separates people who can design from people who can ship.