Rippling | Senior Software Engineer | Reject
Summary
I interviewed for a Senior Software Engineer role at Rippling, where I was tasked with designing a delivery tracking system. Despite my successful implementation, I was ultimately rejected, likely due to a floating-point precision issue I encountered.
Full Experience
My algorithmic programming round at Rippling for a Senior Software Engineer position began with a discussion about AI tooling, which felt more like an opt-in despite initial communications suggesting liberty to use it. I chose to opt-out. The interview question required me to design and implement a Delivery Tracking System, including methods such as addDelivery, addDriver, and payUpToTime. A critical constraint involved handling cost precision at 1-second intervals. I found the problem quite straightforward and managed to complete the core implementation within 35 minutes, following a brief introductory chat and project discussion.
The interviewer then spent some time validating my solution with his own test cases. For simplicity, I had opted to use double for cost calculations, a decision I explicitly mentioned and the interviewer seemed to accept. However, my solution exhibited some rounding errors, which the interviewer noted, attributing them to the use of double. Despite this, he generally found the solution acceptable. I received a rejection email three days later. I believe the rejection was primarily due to these precision errors, or perhaps the interview concluded without me having an opportunity to refine the error handling.
Interview Questions (1)
Design and implement a Delivery Tracking System. The system should support operations such as addDelivery(delivery_id, driver_id, start_time, end_time, cost), addDriver(driver_id, name), and payUpToTime(driver_id, current_time). A crucial 'gotcha' constraint specifies that cost calculations must maintain precision at 1-second intervals.