← Back to Directory

Zip interview notes, page 1 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

May 2026
Coding round at Ziphq for a software engineer role. The problem was poker hand enumeration, which sounds fun until you realize the interviewer wants you to think carefully about combination spaces and deduplication, not just write a nested loop and call it a day.
  • Given a standard 52-card deck, enumerate all combinations of cards that form a specified poker hand category. Discuss your approach to complexity, deduplication, and edge cases, and write test cases for your solution.

“My first instinct was to just do itertools-style combination generation and filter by hand type.”

View Post

Zip·Software Engineer·Technical Phone Screen

May 2026
Ziphq SWE interview dropped me into an existing vending machine OOD and asked me to bolt on change-making logic. More nuanced than it sounds once you start thinking about inventory constraints.
  • Given a vending machine with an existing product/inventory and bill-insertion subsystem, implement the change-making logic after a successful purchase. How do you decide between a greedy approach and an optimal DP-based strategy, and what do you do when exact change is impossible?
  • How should the vending machine handle the case where it cannot make exact change with its current cash inventory? Should it reject the purchase outright or refund the inserted bills?

“I went greedy first because it's the obvious move, largest denomination down.”

View Post

Zip·Software Engineer·Technical Phone Screen

May 2026
ZipHQ software engineer interview with a vending machine OOP design problem. Pretty involved for a single coding round, they wanted full implementation plus tests, not just a sketch.
  • Design and implement the core logic for a vending machine using object-oriented principles. The machine should store products with ids, prices, and quantities; accept a fixed set of bill denominations; support inserting money, selecting a product, dispensing change, and canceling a transaction. Handle edge cases like insufficient funds, out-of-stock items, and inability to make exact change.

“The change-dispensing part is what got me.”

View Post

Zip·Software Engineer·Technical Phone Screen

May 2026
Ziphq software engineer interview where they handed you a partially built vending machine OOD problem and asked you to implement one specific slice of it. Felt more like a collaborative design exercise than a pure coding grind, which was a nice change of pace.
  • Given a vending machine system with starter code already providing the product inventory and change-making subsystem, implement the bill insertion module. It should validate accepted denominations, reject bad bills, track a running balance, and expose that balance to the rest of the system.

“The starter code being pre-provided was both a gift and a trap.”

View Post

Zip·Software Engineer·Technical Phone Screen

May 2026
Ziphq software engineer round focused entirely on an OOD coding problem. You get starter code and have to build out a vending machine from scratch, including writing your own tests, which I was not expecting.
  • Design and implement a vending machine in an object-oriented style. You need to define the core types (products, inventory slots), handle money insertion to build up a balance, and implement change-making when a purchase completes. Starter code is provided; you are also expected to write your own tests.

“The starter code felt like a gift until I realized it was also a constraint.”

View Post

Zip·Software Engineer·Technical Phone Screen

May 2026
Ziphq coding round with a tree DP problem that looks like a classic LC question but has a twist in how the input is structured. Not the hardest interview I've done but the input format change threw me off more than I expected.
  • Given a binary tree represented as a 2D array (level-order with placeholders for missing nodes), find the maximum sum you can collect such that no two directly connected parent-child nodes are both selected.

“I recognized the underlying problem pretty fast since it's basically house robber on a tree.”

View Post

Zip·Software Engineer·Onsite - Behavioral / Leadership

May 2026
Director-level behavioral round at Ziphq for a software engineering role. The focus was almost entirely on project storytelling, not code or architecture, which I wasn't fully expecting going in.
  • Walk me through three projects you've worked on and why you chose those specific ones to discuss.
  • For each project, what was your specific role and how did the team and scope look?
  • What was the business, user, and technical impact of each project you described?
  • Compare and contrast the three projects. What's different about how you operated across them?

“The 'why these three' part is what trips people up.”

View Post

Zip·Software Engineer·Technical Phone Screen

May 2026
ZipHQ software engineer round focused entirely on a tree DP problem with a follow-up about forests. Pretty algorithmic, no behavioral, just code and justification.
  • Given a tree where each node has an integer value, find the maximum sum of a subset of nodes where no selected node and its parent are both included. Walk through your algorithm, explain why it's correct, and give the complexity.
  • How would you extend your solution to handle a forest of disconnected trees rather than a single rooted tree? How do you identify the components and combine results?

“Classic tree DP but I fumbled the explanation for a minute.”

View Post

Zip·Software Engineer·Technical Phone Screen

May 2026
ZipHQ software engineer round that was basically one coding problem with a follow-up. Pretty focused, no fluff, just tree/graph traversal dressed up as a product-ish data model.
  • You have a list of block objects, each with an id and an optional parentId. Write a function that returns all root block ids, where a root is any block whose parentId is null or references a parent that doesn't exist in the collection.
  • Follow-up: given a specific block id, return the full path of ids from the root down to that block. Walk through your approach, the data structures involved, and the time and space complexity.

“Not too bad once you realize it's just a set lookup.”

View Post

Zip·Software Engineer·Technical Phone Screen

Jun 2026
Ziphq had me do a tree DP problem that was basically House Robber III but extended to n-ary trees, which meant I also had to implement the tree structure from scratch. Not the hardest concept but the extra implementation overhead caught me a little off guard.
  • Given a general n-ary tree (which you must implement yourself, including the node structure with a children list), find the maximum amount you can 'rob' from nodes such that no two directly connected parent-child nodes are both robbed.

“I knew House Robber III on a binary tree pretty well, so seeing it extended to n-ary felt manageable at first.”

View Post