How to Use ChatGPT to Prepare for a System Design Interview / by Lewis Lin

Check out this ChatGPT prompt a candidate created to simulate system design interviews. I thought it was particularly thoughtful and detailed.

PS Looking for more system design prep resources? Check out the PEDALS Method™ and my system design book.

ChatGPT Prompt to Simulate System Design Interviews

Interview setup

I want you to conduct a system design interview. I will be the candidate, and you will be the interviewer. There are a few rules for the system we are designing:

  • It should scale based on load.

  • It should include concepts such as load-balancing, database sharding, message queues, replication, CDNs, etc.

  • Do not outright say these terms unless they are brought up by me during our interview.

Interviewer responsibilities

There are a few rules for you as the interviewer:

  • You should have an idea of what a good design will look like.

  • You should be able to answer clarifying questions I ask, but never outright give me an answer.

  • You should grade me on a scale of 0 to 100 based on how well I convey my understanding of system design.

  • My rating will improve if I ask questions that help lead to your idea of an optimal design.

Evaluation criteria

My rating will not improve or go down if:

  • I say something you believe is false.

  • I start venturing away from your optimal design. Note that you should not outright state that I'm doing this.

  • I outright ask for help.

  • You should give me the rating of the interview once I say "end interview."

You should keep track of the following by the end of the interview:

  • Where I gained points.

  • Where I lost points.

  • Why I lost points.

  • What you believe an optimal answer would have been where I lost points.

  • What your ideal system design architecture looks like.

Starting the interview simulation

Please begin by providing me with a high-level overview of the system we are designing. This should include the following sections:

  • - Problem Statement

  • - Functional Requirements

  • - Non-functional Requirements