← Back to Directory

CloudKitchens

Mid-sized

Screna has 12 CloudKitchens interview write-ups. The most reported round is the technical phone screen (5).

12 interview notes · updated Jul 2026

CloudKitchens·Software Engineer·Onsite - Coding / Algorithms

Jul 2026
CloudKitchens SWE interview that was basically one big problem stretched into three increasingly painful variants. They start you off with something that feels manageable and then just keep adding constraints until you're questioning your life choices.
  • Given an array of integers and a value k, return the k most frequent elements. How do you handle ties in frequency?
  • Design a data structure that supports adding integers from an unbounded stream and querying the top-k most frequent values at any point.
  • Extend the streaming design to only consider events within the last 3600 seconds. Events arrive as (timestamp, value) pairs with monotonically non-decreasing timestamps. Support add and topk operations efficiently.

“This part felt like a warmup and I treated it that way, which was maybe a mistake because they immediately pushed on tie-breaking and I hadn't thought about it at all.”

View Post

CloudKitchens·Software Engineer·Online Assessment (OA)

Jul 2026
CloudKitchens SWE interview was a multi-level OA where you build out an in-memory cloud storage system from scratch, adding features layer by layer. The problem itself is pretty involved and covers file management, user quotas, merging, backups, and size transforms. No system design fluff, just pure implementation.
  • Design and implement an in-memory cloud storage system with basic file operations: adding a file (failing on duplicate names), retrieving a file's size, and deleting a file.
  • Extend the storage system to support per-user file ownership and a query that returns the top N files for a given user, filtered by name prefix and suffix, sorted by size descending with lexicographic name as a tiebreaker.
  • Add user creation with capacity limits, a file-add operation that enforces per-user quotas, a capacity adjustment that auto-deletes the user's largest files if needed, and a user merge that transfers files while respecting the target user's capacity.
  • Implement backup and restore for user files, plus compress (halve each file size) and decompress (double each file size, then enforce capacity by deleting largest files) operations.

“This part is straightforward.”

View Post

CloudKitchens·Software Engineer·Technical Phone Screen

Jul 2026
Second round at Cloudkitchens for a software engineer role. They asked me to implement a reentrant lock on the spot and I completely fell apart. The room got uncomfortable fast and I don't think I recovered.
  • Implement a reentrant lock, including handling complex usage scenarios.

“Froze.”

View Post

CloudKitchens·Software Engineer·Online Assessment (OA)

Jun 2026
Did an OA for a Software Engineer role at Cloudkitchens that involved building a small order management system from scratch, then having test cases run against an HTTP endpoint. Spent two hours on it, felt okay about my solution, then got rejected. Recruiter hinted they grade with AI against a reference answer, which explains a lot.
  • Build a small order management system that exposes an HTTP endpoint, designed to pass a suite of automated test cases.

“Two hours of hand-coding and I thought I had something reasonable.”

View Post

CloudKitchens·Software Engineer·Technical Phone Screen

May 2026
CloudKitchens SE interview with a meaty coding design question that blended OOP, receipt formatting, and a discount algorithm all in one problem. More system-designy than pure leetcode, which I wasn't fully expecting.
  • You're building a point-of-sale UI for a food ordering system. Given class stubs for Item, Menu, Order, and Display, wire up a callback that fires each time a user taps an item. Part A: update the order and print a receipt showing each item's name, quantity, unit price, line total, subtotal, and grand total. Part B: extend the system to apply combo discounts where a combo is defined by a required item count, a set of eligible item IDs, and a discount type (flat amount off or percent off). After each item tap, find any valid non-overlapping combo application and reprint the receipt with discounts shown.

“This was a lot to hold in your head at once.”

View Post

CloudKitchens·Backend Engineer·Take-home Assignment

