← Expedia Interview Insights

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

Senior
May 2026

Summary

System design round at Expedia focused entirely on building a disaster notification system for a vacation rental platform. Pretty intense scope for a single session, lots of moving parts to juggle.

Questions Asked (1)

Q1

Design a natural disaster notification system for a vacation rental platform. The system receives disaster events from a third-party API with affected geographic regions, and must identify and notify all impacted properties, orders, hosts, and guests in a timely manner. Walk through your data modeling approach, geospatial indexing strategy, query path, freshness requirements, and how you'd handle many concurrent disaster events at scale.

System DesignData ModelingAPI & Integrations
Author's notes

I started with the naive approach, just querying all active orders and filtering by location, and the interviewer let me dig myself into that hole for a bit before nudging me toward geospatial indexing.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then propose a geospatial data model that maps disaster regions to properties using spatial indexes. Walk through the end-to-end flow: ingest events, query affected entities, and notify via a scalable, idempotent pipeline. Emphasize trade-offs between freshness, accuracy, and cost.

Pro tip: Mention using a geospatial database like PostGIS or a specialized service (e.g., Redis Geo, Elasticsearch) and discuss how to handle boundary cases like overlapping disasters and notification deduplication.

1. Clarify Requirements and Scale

Ask about expected QPS, number of properties, disaster event frequency, and freshness SLA. Define what 'timely' means (e.g., <1 minute) and whether notifications are push or pull.

2. Data Modeling and Geospatial Indexing

Model properties with lat/long and disaster regions as polygons. Use a geospatial index (e.g., R-tree, geohash) to enable fast spatial queries. Consider storing disaster events with affected regions and time validity.

3. Query Path and Matching Logic

On disaster event, query the geospatial index to find properties within affected regions. Join with orders, hosts, and guests. Handle overlapping events and deduplicate notifications.

4. Notification Pipeline and Freshness

Design an asynchronous pipeline: event ingestion -> matching -> notification queue -> delivery. Ensure idempotency and retries. Discuss freshness: near-real-time matching, but notifications may be batched.

5. Scalability and Concurrency

Handle many concurrent disasters by partitioning geospatial index, using message queues for backpressure, and scaling notification workers horizontally. Consider caching and rate limiting.

Key Points to Mention

  • Geospatial indexing techniques (R-tree, geohash, Quadtree) and their trade-offs
  • Data model for properties, orders, hosts, guests, and disaster events
  • Idempotency and deduplication to avoid multiple notifications for the same event
  • Asynchronous processing with message queues (e.g., Kafka, SQS) for scalability
  • Freshness vs. accuracy trade-off: near-real-time matching but eventual notification
  • Handling overlapping disaster regions and boundary cases

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