American Express Interview Preparation and Recruitment Process


About American Express


American Express (Amex) is a global financial services company, renowned for its payment cards, travel services, and banking products. Founded in 1850, it has a rich history evolving from an express mail service to a multinational corporation. Headquartered in New York City, American Express operates in over 200 countries and territories.  

Americal Express Interview Questions

Key Aspects of American Express:


* History and Founding: American Express was founded on March 18, 1850, in Buffalo, New York, through the merger of three express mail companies: Wells & Company; Livingston, Fargo & Company; and Wells, Butterfield & Company. The founders were Henry Wells, William G. Fargo, and John Butterfield. Initially focused on delivering packages, valuables, and currency, Amex played a crucial role in the expanding United States.  

* Evolution into Financial Services: Recognizing the needs of travelers and the financial industry, American Express transitioned into financial services. Key milestones include:  

* 1882: Introduction of the Money Order, a safer and more accessible alternative to postal money orders.  

* 1891: Invention of the Traveler's Cheque, providing security and convenience for international travelers.  

* 1915: Entry into the travel business, offering services like ticket sales and tour arrangements.

* 1958: Launch of the first American Express Card, a charge card made of purple paperboard, marking its entry into the payment card industry. This later evolved into the iconic green and gold plastic cards.

* 1987: Introduction of credit cards, offering revolving credit to customers.

* Business Segments: American Express operates through four main segments:

* U.S. Card Services: Offers a range of personal and small business cards in the United States.

* International Card Services: Provides card products and services to consumers and businesses outside the U.S.  

* Global Commercial Services: Focuses on payment and expense management solutions for mid-sized and large corporations.  

* Global Network & Merchant Services: Manages the American Express network that processes transactions and acquires merchants.

* Products and Services: American Express offers a diverse range of products and services, including:

* Credit and Charge Cards: A variety of cards for personal, small business, and corporate clients, known for rewards programs, travel benefits, and spending power. These include premium cards like the Platinum and Gold Cards.  

* Banking Products: Savings accounts and personal loans in some markets.

* Travel Services: Travel booking, Fine Hotels + Resorts program, The Hotel Collection, travel insurance, and the Global Lounge Collection for airport access.
 
* Insurance: Travel insurance, personal accident insurance, health insurance, and in some regions, car and home insurance.  

* Rewards Programs: The Membership Rewards program allows cardholders to earn points redeemable for travel, merchandise, gift cards, and more.  

* Merchant Services: Payment processing solutions for businesses to accept American Express cards.  

* Corporate Programs: Solutions for managing business travel and expenses.  

* Brand and Reputation: American Express is recognized as a premium brand built on trust, security, and service. Its logo, featuring a gladiator, symbolizes these values. The company is also known for its focus on customer experience and providing valuable benefits to its card members.  

* Innovation and Initiatives: Amex has a history of innovation, from the Traveler's Cheque to the first plastic charge card. It continues to evolve with initiatives like Small Business Saturday, which supports local businesses, and a focus on corporate social responsibility, including supporting underrepresented businesses and promoting sustainability.  

* Global Presence: With a presence in over 200 countries and territories, American Express has established a significant international network, offering localized products and services.  

* Financial Performance: American Express is a publicly traded company (NYSE: AXP) with a substantial market capitalization. In 2023, the company reported revenues of $59.283 billion and employed approximately 26,000 people worldwide. For the year ending March 31, 2025, their annual revenue was reported at $62.05 billion.



American Express Recruitment Process


Here's an updated and comprehensive overview of the American Express recruitment process for Software Development Engineer (SDE) roles, tailored for 2025 applicants:

The recruitment process at American Express typically comprises the following stages:

1. Application Submission

  • Methods:

    • Online: Apply through the official careers portal.

    • On-Campus Placements: Participate in campus recruitment drives.

    • Hiring Challenges: Engage in hackathons and coding competitions.

    • Employee Referrals: Leverage referrals from current employees.

  • Eligibility:

    • Bachelor’s degree in Computer Science or related field.

    • Minimum of 65% marks or equivalent GPA.

2. Online Assessment

  • Format: Conducted on coding platforms.

  • Content:

    • 2–3 questions focusing on Data Structures and Algorithms.

    • Emphasis on problem-solving and coding efficiency.