May 2026
Cloudkitchens backend take-home: build a real-time food order fulfillment system from scratch, including concurrent order handling, shelf storage with capacity and temperature rules, courier dispatch timing, and order decay logic. Pretty meaty for a take-home, and the design discussion component made it feel closer to a system design round than a typical coding assignment.
  • Design and implement a real-time order fulfillment system for a delivery-only kitchen. The system needs to handle concurrent order placement, shelf storage with capacity and temperature constraints, overflow rules, courier dispatch and pickup timing, and order decay and discarding.
  • Walk through your concurrency model. How did you handle simultaneous order placements and shelf updates safely?
  • Describe your data model for orders, shelves, and courier state. What were the key design decisions?

“This was a lot more involved than I expected.”

View Post

CloudKitchens·Software Engineer·Take-home Assignment

May 2026
CloudKitchens take-home for a Software Engineer role. The challenge was a full backend design and implementation problem around a real-time food order fulfillment system, concurrency and all. Pretty involved for a take-home, not your typical LeetCode grind.
  • Design and implement a single-process real-time backend system for a delivery-only kitchen that handles concurrent order placement and pickup, with specific storage devices (heater, cooler, shelf), freshness degradation rules, and a full action ledger.
  • How do you compute an order's remaining freshness when it has spent time across multiple storage locations at different temperatures?
  • What data structures would you use to support fast order lookup by ID, efficient placement into storage, and a discard selection from the shelf that is better than O(n) in the worst case?
  • Walk through your concurrency approach. How do you ensure the system is safe for concurrent placements and pickups without introducing deadlocks or race conditions?
  • What is your discard criterion when the shelf is full and no moves are possible, and why is it a reasonable choice?
  • Build a CLI simulator that fetches orders from a server, places them at a configurable rate, schedules random pickups within a time window, and submits the action ledger after all orders are processed.

“This was the whole assignment.”

View Post

CloudKitchens·Software Engineer·Take-home Assignment

May 2026
CloudKitchens SE interview had me building a console-based restaurant menu manager from scratch, which sounds straightforward until you're staring at enum design and data structure tradeoffs at the same time. Pretty hands-on coding exercise with a CLI component and unit tests expected.
  • Design and implement a console-based restaurant menu management system with fixed item categories (enum), CRUD operations, CLI input handling, and basic unit tests.
  • What data structures would you choose to get O(1) add, update, and remove by item name, while keeping category listing at O(k log k) where k is the number of items in that category?

“The enum part was easy but I spent way too long second-guessing whether to use a HashMap keyed by name for O(1) lookups or something fancier.”

View Post

CloudKitchens·Software Engineer·Technical Phone Screen

May 2026
CloudKitchens SWE interview with a meaty parsing problem: build a menu parser and serializer that converts between an indented pipe-delimited text format and an in-memory tree, with a round-trip correctness guarantee. More interesting than the typical LeetCode grind, but the edge cases will get you if you're not careful.
  • Implement a parser that reads an indented pipe-delimited menu text and converts it into a tree of menu item nodes, where indentation depth (two spaces per level) determines parent-child relationships.
  • Implement a serializer that takes the in-memory menu tree and reproduces the original text format exactly, using two spaces per depth level and a pre-order traversal.
  • How would you make the parser handle malformed input gracefully, such as wrong field counts, indentation jumps of more than one level, or non-numeric prices, while reporting the exact line and reason for failure?
  • If the name or type fields could contain pipe characters or newlines, how would you redesign the format and update the parser and serializer to handle it while keeping the format human-readable?
  • How would you adapt the parser and serializer to work on a stream of lines rather than loading the full text into memory, and what changes for the round-trip guarantee?

“My first instinct was recursion and I started going down that path before realizing it could blow the stack on deeply nested menus.”

View Post

CloudKitchens·Software Engineer·Technical Phone Screen

May 2026
CloudKitchens SWE interview, got a concurrency design question that was more involved than I expected for a coding round. They wanted a full working implementation, not just a whiteboard sketch.
  • Design and implement a thread-safe restaurant order system where multiple threads can place orders, one or more chef threads cook them concurrently, and customer threads block until their specific order is ready for pickup. No deadlocks, no busy-waiting, each order cooked exactly once.

“This one took me a minute to even parse.”

View Post