Zip · Phone screen → Onsite
In process2025–2026 ZipHQ Software Engineering OA / Interviews: 31 Experiences
A practical roundup of 31 firsthand ZipHQ software-engineering interview reports published from March 2025 through September 2026.
Coverage: Full-time general and backend software-engineering roles, from new grad through senior; recruiter screens, OA, technical phone screens, practical coding, virtual onsite, system design, hiring-manager rounds, and project deep dives.
Patterns
-
Trees, graphs, and heap-based greedy problems repeat. The strongest clusters were general-tree dynamic programming, parent/root validation, shortest paths, moving obstacles, Open the Lock, and Furthest Building.
-
Follow-ups are part of the question, not bonus material. A base problem might grow into recursion, caching, a forest, multiple parents, moving barriers, or path reconstruction. Several candidates lost most of their time after treating Part 1 as the whole task.
-
OA questions are progressive and stateful. Two reports described 90-minute, four-level exercises where every test in one level had to pass before the next level unlocked.
-
The onsite can mix coding, system design, and a project deep dive. Senior candidates should be ready to discuss consistency and failure handling; new-grad candidates still saw OOP/practical coding and detailed project questions.
Recruiter screens and online assessments
OA 01: Four-level in-memory database
Report date: July 2025 · Role: Backend Software Engineer · Process: 90-minute progressive OA · Result: Rejected after 3 of 4 levels
- Basic record/field/value operations.
- Filtered scans over a record.
- TTL expiration.
- Historical look-back queries.
The important trap was architectural: a flat key-value design that survives Level 1 may need a rewrite when Level 4 asks what value existed at an earlier timestamp. FastPrep has a runnable version of the full progression in In-Memory Database with TTL and Historical Queries.
OA 02: Four-level cloud storage
Report date: July 2025 · Role: Backend Software Engineer · Process: 90-minute progressive OA · Status: Waitlisted
- Add, inspect, and delete files.
- Return the largest files under a prefix with deterministic ordering.
- Add users with capacity limits, add files on behalf of a user, and merge users.
- Back up and restore a user's file state.
The source included screenshots rather than a clean text prompt, so exact signatures varied in readability. The progression itself was clear: each new level extended state created by the previous one.
Recruiter 03: Quick screens can still end abruptly
Two candidates described recruiter calls rather than technical rounds. One Toronto candidate received the next-step coding email within 30 minutes. Another was told the process could move forward, then received a rejection the next day without a technical interview. Treat the recruiter call as a real evaluation, but do not infer progress until the next round is scheduled.
Live interview question bank
Graphs and shortest paths
- Tom and Jerry graph pursuit. Tom and Jerry start in different rooms of a finite undirected graph. Each may move to a neighbor or stay put; Jerry moves first. The candidate was guided toward comparing shortest-path distances from both starting rooms. A room is safe long enough when Jerry can reach it no later than Tom. The exact distance-comparison core is available as Maximum Survival Time in a Graph Pursuit.
- Taxi route with moving parades. Part 1 asks for a shortest direction string around static barriers. Part 2 adds a parade whose blocking line moves once every two taxi steps, so the state needs both position and time. A faithful practice version is Shortest Path Around Moving Parades.
- Open the Lock. Candidates repeatedly saw the four-wheel lock graph. One follow-up required returning an actual sequence of states rather than only the minimum number of moves.
- Parent/root validation. Blocks contain IDs and parent IDs. Candidates had to find roots, traverse multiple components, return paths, detect missing parents, or validate declared levels. Later discussion extended one-to-many parents into many-to-many relationships.
Trees and dynamic programming
- House Robber III on a general tree. The binary-tree problem became an N-ary tree, sometimes with input encoded as a two-dimensional array. Follow-ups introduced multiple roots or disconnected trees. Maximum Nonadjacent Sum in a General Tree covers the reusable parent-versus-children DP core; the reports' forest and path-building follow-ups still need separate preparation.
- Choose a node or its children. Another candidate initially wrote the recurrence incorrectly, rewrote it in roughly five minutes, and was then asked to run and debug it. The feedback focused on technical execution, not just recognizing the pattern.
Greedy and heap questions
- Furthest Building with bricks and ladders. Several reports used sandbags and ropes or springs rather than the LeetCode wording. The heap-based base problem is Furthest Building with Sandbags and Ropes. Multiple candidates also had to return which climbs used which resource; the linked practice covers the base result, so add path/resource reconstruction to your own drill.
- Expensive conversion function. Transform valid dictionary values, recurse into nested dictionaries, cache repeated conversions, and finally choose phrase matches that maximize covered words. Trie or prefix-tree reasoning appeared in more than one report.
Cards and combinatorics
- Zip Rummy. From a 36-card deck, enumerate every same-rank set and same-suit consecutive run that can be formed from the hand. Small traps and deterministic output order made implementation slower than the core idea. Practise the full task in Find All Zip Rummy Melds.
- Mahjong winning draws. Given 13 ranks from 1 through 9, return every rank that completes four groups and a pair without exceeding four copies of any tile. Winning Draws for a Mahjong Hand captures that complete search problem.
- Poker hand variants. Other reports asked for combinations containing runs, sets, or a straight plus a pair. Some posts did not preserve enough rules to reconstruct an exact standalone prompt.
Practical coding and debugging
- Question / Answer / Condition codebase. Candidates entered a Python or Java repository with model classes and tests. Early parts added a question type or conditional check. Later parts combined conditions with AND/OR logic, often as a Composite-pattern tree. Language requirements varied by batch: one email specified Java, while another candidate completed the same family in Python.
- Form extension. A simpler variant asked the candidate to add one new form field type and tests. Existing tests covered older features, so the task rewarded finding the right extension point rather than building a new framework.
- LRU debugging. A compiling Java cache violated its own spec: updates failed to refresh recency, and eviction removed the wrong entry. Bonus credit came from writing one failing test per independent bug.
- Vending machine. Extend starter code across three parts to accept bills, vend products, and make change. Candidates were expected to write their own tests.
- Ticket alert approval cache. Add a cache to an approval workflow, reject a ticket after repeated alerts, then update alert severity. The original report did not disclose the exact threshold, so Cache Ticket Alerts for Approval is explicitly a practice adaptation rather than a verbatim repository.
- Full-stack practical. One full-stack loop combined React and Python, basic request handling, and
fetch. The candidate could search syntax but still needed working integration under time pressure.
System design and project deep dive
- Order and inventory consistency. Design an order flow when Order Service and Inventory Service are separate. Follow-ups covered timeouts, races, locking, distributed transactions, and when inventory quantity changes.
- Project deep dive. Candidates were asked for their own role, project scale, decisions, measurable impact, and a frustrating or failed situation. One director-led round went better when the candidate had several projects ready instead of relying on one story.
31 compact candidate timelines
- Sep 2026 — Graph pursuit · Technical screen · Rejected. Compared Tom's and Jerry's shortest-path distances after an interviewer hint; comments debated BFS, DFS, and cycles.
- Sep 2026 — Ticket-alert practical · Onsite · Rejected. Added alert-count caching and a severity follow-up; a separate repo-debugging round was too vague to reconstruct.
- Jul 2026 — “Catch Me If You Can” · Technical screen · Rejected. Recruiter outreach led to an unseen graph/game task; the report preserved only the title.
- Jul 2026 — LRU debugging · Technical screen · Waitlisted. Found recency-update and wrong-eviction bugs in a Java LinkedHashMap cache and wrote isolating tests.
- Apr 2026 — Cards + AST codebase · Two screens · Advanced. Generated card combinations, then implemented condition logic and tests in a multi-file repository.
- Mar 2026 — Vending machine · Technical screen · Passed. Extended starter code across three parts for bills, products, change, and self-written tests.
- Mar 2026 — Moving parades · New-grad screen · Rejected. Solved static-barrier BFS, then struggled with time-dependent parade state and unreachable destinations.
- Feb 2026 — Senior full loop · Passed. Covered trie conversion, Condition/Question practical, general-tree DP, order consistency, and director deep dive.
- Jan 2026 — Four-question OA · Rejected. Ninety minutes, increasing difficulty, and four failing tests on the last question; domains were not disclosed.
- Dec 2025 — House Robber III on an N-ary tree · Status unknown. Recognized the family but did not finish a running implementation.
- Dec 2025 — Zip Rummy · Technical screen · Rejected. Enumerated all runs and sets; small implementation traps consumed the round.
- Nov 2025 — New-grad full loop · Rejected. Trie phrase savings, Question/Answer/Condition practical, poker melds, and a hiring-manager deep dive.
- Nov 2025 — Roots and many-to-many parents · Waitlisted. Traversed parent relationships, then handled multiple roots and discussed many-parent representations.
- Nov 2025 — Open the Lock · Passed. BFS base solution plus returning one actual sequence of lock states.
- Oct 2025 — Infinite-grid taxi · Rejected. Finished most of static-barrier Part 1 but not the moving semi-infinite parade follow-up.
- Sep 2025 — Mahjong winning draws · Rejected. Returned every rank that completes four groups and a pair.
- Sep 2025 — Form extension · Second screen · Rejected. Added one field type and tests; feature worked, but refactoring remained verbal.
- Sep 2025 — Full-stack loop · Rejected. React/Python integration, card combinations, and project deep dive; syntax search was allowed.
- Sep 2025 — Tree-DP recovery · Passed. Pivoted after a hint, passed tests, then discussed forests and multiple parents.
- Aug 2025 — Toronto recruiter screen · Passed. Next-round coding email arrived in roughly 30 minutes.
- Aug 2025 — Recruiter screen · Rejected. The candidate heard “move forward,” then received a rejection the next day.
- Jul–Aug 2025 — Practical + onsite · Rejected. Added Question/Answer/Condition features and tests, then lost the tree round despite a strong HM deep dive.
- Aug 2025 — Block roots and paths · Waitlisted. Found root IDs, then returned paths; the missing-parent sentinel was not disclosed.
- Jul 2025 — Cloud-storage OA · Waitlisted. Files, prefix ranking, user capacity/merge, then backup and restore.
- Jul 2025 — In-memory database OA · Rejected. Completed CRUD, scans, and TTL; 750/1000 after missing historical lookup.
- Jul 2025 — Unnamed forum-repeat screen · Passed. The candidate called it a prior warm-up but did not identify the task, so it remains unassigned.
- Jul 2025 — Dictionary conversion · Passed. Added nested recursion, memoization, and phrase reuse; an all-substrings attempt cost the final follow-up.
- May 2025 — Open the Lock · Rejected. LinkedIn outreach led to the standard blocked-state target-0202 graph.
- Mar 2025 — Furthest Building · Passed. Follow-up required the exact resource choice at each climb.
- Mar 2025 — AST practical + tree DP · Onsite · Rejected. One Zip-owned codebase round plus House Robber III across multiple roots.
- Mar 2025 — Furthest Building · Passed. Heap solution followed by the same bricks-versus-ladder reconstruction requirement.
Comments
0No comments yet — be the first to share what you know.