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.
Quick Answer: 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.