← Back to Directory

Zip interview notes, page 2 of 2

Small

Most of these Zip write-ups come from Software Engineers (20). The most reported rounds are the technical phone screen (16), the system design round (2), the behavioral / leadership round (1) and the onsite coding round (1).

20 interview notes · updated Jul 2026

Zip·Software Engineer·Technical Phone Screen

Jun 2026
Ziphq software engineer interview with a grid pathfinding problem. The question sounds straightforward but there are enough edge cases to trip you up if you're not careful about how you handle termination.
  • Given an infinite 2D grid with a start cell, an end cell, and a set of barrier cells, find and return any one shortest path (as a sequence of coordinates) between start and end using four-directional movement. If no path exists, return an appropriate indicator rather than running indefinitely.

“The 'infinite grid' part is what got me thinking too hard at first.”

View Post

Zip·Software Engineer·Technical Phone Screen

Jun 2026
Ziphq software engineering interview that was basically one big design problem: build a composable condition evaluator from scratch. The kind of question that sounds clean on paper but has a lot of surface area once you start implementing it.
  • Design and implement a composable condition evaluation system where conditions are represented as an AST with atomic predicates (equals, greater-than, contains) and composite nodes (And, Or, Not), supporting programmatic construction, an evaluate(record) method, error handling for malformed inputs, and extensibility for new predicate types.

“I started with the class hierarchy and felt pretty good about it.”

View Post

Zip·Software Engineer·Onsite - Coding / Algorithms

Jun 2026
Ziphq coding round for a Software Engineer role, focused entirely on object-oriented design. One practical exercise, no leetcode-style stuff, which was a nice change of pace but also caught me a little flat-footed on the implementation details.
  • Implement the Composite design pattern using a concrete domain of your choice. Define a shared interface across leaf and composite nodes, then demonstrate a recursive operation like calculating total size, rendering, or aggregating cost.

“I picked a file system because it felt safe and familiar.”

View Post

Zip·Software Engineer·Technical Phone Screen

Jun 2026
Ziphq software engineer interview with a coding question focused on map traversal and conditional logic. Pretty straightforward problem but the details matter more than they first appear.
  • You have a hash map where each key maps to a string value. You're given two helper functions: one that checks if a value is valid, and one that translates it. In a single pass, replace every valid value with its translated version and return the updated map.

“Seemed simple at first but the 'single pass' constraint is doing a lot of work in that problem statement.”

View Post

Zip·Software Engineer·Technical Phone Screen

Jun 2026
ZipHQ software engineer coding round, one algorithmic problem the whole time. Tree DP, which I don't practice nearly enough.
  • Given an N-ary tree where each node holds a non-negative integer, find the maximum sum of node values such that no two selected nodes share a direct parent-child edge.

“I recognized it as a tree DP problem pretty fast, which felt good, but then I fumbled around with the recursion signature for longer than I should have.”

View Post

Zip·Software Engineer·Technical Phone Screen

Jun 2026
Interviewed for a software engineering role at Ziphq and got hit with a string/phrase coverage problem that looked approachable until I actually tried to think through the general case. The algorithmic depth required was more than I expected for what seemed like a warmup problem.
  • Given a list of phrases, find the contiguous sub-phrase (spanning any number of words, not necessarily a full string) that maximizes coverage, where coverage is defined as the word count of the sub-phrase multiplied by the number of input strings that contain it as a contiguous word-boundary match.

“My first instinct was a trie and I ran with it way too long.”

View Post

Zip·Software Engineer·Onsite - System Design / Architecture

Jun 2026
ZipHQ system design round for a Software Engineer role, and they threw a multi-level in-memory database problem at me that kept escalating. Each level unlocked only after passing tests on the previous one, which was a nice touch but also meant you couldn't skip ahead if you got stuck.
  • Design the basic CRUD operations for an in-memory database: create and delete records, upsert and delete fields within a record, read an entire record or a specific field. How do you handle non-existent records or fields, and what are the idempotency guarantees?
  • Add a filtered field listing feature: given a record ID and a filter expression, return only the fields that match. How do you define the filter format, and what comparison types do you support?
  • Extend the database to support per-record TTL so records automatically expire after a set duration. How do you model the time source, check for expiry, and handle reads or writes on an already-expired record? What's your target complexity for TTL updates?
  • Add support for historical queries: given a record ID and a past timestamp, return the state of the record as it existed at that point in time. How do creates, updates, deletes, and TTL interact with these look-back reads? What storage approach do you use and what are the trade-offs?

“This felt like a warmup but the idempotency piece tripped me up a bit.”

View Post

Zip·Software Engineer·Onsite - System Design / Architecture

Jul 2026
System design round at Ziphq focused entirely on a two-service order and inventory setup. The depth they wanted on failure modes and consistency patterns was more than I expected for what sounded like a scoped problem.
  • Design a two-service system (Order Service and Inventory Service) that handles placing, cancelling, and fulfilling orders while keeping data consistent between the services.
  • How would you handle a race condition where two orders come in simultaneously for the last item in stock?
  • Walk me through how you'd ensure idempotency for order placement when clients might retry on timeout.
  • If a partial failure occurs mid-saga (e.g., the order is created but inventory reservation fails), how do you compensate and what guarantees can you actually provide to the user?
  • How would you design a reconciliation job to detect and fix inconsistencies between the Order Service and Inventory Service?

“I jumped straight into a synchronous reservation approach and the interviewer let me go for a few minutes before asking what happens when the inventory service times out mid-order.”

View Post

Zip·Software Engineer·Technical Phone Screen

Jul 2026
ZipHQ software engineering interview with a two-part pathfinding problem. The first part was a classic BFS variant and the second layer added time-dependent moving obstacles, which made it significantly harder to reason about on the fly.
  • Given an infinite 2D grid with static blocked cells, find any shortest path from a start coordinate to a goal coordinate using BFS. Your solution must terminate even if the goal is unreachable.
  • Extend the pathfinding problem to handle moving obstacles (parades) that shift position every 2 seconds. You can move or wait each second. Find the minimum-time path, again on an infinite grid, or return unreachable.

“The infinite grid part is what tripped me up initially.”

View Post

Zip·Software Engineer·Technical Phone Screen

Jul 2026
ZipHQ software engineer interview with a card grouping algorithm problem. Pretty involved for a single coding round, more combinatorics than I expected.
  • Given an array of playing card strings in the format rank+suit, find all valid groups where a group is either a same-suit consecutive run of at least 3 cards (and you must output every contiguous sub-run of length 3 or more within each maximal run) or a same-rank set of at least 3 cards. Return all such groups.

“The same-rank part was fine, group by rank, check count >= 3, done.”

View Post