Did the amex senior SWE loop about two months ago, system design round specifically. Sharing notes for anyone prepping.
First: amex is NOT trying to hire staff engineers from FAANG and stress-test them with distributed systems puzzles at scale. The bar is real but it's calibrated differently. Think: solid, production-aware, pragmatic design. Not "how do you handle 10 million writes per second."
The question I got was to design a payment authorization service. Classic fintech territory. What they actually cared about: Idempotency. Not just knowing the word. I had to explain how to implement it end-to-end across retries and network failures. This went deep. Failure modes. What happens when the downstream fraud detection service is slow or unavailable. Do you degrade gracefully? Queue it? Fail closed? They pushed on this a lot. Data consistency. Strong vs. eventual, and when each is appropriate for financial transactions. I said "strong consistency, always" and they pushed back. Nuance matters. Observability. They asked specifically about alerting and how you know something's wrong before customers call.
What they didn't care much about: exact choice of message queue (Kafka vs. SQS, whatever), frontend details, or scale math at Google-level numbers.
The interviewer was an experienced SWE, not a manager. She was collaborative and would give hints if you were heading somewhere unproductive. Felt more like a "help me understand how you think" conversation than a gotcha.
45 minutes total. I'd suggest spending the first 8-10 minutes clarifying requirements before drawing anything. They seemed to appreciate that I asked about SLA targets upfront.
Leveling note: this was for a senior / roughly L5-equivalent role, not staff. The design expectations probably step up for a principal interview but I can't speak to that.