Currently-available coding interview challenges.
Thread-Safe Cachecpp-thread-safe-cache
Make an existing LRU cache implementation thread-safe and fix planted bugs in eviction and edge-case handling. Get/put must remain O(1).
Streaming Metrics Aggregatorcpp-wafer-telemetry
Fix concurrency and numerical-stability bugs in a streaming per-source/per-sensor stats aggregator, wire SPC excursion detection through, implement a wafer-lifecycle finaliser, and design a batched async excursion reporter from scratch.
Paginated User List with Debounced Searchjavascript-paginated-user-search
Fix a small debounced paginated-user-search controller: the debounced search captures the page at scheduling time (a stale closure), overlapping fetches can resolve out of order and clobber the fresh result, and the totalPages math rounds down so the last partial page is unreachable. Read the failing public tests, fix all three bugs, keep the public API and starter data model intact.
Money Value Typepython-money
Harden a small Money value type: parse decimal strings to exact integer cents (no float truncation), reject arithmetic across mismatched currencies, and split an amount into parts without losing or inventing cents.
Thread-Safe TTL Cachepython-ttl-cache
Make an existing TTL cache implementation thread-safe, enforce TTL expiry on reads, and fix planted bugs in eviction and edge-case handling. Get/put must remain amortised O(1).
Shopping Cart Hook (React)react-shopping-cart
Extend a React shopping-cart hook (useReducer-based) with a discount-coupon system. The cart fundamentals already work; the new coupon layer has three correctness problems: percentage coupons are computed in raw floating point (so a 10%-off coupon on $9.99 yields 99.9 cents instead of a whole 100), the cart total can drop below zero when a coupon is worth more than the cart, and applyCoupon stacks duplicate codes and accepts codes that aren't real coupons. The candidate must keep money in integer cents, round each percentage discount to the nearest cent (half rounds up), floor the total at zero, and validate coupon codes — all while preserving the hook's public API and state shape.
Deep Merge Utility (TypeScript)typescript-deep-merge
Fix a small recursive `deepMerge<T>` utility. The starter merges flat and nested plain objects correctly, but it mutates the target object instead of returning a fresh copy, it merges arrays element-by-element instead of replacing them, and it follows dangerous keys like `__proto__` straight onto `Object.prototype` (prototype pollution). Read the failing public tests, fix all three bugs, and keep the `deepMerge` signature and the `Plain` type intact.
Per-Key Token-Bucket Rate Limitertypescript-rate-limiter
Make a per-key token-bucket rate limiter correct under refill, validate constructor inputs, cap tokens at capacity after long idle, and ensure acquire() never hangs forever when the bucket cannot refill. The starter compiles and passes simple happy-path cases but contains planted bugs in refill math, input validation, and the async slow path.