Practice problem · Shopify · Medium

LRU Cache (Progressive)

recency_cache.py defines RecencyCache, a bounded key-value store that evicts the least-recently-used key when forced. 4 stages in Python with an AI assistant. Stage 1 free.

Stage 1 of 4: Fix the recency-update bug

recency_cache.py defines RecencyCache, a bounded key-value store that evicts the least-recently-used key when forced.

The starter has a bug. One test in tests/test_part1_recency.py fails.

Find it and fix it. Don't change the public interface.

Done when Submit goes green.

Constraints

  • Python 3.12+ standard library only
  • Time limit: 15 seconds per test
  • Editable: recency_cache.py
  • Read-only: all tests/test_*.py files
  • From stage 2, get and put must be amortized O(1)

What comes after stage 1

The next stages open once the tests for the one before them pass. Each raises the bar, the way an interviewer does in the room.

  1. Stage 2: Implement capacity-bound put. Eviction at capacity with get and put both amortized O(1), under a 400k-call workload.
  2. Stage 3: Add dynamic resize. Shrink or grow the cache in place without losing recency order.
  3. Stage 4: Atomic get-or-compute under contention. Several threads miss the same key at once; the loader must run exactly once.

The files you get

  • Yours to edit: recency_cache.py.
  • Read-only: tests/__init__.py.
  • Tests you can read and run: tests/test_part1_recency.py. Hidden tests run on Submit.

The round: an agent in the editor

The assistant here works like the one in the interview IDE. It reads your files, runs code and proposes changes, and you accept or reject each one. It doesn't volunteer ideas, so what gets built is what you asked for. Along the way the interviewer asks about your decisions, and at the end the report says what you checked and what you accepted unread.

Frequently asked, briefly answered

Is LRU Cache (Progressive) free?

Stage 1 is free with an account. The other 3 stages need Nyrion Pro.

Which company asks something like this?

Shopify, LinkedIn. It is modelled on Shopify's round: Open-ended — candidate's own IDE + AI tool of choice over screen share.

Do I bring my own AI tool?

No. The assistant is in the editor, same as in the interview IDEs at Meta, Stripe and Amazon. What you choose at Begin is the format: an agent that proposes changes you accept or reject, an answer-only assistant that can't write code, or no assistant at all.

What does the interviewer ask?

4 questions along the way about your own code, and one at the end about the whole session. A weak answer gets one follow up. The answers go into the report, which ends with a hire or no hire verdict.

Start the problem

Sign in and the problem opens where you left it. New here? An account takes a minute to create, and the first stage of this problem is free.

Start this problem → Sign in

More like it: every practice problem, how Shopify runs its AI round, the AI coding interview guide.