https://ashchk.medium.com/key-concepts-to-prepare-for-the-system-design-interview-part-1-bbe2bd6cf745