Jivox / Davinci Commerce - Senior software Engineer
Summary
I completed three interview rounds for a Senior Software Engineer position at Jivox, including a DSA round (binary search problem and linked list cycle detection), a low‑level design round (subscription management system), and a high‑level design round (notification system). The final outcome is pending.
Full Experience
Current Role - SDE 1 YOE - 2.9 yrs + 10 months internship experience (2023 passed out)
Round-DSA
Taken by SDE 1 - 3 Yrs exp
- Binary search - https://leetcode.com/problems/capacity-to-ship-packages-within-d-days/
- Detect the first node of a cycle in a linked list if present
Round - 2 LLD
Taken by SDE - 2
1 . Design the subscription management system . Follow ups : - Handling the concurrancy while renewing - Handling the upgrade and downgrade - Isolation levels
I have listed the functional / non functional requirements , listed the entities and explained the flow and had a good in depth discussion . Basically I was HLD . I feel it went very well , since I am working the same domain which handles the subscription management . So I have added the extra features like auto collection , price variants and all.
Round - 3 HLD
Taken by Lead
- Disign the Notification System
Told the basic flow and solved for the funtional requirements .
Asked to draw the hld diagram . I feel it didn't went well with the follow up questions .
Did I expect an offer ? Does anyone knows how will be the work there and the work culture ?
Interview Questions (4)
Capacity to Ship Packages Within D Days
Given an array weights where weights[i] is the weight of the i‑th package and an integer D representing days, find the minimum ship capacity required to ship all packages within D days. Each day the ship loads packages in order until adding the next package would exceed the capacity, then it sails. Return the smallest possible capacity.
Detect the First Node of a Cycle in a Linked List
Given the head of a singly linked list, determine whether the list contains a cycle. If a cycle exists, return the node where the cycle begins; otherwise, return null.
Design a Subscription Management System
Design a system that manages subscription lifecycles, including creation, renewal, upgrade, downgrade, and cancellation. The design should address concurrency handling during renewal, isolation levels, price variants, auto‑collection of payments, and other functional and non‑functional requirements.
Design a Notification System
Design a notification system that can deliver various types of notifications (e.g., email, SMS, push) to users. Discuss functional requirements, high‑level architecture, scalability, reliability, and any follow‑up considerations.