Design a Product Search System
Company: Microsoft
Role: Machine Learning Engineer
Category: ML System Design
Difficulty: medium
Interview Round: Onsite
Design a product search system for a large e-commerce marketplace.
Users enter free-text queries such as `wireless headphones`, apply filters such as price, brand, rating, and availability, and expect a ranked list of relevant products. The system should support frequent catalog updates, inventory and price changes, typo tolerance, synonyms, personalization, and relevance ranking.
Address the following:
- Functional requirements and non-functional requirements.
- Query-time flow from user request to ranked results.
- Product ingestion, indexing, and update pipelines.
- Retrieval strategy, including lexical and semantic retrieval.
- Ranking model design and feature generation.
- Online serving architecture, caching, scalability, and reliability.
- Offline and online evaluation metrics.
- Trade-offs you would make for latency, freshness, relevance, and cost.
Overview: This question evaluates skills in designing scalable, low-latency product search systems, covering information retrieval, ranking model design, feature generation, data ingestion and indexing pipelines, and serving infrastructure.
Read the full Microsoft Machine Learning Engineer interview experience this question came from