Posted a high-level thread on the full loop elsewhere but wanted to drill into the system design round specifically since that's what people asked about most.
Context: I interviewed for a principal/senior SWE role on the ground operations platform side in Atlanta. They leveled it internally as something like L5-equivalent, though UPS doesn't use numbered levels in any formal way externally.
Format. One interviewer, 50 minutes. No shared whiteboard tool. We did it on a Google Meet and I screen-shared a Miro board I spun up myself. They didn't provide anything. Worth knowing: have your own diagramming tool ready.
The prompt. 'Design a real-time package status system that can handle peak volume during the holiday season.' That's not verbatim but close. Classic logistics problem, very on-brand for UPS obviously.
They were interested in: How I'd handle the ingestion layer (millions of scan events per second during peak) Where I'd put caching and why How I'd model the state machine for a package (sorted, in-transit, out-for-delivery, delivered, exception) What happens when two scan events arrive out of order Consumer-facing vs. internal read paths, and whether those should differ
They did NOT go deep on database schema design. They pushed more on the async messaging layer and fault tolerance.
What landed well. Being explicit about tradeoffs. When I said Kafka for ingestion, they asked why not SQS. I gave a real answer about ordering guarantees and consumer group flexibility, not just 'Kafka is standard.' They liked that I quantified the scale: estimated 30M packages in transit peak day, 10-15 scan events per package per day, worked out the rough QPS.
What they pushed on. Exception handling. The interviewer got noticeably more interested when we got to the 'what does the system do when a package scan contradicts the last known state' question. That's clearly a real problem they deal with.
Prep tip. Read up on event-driven architectures. Not because you need to know Kafka inside out, but because UPS's entire operation is literally a distributed event stream. The mental model helps.