THN Interview Prep

DSA + System Design Mind-Map

A markdown-first knowledge base for pattern recognition, fast recall, and teaching — purpose-built for MAANG / big-MNC SDE3+ interviews.

Coding solutions in Go (primary) and JavaScript (alt). System design covers Fundamentals → Building Blocks → HLD → LLD → Deep Dives.


How to use this repo

This is a mind map, not a tutorial. Read it like an index:

  1. You see a problem in an interview.
  2. Skim the Patterns overview and match the recognition cues — that tells you the pattern.
  3. Open the matching pattern file → it lists representative problems and a generic recipe.
  4. Open the problem file → 11-section template: brute → optimal → walkthrough → similar problems.
  5. Use the Similar problems map to jump sideways across problems with the same recipe.

For system design:

  1. Read the System design curriculum for the learning order.
  2. Use the System design interview framework (RESHADED) when given any new design question.

Top-level layout

SectionWhat it holds
Patterns~20 pattern mind-maps (the recognition layer)
Topics226 unique problem mind-maps (see the Problem index; 152 canonical under dp-1d)
CheatsheetsComplexity, Go/JS idioms, DS ops, recognition decision tree
System design fundamentalsCAP, consistency, scalability, back-of-envelope, etc.
Building blocksLB, cache, MQ, sharding, consensus, rate limiter, ID generation, etc.
HLD case studies~20 full HLD case studies
LLD exercises~15 OOD / machine-coding designs
Design patternsGoF + concurrency patterns (Go + JS)
Deep divesKafka, Redis, DynamoDB, Postgres, Cassandra internals
Interview prepCompany playbooks, 12-week plan, behavioral STAR
Problem indexMaster curated problem list (~250)
12-week roadmapPhased 12-week study plan
Problem mind-map templateStrict template every problem file follows
Similar problems mapCross-link map: problem → siblings (auto-index of all problem files)
scripts/validate-problems.shCI-friendly check: all 12 ## sections under topics/**/problems/*.md
scripts/refresh-knowledgebase.shAfter adds/edits: validate → regenerate the similar-problems map → refresh the AI knowledge base snapshot + AGENTS.md snapshot (repo root)
.cursor/skills/knowledgebase-refresh/Cursor skill in repo root describing when and how to run the refresh workflow

Conventions

  • Diagrams: Every problem mind-map includes ## Diagram with a ```mermaid block (placed early, before approaches) for quick visual recall — see the Problem mind-map template. Pattern cards under Patterns follow the same rule (see the Pattern author template).
  • Naming: topics/<topic>/problems/NNN-kebab-name.md where NNN is the LeetCode number.
  • Templates are the source of truth for shape — see the Problem mind-map template, System design interview framework (RESHADED).
  • Mind-Map Tags at the bottom of each file (e.g. #hashmap #pair-sum) — use rg "#hashmap" to retrieve.
  • Code snippets: idiomatic Go first, JS second. Both must be runnable when copied into a main / REPL.

Continuation (agents & context)

  • AGENTS.md (repository root) — handoff checklist, validation command, canonical paths, auto inventory snapshot
  • AI knowledge base snapshot — machine-friendly repo inventory (updated by scripts/refresh-knowledgebase.sh)
  • Archived implementation plan — archived Cursor plan + completion snapshot
  • .cursor/rules/dsa-mind-map-repo.mdc — repo-specific Cursor rules (always applied in this workspace)
  • .cursor/skills/knowledgebase-refresh/SKILL.md — when to rescan the repo and refresh AI knowledge + AGENTS.md after changes
  • Further improvements backlog — optional upgrades (CI, static site, Anki export, CONTRIBUTING, etc.)
  • AI tooling roadmap — phased plan for implementing with AI: guardrails, automation, skills, static site, optional solutions/

Quick start


Coverage goal

~250 curated problems chosen to cover ~90% of MAANG / big-MNC SDE3+ DSA rounds. Source blend: NeetCode 150 (base) + Grind 169 deltas + Striver SDE picks + Sean Prashad pattern fills + ~40 SDE3-tier Hards.

Last updated on

Spotted something unclear or wrong on this page?

On this page