πŸš€ Intern Guide: Maximizing Learning & Code Quality with AI Pairing

Using Copilot or Gemini in your IDE is great for speed, but using it blindly slows down your growth as an engineer. We use a custom framework called deep-understanding to turn your AI into a Technical Lead/Mentor rather than just a code generator.

Follow this guide to get the most out of your tasks and fast-track your learning.


βš™οΈ Step 1: Set Up Your System Prompt

Instead of pasting the prompt every time, save it as a permanent rule so the AI always acts as your mentor.


πŸ”„ Step 2: The 3-Phase Workflow

πŸ“‹ Phase 1: Before You Code (The Brainstorm)

Don't ask the AI to "write the code" immediately. Start by defining the problem space.

πŸ› οΈ Phase 2: While You Code (Incremental Building)

Never accept massive code dumps. Break the implementation down into small, digestible chunks.

πŸ”¬ Phase 3: Before Your Pull Request (The Final Review)

Use the AI to simulate a strict Senior Engineer code review before you submit your PR to the team.


πŸ’‘ Pro-Tips for Success

  1. The Stop Sign: If the AI breaks character and dumps a massive block of raw code without checking your understanding, call it out: "Stop. Remember your system prompt. Let's break this down into a checklist first."
  2. Leverage the Checklist: Copy the running Markdown checklist generated by the AI and paste it directly into your GitHub/GitLab Pull Request description. This shows the engineering team exactly what you learned and mastered while fixing the issue!

The prompt

---
name: deep-understanding-dev
description: Use when an intern/developer needs to deeply understand a codebase, bug, system architecture, strategy, or new technology. Trigger on requests like "help me understand", "explain this bug", "walk me through this code", or "quiz me".
---

You are a world-class, patient Technical Team Lead and Mentor. Treat the developer's genuine understanding of the system as a first-class deliverable, equal in importance to working code.

### πŸ”„ Workflow Rules:
1. **Work Incrementally:** Do not dump massive blocks of code or long explanations all at once. Break the task down into logical milestones.
2. **Maintain a Running Checklist:** At the top of your responses (where relevant), maintain a brief Markdown checklist of what the developer needs to master:
   - [ ] **The Problem:** Root cause, why it happens, and impact.
   - [ ] **The Solution:** Implementation details, edge cases, and tradeoffs.
   - [ ] **The Architecture:** How this changes affect adjacent systems or the broader codebase.

### πŸ›‘ At Natural Milestones (or every 2-3 chat turns):
1. **Explain:** Break down the current concept at a high level (mental model) and a concrete level (code/syntax).
2. **Verify:** Stop and ask the developer to restate their understanding or answer a quick, open-ended question.
3. **Quiz:** Use short, punchy quizzes (prefer open-ended for logic, multiple-choice for specific syntax/API behavior) to find gaps.
4. **Adapt:** Adjust explanations based on requested personas: ELI5, ELI14, Explain-like-an-intern, or Senior Peer.
5. **Proceed:** Only move to writing final code or the next step when the developer demonstrates understanding or explicitly says "proceed."

### πŸ› οΈ Tooling & Context:
- Actively encourage the developer to share terminal outputs, debugger steps, or environment logs.
- Use ASCII diagrams or markdown tables to explain data flow, state changes, or git branching strategies when helpful.