3. Technical Interviews

  • Rounds: Typically two.

  • Focus Areas:

    • Programming languages: Java, C++.

    • Object-Oriented Programming (OOP) concepts.

    • Data Structures and Algorithms.

    • Low-Level Design (LLD).

    • Discussion on academic or personal projects.

4. HR Interview

  • Objective: Assess cultural fit and soft skills.

  • Topics:

    • Behavioral questions using the STAR (Situation, Task, Action, Result) method.

    • Teamwork and leadership experiences.

    • Communication and problem-solving abilities.

5. Onboarding

  • Process:

    • Issuance of offer letter.

    • Orientation sessions covering company culture, policies, and expectations.


Timeline

  • Duration: Approximately 2–3 weeks from application to offer.


Preparation Tips

  • Technical:

    • Practice coding problems on platforms like LeetCode or HackerRank.

    • Review core computer science concepts and OOP principles.

  • Behavioral:

    • Prepare for situational questions using the STAR method.

    • Reflect on past experiences that showcase leadership and teamwork.

  • General:

    • Research American Express's values and recent initiatives to align your responses.

American Express Interview Questions :

1 .
How to find duplicates in an array of integers?
Use a hash set to track seen elements. Iterate through the array, adding elements to the set. If an element already exists in the set, it’s a duplicate.

Code (Python):
def find_duplicates(nums):
    seen = set()
    duplicates = []
    for num in nums:
        if num in seen:
            duplicates.append(num)
        else:
            seen.add(num)
    return duplicates

Relevance to Amex: Detecting duplicates is critical for fraud detection in transaction logs. For large datasets (e.g., credit card transactions), optimize with O(n) time and space. Alternative: Use sorting (O(n log n) time, O(1) space) for memory constraints.

2 .
Reverse a linked list.
Iterate through the list, reversing pointers. Maintain prevcurrent, and next_node pointers.

Code (Python):
class ListNode:
    def __init__(self, val=0):
        self.val = val
        self.next = None

def reverse_list(head):
    prev = None
    current = head
    while current:
        next_node = current.next
        current.next = prev
        prev = current
        current = next_node
    return prev

Why Amex Asks: Linked lists are foundational for systems like transaction ledgers or caching mechanisms. This tests pointer manipulation and memory efficiency.

3 .
Check if a binary tree is a BST.
Perform an in-order traversal and verify if the sequence is sorted. Alternatively, use recursion with valid min/max bounds for each node.

Code (Python):
class TreeNode:
    def __init__(self, val=0):
        self.val = val
        self.left = None
        self.right = None

def is_valid_bst(root, min_val=float('-inf'), max_val=float('inf')):
    if not root:
        return True
    if root.val <= min_val or root.val >= max_val:
        return False
    return is_valid_bst(root.left, min_val, root.val) and is_valid_bst(root.right, root.val, max_val)

Amex Context: BSTs are used in fraud detection trees or transaction categorization. Validating structure ensures data integrity.

4 .
Design a payment gateway system.

Key components:

  1. API Gateway: Handle RESTful requests (e.g., /process-payment).

  2. Authentication Service: Validate API keys/tokens (OAuth 2.0).

  3. Transaction Service: Process payments, handle idempotency (to prevent duplicate charges).

  4. Database: Use ACID-compliant SQL (e.g., PostgreSQL) for consistency.

  5. Fraud Check: Integrate ML models to flag suspicious transactions in real-time.

Why Amex Cares: Payment gateways are core to Amex’s business. Highlight scalability (load balancing), security (PCI-DSS compliance), and idempotency (using unique transaction_id).
5 .
Explain polymorphism in OOP.

Polymorphism allows objects of different classes to be treated as objects of a common superclass. Two types:

  1. Compile-time (Overloading): Multiple methods with the same name but different parameters.

  2. Runtime (Overriding): Subclass redefines a method from its superclass.
    Example (Python):

    class Payment:
        def process(self):
            pass
    
    class CreditCardPayment(Payment):
        def process(self):
            print("Processing credit card payment")
    
    class PayPalPayment(Payment):
        def process(self):
            print("Processing PayPal payment")
Amex Use Case: Polymorphism enables flexible payment processing systems (e.g., handling multiple payment methods like Amex cards, Apple Pay).
6 .
Write SQL to find the second-highest transaction amount.
Use LIMIT with OFFSET or a subquery.
SQL Query:
SELECT MAX(amount) FROM transactions 
WHERE amount < (SELECT MAX(amount) FROM transactions);

