system design

updated Oct 13, 2023

  • understanding databases

  • design patterns

  • sql

  • cdn

  • consistent hashing

  • workers

  • asynchronous queues

  • load balancer

  • cache

  • database denormalization, replication

  • partitioning

  • transactions

  • Build a search autocomplete system

  • Design an Online Chat

    • A chat is basically a list of timed messages (as strings) from a set of Users
      • Any user can add to the list
      • Any user can delete from the list
      • Users with the right access can modify the list’s metadata.
  • Design a Call Center

  • Design a Leaderboard (https://leetcode.ca/all/1244.html)

From EPI

  • Design Problems
    • Design a spell checker
    • So I’m guessing: Given some string of whitespace-separated words, check if the words are correctly spelled?
    • How do you obtain a collection of correctly spelled words?
    • How do you do a comparison?
    • Design a solution to the stemming problem
    • What is the stemming problem?
      • For example, consider the words “jumping,” “jumps,” and “jumped.” The stemming process would reduce all of these words to their common root, “jump.”
    • Plagiarism detector
    • Pair users by attributes
    • Design a system for detecting copyright infringement
    • Design TeX
    • Design a search engine
    • Implement PageRank
    • Design TeraSort and PetaSortx
    • Implement distributed throttling
    • Design a scalable priority system
    • Create photomosaics
    • Implement Mileage Run
    • Implement Connexus
    • Design an online advertising system
    • Design a recommendation system
    • Design an optimized way of distributing large files
    • Design the World Wide Web
    • Estimate the hardware cost of a photo sharing app