← Nordstrom Interview Insights

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

Senior
May 2026

Summary

System design interview at Nordstrom for a software engineering role. The whole session was basically one massive design question about a reservation system, but it kept branching into security, scaling, deployment, and general engineering philosophy. More ground to cover than I expected.

Questions Asked (7)

Q1

Design an online reservation system that supports creating, modifying, and canceling reservations without allowing double-bookings. Walk through your APIs, data model, consistency guarantees, idempotency, and concurrency control.

System DesignAPI & IntegrationsData Modeling
Author's notes

This was the anchor question and it ate up most of the time.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then design a RESTful API with idempotent endpoints, a normalized data model with unique constraints, and a concurrency control strategy using optimistic locking or transactions. Walk through consistency guarantees (strong for booking, eventual for notifications) and explain how idempotency keys prevent duplicate operations.

Pro tip: Emphasize that idempotency is not just for retries but also for user experience—preventing accidental double-clicks from creating duplicate reservations. Also, discuss how to handle partial failures in distributed transactions, e.g., using saga patterns or two-phase commit, and tie it back to Nordstrom's need for reliable customer service.

1. Clarify Requirements and Scope

Ask about scale (e.g., number of reservations per day), consistency needs (strong vs eventual), and whether the system is for a single store or multiple locations. Define core entities: User, Resource (e.g., table, service), Reservation.

2. Design APIs and Data Model

Define REST endpoints: POST /reservations (create), PUT /reservations/{id} (modify), DELETE /reservations/{id} (cancel). Include idempotency keys in headers for POST/PUT/DELETE. Data model: Reservation table with unique constraint on (resource_id, start_time, end_time) to prevent double-booking.

3. Address Concurrency and Consistency

Use database transactions with SELECT ... FOR UPDATE or optimistic locking (version column) to handle concurrent modifications. For distributed systems, consider a centralized lock service (e.g., Redis) or a queue to serialize bookings per resource. Guarantee strong consistency for booking operations, eventual for notifications.

4. Implement Idempotency

For create/modify/cancel, require an idempotency key. Store the key and the result in a dedicated table; on retry, return the stored result. Ensure that idempotent operations are atomic with the main transaction.

5. Discuss Trade-offs and Extensions

Talk about trade-offs: optimistic vs pessimistic locking, SQL vs NoSQL, and how to handle timeouts and retries. Mention monitoring, alerting, and how to scale (e.g., sharding by resource_id).

Key Points to Mention

  • Unique constraint on (resource_id, time_slot) to prevent double-booking at the database level.
  • Idempotency keys for POST/PUT/DELETE to safely retry operations without side effects.
  • Optimistic locking with version numbers or pessimistic locking with SELECT FOR UPDATE for concurrency control.
  • Strong consistency for booking operations, using ACID transactions; eventual consistency for notifications and analytics.
  • Handling partial failures in distributed transactions via saga pattern or two-phase commit.
  • API design: RESTful endpoints with proper HTTP methods and status codes (e.g., 201 Created, 409 Conflict).

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

Q2

How would you handle capacity limits, waitlists, and reservation expiration or TTL in this system?

System DesignTechnical Trade-offs
Author's notes

Waitlists tripped me up more than I'd like to admit.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the business context—what is being reserved (e.g., curbside pickup slots, in-store services) and the expected scale. Then propose a design that enforces capacity limits atomically, manages waitlists fairly, and uses TTL with a background sweeper to expire reservations, while discussing trade-offs between consistency, latency, and user experience.

Pro tip: Emphasize idempotency and graceful degradation: use idempotent reservation requests to handle retries, and ensure that if the TTL sweeper fails, the system still prevents overbooking via atomic checks at reservation time.

1. Clarify requirements and constraints

Ask about the reservation type, expected traffic, consistency needs, and whether waitlists are first-come-first-served or prioritized. This shapes the entire design.

2. Design capacity enforcement

Use atomic operations (e.g., Redis INCR with limits, database transactions with row locks) to enforce capacity limits and prevent overbooking. Consider sharding by resource ID for scalability.

3. Implement waitlist management

When capacity is full, add users to a waitlist (e.g., Redis sorted set by timestamp). On cancellation or expiration, promote the next eligible user and notify them, with a short window to claim the spot.

4. Handle reservation expiration with TTL

Store reservations with an expiration timestamp. Use a background job (e.g., cron, Redis keyspace notifications) to periodically sweep expired reservations and release capacity. Ensure the sweep is idempotent and doesn't double-release.

5. Discuss trade-offs and failure modes

Compare lazy vs. eager expiration, consistency vs. availability, and how to handle race conditions. Mention monitoring, alerting, and fallback strategies for when the sweeper fails.

Key Points to Mention

  • Atomic capacity checks using Redis INCR or database transactions to avoid race conditions.
  • Waitlist implementation with sorted sets or queues, ensuring fairness and timely notifications.
  • TTL-based expiration with a background sweeper, and idempotent release of capacity.
  • Idempotency keys for reservation requests to handle retries safely.
  • Trade-offs between strong consistency (e.g., locking) and eventual consistency (e.g., optimistic concurrency).
  • Monitoring and alerting for capacity, waitlist length, and expiration job health.

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

