← Amazon Interview Insights

Amazon·Software Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
Jul 2026

Summary

Amazon SWE object-oriented design round, one big question about building a credit card system from scratch. Felt like a lot to cover in one session and I definitely left some threads hanging.

Questions Asked (1)

Q1

Design a simplified credit card system using object-oriented principles. Define the core classes and interfaces, describe the main workflows for charging, refunds, billing, and payments, and discuss how you'd extend the design for something like multi-currency or fraud detection.

System DesignData ModelingTechnical Trade-offs
Author's notes

This one sprawled fast.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scope, then define core classes and interfaces with clear responsibilities. Walk through the main workflows (charge, refund, billing, payment) using sequence diagrams or step-by-step descriptions, and finally discuss extensibility for multi-currency and fraud detection, emphasizing trade-offs and Amazon's leadership principles.

Pro tip: Emphasize idempotency and consistency in financial operations, and proactively discuss how you'd handle failures and retries—this shows you understand real-world payment systems and Amazon's customer obsession.

1. Clarify Requirements and Scope

Ask questions to understand expected scale, consistency needs, and key features (e.g., multi-currency, fraud detection). Define functional and non-functional requirements to guide the design.

2. Define Core Classes and Interfaces

Identify main entities like Account, Card, Transaction, BillingCycle, and Payment. Define interfaces for Chargeable, Refundable, and PaymentProcessor to promote loose coupling and extensibility.

3. Describe Main Workflows

Walk through charge, refund, billing, and payment workflows step-by-step. Highlight how classes interact, and discuss error handling, idempotency, and transaction boundaries.

4. Discuss Extensibility

Explain how to extend the design for multi-currency (e.g., Currency abstraction, exchange rates) and fraud detection (e.g., pluggable FraudDetector interface, event-driven checks).

5. Address Trade-offs and Scalability

Discuss trade-offs like consistency vs. availability, synchronous vs. asynchronous processing, and how to scale horizontally. Mention monitoring, logging, and metrics.

Key Points to Mention

  • Idempotency of operations to prevent duplicate charges/refunds
  • Use of interfaces and dependency injection for extensibility (e.g., PaymentProcessor, FraudDetector)
  • Transaction management and consistency (ACID vs. BASE, distributed transactions)
  • Billing cycle logic and statement generation
  • Multi-currency support via Currency and ExchangeRate abstractions
  • Fraud detection integration points and asynchronous processing

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.