Finished the Amex DE loop about six weeks ago for a senior role on their payments data platform team. I'll share what happened, including what caught me off guard.
Recruiters said the process was 3-4 rounds. In practice it was five. Classic.
Round 1 (technical phone screen): SQL focused. Window functions, CTEs, a question about deduplication logic for transaction records. If you don't know how to think about idempotency in SQL cleanup, read up before you go in. They also asked about a time a pipeline I owned caused a data quality issue. Have that story ready.
Round 2 (system design for data): Design a real-time fraud signal ingestion pipeline. I walked through Kafka for streaming, Spark Structured Streaming for processing, and landing into a Delta Lake layer. They asked about exactly-once semantics. Know this cold if you're interviewing for payments infra: what does "exactly once" mean at the Kafka consumer level vs. the sink level? I fumbled it a bit and they were patient but noted it.
Round 3 (coding): Python, no tricks. Write a function to parse nested JSON from a payment webhook into a flat schema. Realistic problem, not LeetCode. They cared about handling null/missing fields gracefully.
Rounds 4-5 (behavioral + team fit): One with the hiring manager, one with a cross-functional partner (a risk DS). Both were STAR format. "Tell me about a time you had to rebuild trust with a stakeholder after a pipeline outage" was basically word for word asked.
Amex DE stack is mostly Spark, some Kafka, GCP BigQuery in some teams, legacy Oracle in others. Don't be surprised if they ask you about reading from and writing to Oracle in 2026. It's not glamorous but it's reality at a 175-year-old financial company.
Total comp offer I heard through the grapevine for a peer who accepted: around $175k base, 15-18% bonus target, strong 401k match. No equity, which is on brand for traditional financial services.