System Design Interview Notes