Practicing is the key to success
The topic of this short chapter deserves an entire book. But, challenging yourself to solve the following top 10 problems will boost your insights about scalability and your chances of becoming a software engineer.
Designing bitly, TinyURL, and goo.gl (a service for shorting URLs)
Questions to address:
- How do you assign a unique identifier (ID) for each given URL?
- Having thousands of URLs per second, how do you generate unique identifiers (IDs) at scale?
- How do you handle redirects?
- How do you deal with custom short URLs?
- How do you deal with the expired URLs (delete them)?
- How do you track statistics (for example, click stats)?
Designing Netflix, Twitch, and YouTube (a global video streaming service)
Questions to address:
- How do you store and distribute data in a way that accommodates a large number of simultaneous users (the users can watch and share data)?
- How do you track statistics (for example...