Q3

What are the trade-offs between optimistic and pessimistic locking, relational versus NoSQL storage, and centralized versus sharded inventory for this kind of system?

Technical Trade-offsSystem DesignData Modeling
Author's notes

Felt okay here.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the system's requirements (e.g., inventory accuracy, scalability, latency) and then systematically compare each trade-off pair, highlighting when one option is preferable. Use concrete examples from retail inventory systems to illustrate your reasoning, and conclude with a recommendation that balances consistency, availability, and performance.

Pro tip: Tie your trade-off analysis to business impact—e.g., overselling vs. customer experience—and mention how Nordstrom's omnichannel model might influence these decisions. This shows you think beyond pure technical metrics.

1. Clarify Requirements and Constraints

Ask about expected scale, consistency needs, latency requirements, and failure tolerance to ground your trade-off analysis in the specific context.

2. Compare Locking Strategies

Discuss optimistic locking (low contention, retries on conflict) vs. pessimistic locking (high contention, blocking, deadlock risk) and when each suits inventory updates.

3. Evaluate Storage Options

Contrast relational (ACID, strong consistency, complex queries) with NoSQL (scalability, eventual consistency, flexible schema) for inventory data modeling.

4. Analyze Inventory Distribution

Examine centralized inventory (single source of truth, simpler consistency) vs. sharded inventory (scalability, partition tolerance, complexity in cross-shard queries).

5. Synthesize and Recommend

Combine insights to propose a balanced architecture, acknowledging trade-offs and suggesting hybrid approaches where appropriate.

Key Points to Mention

  • Optimistic locking uses versioning and retries, ideal for low-contention scenarios; pessimistic locking prevents conflicts but can cause bottlenecks and deadlocks.
  • Relational databases offer ACID transactions and strong consistency, while NoSQL provides horizontal scalability and eventual consistency, often at the cost of complex joins.
  • Centralized inventory simplifies consistency but can become a single point of failure and scaling bottleneck; sharding improves scalability but complicates transactions and reporting.
  • Consider the CAP theorem: in a distributed inventory system, you must trade off consistency and availability during network partitions.
  • Retail-specific factors: overselling risk, real-time stock visibility across channels, and peak traffic (e.g., Black Friday) influence the choice.
  • Hybrid approaches: e.g., using optimistic locking with a relational database for critical inventory, and NoSQL for product catalog or session data.

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

Q4

How would you scale this reservation system as traffic grows? Think about partitioning, caching, queues, rate limiting, backpressure, monitoring, and failure recovery.

System DesignTechnical Trade-offs
Author's notes

This is where I probably talked too fast and crammed too much in.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the system's current architecture, scale, and requirements (e.g., read/write ratio, peak traffic, consistency needs). Then systematically address each area—partitioning, caching, queues, rate limiting, backpressure, monitoring, and failure recovery—explaining how you would apply them and the trade-offs involved. Conclude by discussing how you would validate the design through load testing and iterative improvements.

Pro tip: Tie every scaling decision back to business impact and user experience—Nordstrom cares about seamless shopping, so emphasize how your choices maintain low latency and high availability during peak events like holiday sales.

1. Clarify requirements and constraints

Ask about current traffic patterns, data size, consistency requirements, and SLAs to ground your scaling strategy in reality.

2. Design data partitioning and replication

Explain how you would shard the reservation data (e.g., by user ID, restaurant ID, or time) and replicate for read scalability and fault tolerance.

3. Introduce caching and asynchronous processing

Describe caching layers (e.g., Redis for hot data) and queues (e.g., Kafka, SQS) to decouple writes, smooth spikes, and handle background tasks like notifications.

4. Implement rate limiting and backpressure

Discuss strategies to protect the system from overload, such as API rate limiting, load shedding, and backpressure mechanisms to degrade gracefully.

5. Ensure observability and failure recovery

Outline monitoring (metrics, logs, traces), alerting, and automated recovery (e.g., retries, circuit breakers, failover) to maintain reliability.

Key Points to Mention

  • Database sharding and replication strategies (e.g., consistent hashing, read replicas)
  • Caching layers (e.g., Redis, CDN) and cache invalidation policies
  • Message queues for asynchronous processing and load leveling
  • Rate limiting algorithms (e.g., token bucket, leaky bucket) and API gateways
  • Backpressure techniques (e.g., bounded queues, load shedding, circuit breakers)
  • Monitoring and alerting tools (e.g., Prometheus, Grafana, ELK) and failure recovery patterns (e.g., retries, failover, chaos engineering)

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

Q5

What are the key security and privacy concerns for a reservation system and how would you mitigate them?

System DesignTechnical Trade-offs
Author's notes

Shorter exchange than the rest.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by identifying the core assets (customer PII, payment data, reservation integrity) and the main threats (data breaches, fraud, unauthorized access). Then walk through security controls (encryption, access control, secure APIs) and privacy principles (data minimization, consent, retention) in the context of a reservation system, and finally discuss trade-offs like usability vs. security and compliance (PCI-DSS, GDPR/CCPA).