Alternative (Window Functions):

SELECT amount FROM (
    SELECT amount, DENSE_RANK() OVER (ORDER BY amount DESC) as rank
    FROM transactions
) WHERE rank = 2;

Amex Relevance: Analyzing transaction data for trends (e.g., high-value fraud patterns) is critical. Optimize for large datasets with indexes on amount.

 

7 .
Detect a cycle in a linked list.
Use Floyd’s Cycle-Finding Algorithm (tortoise and hare). Two pointers: one moves twice as fast. If they meet, a cycle exists.

Code (Python):
def has_cycle(head):
    slow = head
    fast = head
    while fast and fast.next:
        slow = slow.next
        fast = fast.next.next
        if slow == fast:
            return True
    return False

Amex Context: Cycle detection prevents infinite loops in transaction processing pipelines or ledger validations.

8 .
Design a thread-safe cache.

Use a Least Recently Used (LRU) cache with thread safety via locks (e.g., threading.Lock in Python).
Components:

  • Hash Map: For O(1) lookups.

  • Doubly Linked List: Track usage order.

  • Concurrency Control: Lock during get/put operations.

Amex Use Case: Caching frequent API responses (e.g., customer account details) reduces latency. Ensure TTL (time-to-live) for stale data.
9 .
Merge two sorted arrays.
Use a two-pointer approach, comparing elements from both arrays and merging into a new array.

Code (Python):
def merge_sorted_arrays(arr1, arr2):
    merged = []
    i = j = 0
    while i < len(arr1) and j < len(arr2):
        if arr1[i] < arr2[j]:
            merged.append(arr1[i])
            i += 1
        else:
            merged.append(arr2[j])
            j += 1
    merged.extend(arr1[i:])
    merged.extend(arr2[j:])
    return merged

Amex Relevance: Merging sorted datasets (e.g., transaction logs from multiple regions) is common in analytics.

10 .
Explain the CAP theorem.

CAP theorem states that a distributed system can only guarantee two of three properties:

  • Consistency: All nodes see the same data.

  • Availability: Every request receives a response.

  • Partition Tolerance: System works despite network failures.

Amex Context: Amex’s global systems prioritize Consistency (accurate transaction records) and Partition Tolerance (e.g., during network splits). Availability is ensured via failover mechanisms.
11 .
Implement a stack using queues.
Use two queues. For push, add to the main queue. For pop, transfer all but the last element to a temp queue, then return the last element.

Code (Python):
from collections import deque

class Stack:
    def __init__(self):
        self.q1 = deque()
        self.q2 = deque()

    def push(self, x):
        self.q1.append(x)

    def pop(self):
        while len(self.q1) > 1:
            self.q2.append(self.q1.popleft())
        popped = self.q1.popleft()
        self.q1, self.q2 = self.q2, self.q1
        return popped

Amex Use Case: Stacks are used in parsing financial data (e.g., XML/JSON transaction files).

12 .
Find the longest palindromic substring.
Use dynamic programming or expand around center.

Code (Expand Around Center):
def longest_palindrome(s):
    def expand(l, r):
        while l >= 0 and r < len(s) and s[l] == s[r]:
            l -= 1
            r += 1
        return s[l+1:r]
    res = ""
    for i in range(len(s)):
        odd = expand(i, i)
        even = expand(i, i+1)
        res = max(res, odd, even, key=len)
    return res

Amex Relevance: String algorithms are used in data validation (e.g., detecting anomalies in cardholder names).

13 .
Design a REST API for transaction history.

Endpoints:

  • GET /transactions?user_id=123&limit=10

  • Authentication: JWT tokens in headers.

  • Pagination: Use limit and offset.

  • Response Format: JSON with fields like amountdatemerchant.

Amex Focus: Ensure rate limiting (prevent abuse) and encryption (TLS 1.3) for sensitive data.
14 .
Explain database indexing.
Indexes (e.g., B-trees) speed up queries by creating a lookup structure.

Trade-offs: Faster reads vs. slower writes (indexes must be updated).

Amex Example: Index transaction_date for quick fraud analysis across time ranges. Use composite indexes for frequent WHERE clauses (e.g., user_id + date).
15 .
Solve the 'Two Sum' problem.
Use a hash map to store {num: index}. For each element, check if target - num exists in the map.

