Design a URL Shortener (High-Level and Low-Level Design)
Company: Microsoft
Role: Software Engineer
Category: System Design
Difficulty: medium
Interview Round: Technical Screen
Quick Answer: This question evaluates the ability to design a large-scale distributed system, covering both high-level architecture and low-level implementation details such as key generation and data modeling. It is commonly used to assess practical system design skills, including capacity estimation, read/write scaling trade-offs, and storage schema decisions. The scenario tests conceptual reasoning about distributed key-value systems alongside applied design of concrete APIs and data structures.