Skip to Content

Coding Interviews: System Design

Design a url shortener service (similar to tinyurl).

1. Generate expiring unique short URL from provided URL

2. Redirect users to the correct website when they navigate to the short URL

Functional Requirements

1. As users type text in a search box, show the top 10 auto complete results with very low latency

2. Analytics will be collected on what the user types

Design a service with the following functional requirements

1. Users should be able to upload and download files

2. The files should be able to be shared with other users

3. Changes to the files should be pushed to other users with the content on their machine

4. There must be no risk of file corruption

5. Keep track of different versions of the files so they may be rolled back

6. Users should be able to edit files without an internet connection and the changes sync up when a connection becomes available

Design a social network website with the following functional requirements

1. Users should be able to post content with text, images or video 2. Users should be able to follow other users 3. Each user will have a relatively low latency feed which shows content posted by users they follow

Functional Requirements

The ability to set limits on the number of requests allowed within a specific timeframe

Keep performance and fault tolerance in mind

Functional Requirements

Users should be able to query plaintext documents (the twitter posts for this example)

Keep reliability and latency in mind

Functional Requirements:

1. Users can upload videos

2. Users can view videos

3. Search videos by video title

4. Videos should have like and view counts

5. Users can comment on videos

Functional Requirements

1. Group chats

2. Send and receive messages in real time

3. Keep old messages in a database so users can view old group chats and messages

4. Notifications, read receipts and typical chat app functionality