Pro tip: Tie your answer to Nordstrom's omnichannel retail context—mention how reservation data integrates with loyalty programs and POS systems, and emphasize that security must be balanced with a seamless customer experience.

1. Identify Assets and Threats

List what needs protection: customer PII, payment info, reservation integrity, and availability. Then outline threats: data breaches, insider misuse, DDoS, and fraud.

2. Apply Security Controls

Describe controls like encryption (at rest and in transit), authentication/authorization (OAuth, RBAC), input validation, and secure API design to prevent injection and unauthorized access.

3. Implement Privacy by Design

Explain data minimization, purpose limitation, consent management, and retention policies. Mention anonymization for analytics and compliance with regulations like GDPR/CCPA.

4. Address Operational Security

Cover monitoring, logging, incident response, and regular audits. Discuss rate limiting and bot detection to prevent abuse of reservation endpoints.

5. Discuss Trade-offs and Compliance

Acknowledge trade-offs between security and user experience, and mention industry standards (PCI-DSS for payments) and how to balance them in a retail environment.

Key Points to Mention

  • Encryption of data at rest and in transit (TLS, AES-256)
  • Role-based access control (RBAC) and least privilege for employees and systems
  • PCI-DSS compliance for payment card data and tokenization
  • Privacy regulations (GDPR, CCPA) and data subject rights (access, deletion)
  • Rate limiting and CAPTCHA to prevent bot-driven reservation abuse
  • Secure API design (OAuth 2.0, input validation, output encoding)

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

Q6

Which deployment strategy would you choose for this system, blue/green, canary, or rolling, and why?

Technical Trade-offsSystem Design
Author's notes

Said canary and explained it lets you catch booking-flow regressions on a small slice of traffic before they hit everyone.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the system's requirements and constraints (e.g., traffic volume, criticality, rollback needs, infrastructure). Then compare the three strategies against those criteria, and recommend one with a clear rationale, acknowledging trade-offs and possible hybrid approaches.

Pro tip: Tie your recommendation to business impact—e.g., Nordstrom's peak seasons demand zero-downtime and instant rollback, which often favors blue/green or canary over rolling. Also mention that the choice can evolve as the system matures.

1. Clarify system context

Ask about or state assumptions regarding traffic patterns, criticality, deployment frequency, and infrastructure (e.g., Kubernetes, load balancers). This shows you tailor solutions to the problem.

2. Define evaluation criteria

List key factors: risk tolerance, rollback speed, resource cost, complexity, and user impact. These criteria will drive your decision.

3. Compare strategies

Briefly outline pros and cons of blue/green, canary, and rolling against the criteria. For example, blue/green offers instant rollback but doubles resources; canary minimizes risk but requires sophisticated traffic routing; rolling is resource-efficient but slower rollback.

4. Recommend and justify

Choose one strategy (or a hybrid) and explain why it best fits the context. Acknowledge any trade-offs and how you would mitigate them.

5. Discuss implementation and monitoring

Mention how you would execute the strategy (e.g., tools, automation) and what metrics you'd monitor to ensure success and trigger rollback if needed.

Key Points to Mention

  • Zero-downtime deployment and instant rollback capabilities
  • Risk mitigation and gradual exposure to users
  • Resource cost and infrastructure complexity
  • Automated testing and monitoring integration
  • Business impact and customer experience (e.g., peak shopping seasons)
  • Hybrid approaches (e.g., canary with blue/green for rollback)

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

Q7

When designing features or services in general, what principles and risks do you prioritize first?

Technical Trade-offsAdaptability & Ambiguity
Author's notes

Broader and more philosophical than I expected as a closer.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by framing your answer around user impact and business value, then discuss technical principles like scalability, maintainability, and security. Acknowledge trade-offs and risks, and show how you balance them with Nordstrom's customer-centric and omnichannel context.

Pro tip: Tie your principles to Nordstrom's specific context—like high-traffic sales events or seamless omnichannel experiences—to demonstrate you understand their business and can prioritize accordingly.

1. Clarify Goals and Constraints

Begin by understanding the feature's purpose, target users, and business objectives, along with any technical or regulatory constraints.

2. Prioritize Principles

List the key principles you prioritize, such as user experience, scalability, reliability, security, and maintainability, and explain why they matter for this context.

3. Identify Risks

Discuss potential risks like performance bottlenecks, security vulnerabilities, technical debt, or vendor lock-in, and how you assess their likelihood and impact.

4. Balance Trade-offs

Explain how you make decisions when principles conflict, using data, experimentation, and stakeholder input to guide trade-offs.

5. Iterate and Validate

Emphasize the importance of building incrementally, monitoring outcomes, and being ready to adapt as new information emerges.

Key Points to Mention

  • User experience and customer impact as the north star
  • Scalability and performance for peak traffic (e.g., Nordstrom Anniversary Sale)
  • Security and compliance (PCI, data privacy)
  • Maintainability and technical debt management
  • Observability and monitoring for early risk detection
  • Trade-offs between speed to market and long-term quality

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