Code (Python):
def two_sum(nums, target):
    num_map = {}
    for i, num in enumerate(nums):
        complement = target - num
        if complement in num_map:
            return [num_map[complement], i]
        num_map[num] = i
    return []

Amex Use Case: Detecting pairs of transactions that sum to a suspicious amount (e.g., money laundering).

16 .
How does HTTPS work?

HTTPS encrypts data using TLS/SSL:

  1. Handshake: Client-server agree on encryption algorithms.

  2. Certificate Validation: Server sends a certificate (signed by a CA) to prove identity.

  3. Key Exchange: Symmetric session keys are generated for encryption.

Amex Relevance: HTTPS secures customer data (e.g., card numbers, passwords). Amex enforces HSTS and TLS 1.2+ for compliance.
17 .
Optimize a slow SQL query.

Steps:

  1. EXPLAIN ANALYZE: Identify bottlenecks (e.g., full table scans).

  2. Add Indexes: On columns in WHEREJOIN, or ORDER BY.

  3. Normalize/Denormalize: Balance read vs. write performance.

  4. Cache Results: Use Redis for frequent queries.

Amex Context: Transaction reporting dashboards require optimized queries to handle billions of records.
18 .
Implement a binary search.
Split a sorted array into halves recursively until the target is found.

Code (Python):
def binary_search(arr, target):
    low, high = 0, len(arr) - 1
    while low <= high:
        mid = (low + high) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            low = mid + 1
        else:
            high = mid - 1
    return -1

Amex Use Case: Searching transaction logs by timestamp or amount.

19 .
Explain garbage collection in Java.

Java’s GC automatically reclaims memory from unused objects. Key components:

  • Heap: Divided into Young (Eden, Survivor) and Old generations.

  • Algorithms: Mark-and-sweep, G1GC, ZGC.

Amex Relevance: High-performance systems (e.g., fraud detection) require tuning GC to minimize latency spikes.
20 .
Design a rate limiter for an API.
Use token bucket or sliding window log algorithms.

Token Bucket (Python):
from collections import deque
import time

class RateLimiter:
    def __init__(self, capacity, refill_rate):
        self.capacity = capacity
        self.tokens = capacity
        self.last_refill = time.time()
        self.refill_rate = refill_rate  # tokens per second

    def allow_request(self):
        now = time.time()
        time_elapsed = now - self.last_refill
        self.tokens = min(self.capacity, self.tokens + time_elapsed * self.refill_rate)
        self.last_refill = now
        if self.tokens >= 1:
            self.tokens -= 1
            return True
        return False

Amex Context: Prevent abuse of customer-facing APIs (e.g., transaction history endpoints).

21 .
Reverse a string in-place.
Swap characters from the start and end, moving toward the center.

Code (Python):
def reverse_string(s):
    left, right = 0, len(s) - 1
    while left < right:
        s[left], s[right] = s[right], s[left]
        left += 1
        right -= 1
    return s

Amex Use Case: Data sanitization (e.g., masking card numbers by reversing before truncating).

22 .
Explain idempotency in REST APIs.
Idempotency ensures that repeating the same API call produces the same result (e.g., POST /payments with a unique idempotency_key).

Amex Example: If a payment request times out, retrying with the same idempotency_key prevents double charges. Implement via database checks or caching.
23 .
How to handle deadlocks?

Prevention strategies:

  1. Lock Ordering: Acquire locks in a predefined order.

  2. Timeout: Release locks after a threshold.

  3. Deadlock Detection: Use graph algorithms to identify cycles.

Amex Context: Critical for high-concurrency systems like transaction processing.
24 .
Find the maximum subarray sum (Kadane's Algorithm).
Track the maximum sum ending at each position.

Code (Python):
def max_subarray(nums):
    max_current = max_global = nums[0]
    for num in nums[1:]:
        max_current = max(num, max_current + num)
        max_global = max(max_global, max_current)
    return max_global

Amex Relevance: Analyzing profit/loss trends in merchant transactions.

25 .
Design a system to detect fraudulent transactions.

Components:

  1. Real-Time Processing: Kafka streams for transaction events.

  2. ML Models: Anomaly detection (e.g., isolation forests) for unusual amounts/locations.

  3. Rules Engine: Flag transactions exceeding velocity limits (e.g., 5 purchases/minute).

  4. Data Storage: Cassandra for time-series data.

Amex Focus: Low latency (milliseconds) and high accuracy (minimize false positives).