Hacking System Design Interviews with an AI Tutor

“In an age where AI writes our code/algorithms, what new skills are interviewers starting to ask? 🤔”

My recent conversations with HR specialists have confirmed a significant shift: many companies are intensifying the focus on extended system design interview - an expanded concept of the coding interview. As AI coding agents rise, the differentiability of simple algorithm writing is declining. The core competence for a modern software developer is now the ability to holistically understand the entire product lifecycle and implement a robust and resilient system.

This change led me to a question: “What if a developer could study System Design right within their IDE, guided by an AI Tutor, without leaving their IDE environment?”

The result is the System Design Tutor Project. I’ve implemented an AI designed to mentor and guide interview preparation, much like a seasoned engineer sitting right beside you.

The AI Tutor’s ‘Flow of Knowledge’

The System Design Tutor primarily uses a RAG (Retrieval-Augmented Generation) system to assist with interview preparation. Think of it as an organized librarian for system design - it rapidly finds and delivers accurate, in-depth knowledge to the learner.

System Design Tutor Architecture showing the sync and question workflows

Sync Workflow: Stocking the Library

The Sync Workflow is how the AI Tutor keeps its knowledge base up-to-date.

  • Starting with clicking a button (TutorUI), the Sync Data mechanism downloads source materials from a trusted GitHub repository (e.g., donnemartin’s system-design-primer).
  • Llama Embed then converts these extensive documents into small, AI-digestible pieces (embeddings).
  • Finally, these transformed knowledge chunks are stored in ChromaDB, a vector database, ensuring the tutor can rapidly access and reference the information at any time.

Question Workflow: Personalized Tutoring on Demand

This is the intelligent core that handles the actual interaction.

  • The user’s question (e.g., “Teach me the design of a Real-time Chat System”) is received via the Cline.
  • Cline calls the Tutor MCP Server to query the Tutor Agent, which holds the core AI logic.
  • The Tutor Agent analyzes the query and initiates the RAG process by searching ChromaDB for all relevant stored knowledge.
  • By combining the retrieved knowledge with a powerful Large Language Model (like AWS Bedrock Claude), it generates a comprehensive, structured learning guide - not just a simple text dump.
  • The Cline then wraps this guide to the user, simulating an engaging, conversational learning experience.

A Quick Demo

You will need to install VS Code Extension: SystemDesignTutor before start.

1. User → Cline: “Teach me the design of a Real-time Chat System”

User asking Cline about real-time chat system design

2. Cline → AI Tutor: Utilizes ChromaDB and the LLM to create a structured tutoring session.

AI Tutor processing the query using RAG

3. Cline → User: Instantly receives a systematic guide covering everything from Load Balancer placement to Scalability and Consistency trade-offs.

Comprehensive system design guide generated by AI Tutor Detailed architecture recommendations from AI Tutor

Full source code is available here: https://github.com/elbanic/SystemDesignTutor

The Unbreakable Foundation: Quality of Knowledge

Using this AI Tutor, I realized that the value of the system is ultimately defined by the quality of its content. While the system-design-primer was an excellent starting point, the potential for this RAG system lies in continuously injecting diverse, verified, and high-quality content.

In an era of generative AI, where incomplete information is easily exposed, our challenge is to focus on foundational principles and robust design. AI tools are here to help us focus on what truly matters.

For more on building RAG systems, check out my guide on building an AWS-based RAG pipeline and context management strategies.

What was your biggest roadblock when learning System Design, and how do you see an AI Tutor changing that learning process for you or your team?