Obsidian Setup for System Design Interview Notes

Quick guide to set up Obsidian for the SDI notes (similar to DDIA setup).

πŸš€ Quick Setup (5 minutes)

  1. Open as Vault: Open /Users/niladri.roy/Learn/System Design/SDI-Notes in Obsidian
  2. Enable Community Plugins: Settings β†’ Community plugins β†’ Turn on
  3. Install Spaced Repetition: Browse β†’ Search β€œSpaced Repetition” β†’ Install & Enable
  4. Configure Flashcard Tags: Settings β†’ Spaced Repetition β†’ Flashcard tags: #flashcards

Done! Now you can review flashcards.

πŸ“ Folder Structure in Obsidian

SDI-Notes/
β”œβ”€β”€ README.md ⭐ Start here
β”œβ”€β”€ interview-framework.md ⭐ Read this first
β”œβ”€β”€ estimation-cheatsheet.md ⭐ Memorize these numbers
β”œβ”€β”€ key-patterns.md ⭐ Common patterns reference
β”‚
β”œβ”€β”€ volume1/
β”‚   └── ch##-system-name.md (15 chapters)
β”‚
β”œβ”€β”€ volume2/
β”‚   └── ch##-system-name.md (13 chapters)
β”‚
β”œβ”€β”€ flashcards/
β”‚   β”œβ”€β”€ vol1-fundamentals.md #flashcards #volume1
β”‚   └── vol1-ch##-system.md #flashcards #system-name
β”‚
└── practice/
    └── mock-interview-notes.md

🎴 Flashcard Setup

Tag Structure

For Volume 1 chapters:

#flashcards #volume1 #rate-limiter

For Volume 2 chapters:

#flashcards #volume2 #proximity-service

For fundamentals:

#flashcards #fundamentals #estimation

Review by Tag

In Spaced Repetition settings:

Review everything:

Flashcard tags: #flashcards

Review Volume 1 only:

Flashcard tags: #flashcards #volume1

Review specific system:

Flashcard tags: #flashcards #rate-limiter

Flashcard Format

Use the ? separator (works with the plugin):

What is consistent hashing?
?
A technique to distribute keys across servers using a hash ring. When servers are added/removed, only adjacent keys are affected, not all keys.

Important: No blank lines within answers! The plugin treats blank lines as end-of-answer.

1. Spaced Repetition (Essential) ⭐

  • Purpose: Flashcard review with spaced intervals
  • Setup: Already covered above
  • Hotkey: Set Cmd/Ctrl+R for β€œReview flashcards”

2. Dataview (Helpful)

  • Purpose: Dynamic queries and tables
  • Example: Track chapter progress
TABLE status as Status, difficulty as Difficulty
FROM "SDI-Notes/volume1"
WHERE file.name != "README"
SORT file.name

3. Excalidraw (Helpful)

  • Purpose: Draw system diagrams directly in Obsidian
  • Great for: Practicing whiteboard drawings
  • Tip: Add .excalidraw.md to folders to ignore in SR settings

4. Mind Map (Optional)

  • Purpose: Visualize connections between systems
  • Use: See how patterns relate across designs

5. Obsidian Git (Backup)

  • Purpose: Auto-commit changes to GitHub
  • Setup:
    cd "/Users/niladri.roy/Learn/System Design/SDI-Notes"
    git init
    git add .
    git commit -m "Initial commit"
    # Add remote and push
  • Plugin: Auto-commits every 30 min

🎯 Study Workflows

Daily Study (1-2 hours)

Morning Routine (30 min):

1. Review flashcards (15 min)
   - Open any chapter file
   - Cmd+P β†’ "Spaced Repetition: Review flashcards"

2. Read estimation cheatsheet (5 min)
   - Memorize 2-3 new numbers

3. Scan key patterns (10 min)
   - Review one pattern category

Main Study (60 min):

1. Read one chapter (30 min)
   - Take notes in the chapter file
   - Mark key trade-offs

2. Create flashcards (15 min)
   - Extract 5-10 key concepts
   - Add to flashcard file

3. Practice drawing (15 min)
   - Draw system on paper
   - Time yourself (aim for 10-15 min)

Evening Review (20 min):

1. Review flashcards again (10 min)
2. Explain system out loud (10 min)
   - Pretend you're in an interview
   - Use framework from interview-framework.md

Pre-Interview Review (2-3 hours)

1 week before:

Day 1: Review interview-framework.md + fundamentals
Day 2-3: Practice 4-6 systems similar to target company
Day 4-5: Deep dive into 2-3 complex systems (Vol 2)
Day 6: Mock interview with peer
Day 7: Rest, light flashcard review

1 day before:

Morning:
- Review estimation-cheatsheet.md (30 min)
- Flashcard review - all systems (45 min)

Afternoon:
- Quick skim of key-patterns.md (20 min)
- Practice drawing 2-3 systems (45 min)

Evening:
- Light review, early sleep (crucial!)

2 hours before interview:

- Read interview-framework.md (15 min)
- Review flashcards for target systems (30 min)
- Walk through 1 mock design on paper (30 min)
- Relax, hydrate (45 min)

Weekly Review Pattern

Sunday Planning:

  • Set goal: 3 chapters this week
  • Identify which chapters
  • Block study time in calendar

Daily (Mon-Fri):

  • Morning: Review flashcards (15 min)
  • Evening: Study 1 chapter (60 min)

Saturday Practice:

  • Mock interview (45 min)
  • Review and improve (30 min)

πŸ”— Linking Notes

Link to other chapters:

This uses consistent hashing, see [[ch05-consistent-hashing]]

Link to specific section:

See [[interview-framework#Step 3: High-Level Design]]

Link to patterns:

We use the [[key-patterns#1. Client-Server Architecture|client-server pattern]]

Use Cases

In chapter notes, link to:

  • Related patterns in key-patterns.md
  • Similar systems in other chapters
  • Fundamentals in estimation-cheatsheet.md

Example:

## Scalability
 
The notification system uses [[key-patterns#1. Message Queue vs Pub/Sub|pub-sub pattern]]
for broadcasting to millions of users.
 
For estimation, see [[estimation-cheatsheet#QPS (Queries Per Second)]].

🎨 Drawing in Obsidian

Option 1: Excalidraw Plugin

Setup:

  1. Install Excalidraw plugin
  2. Create new drawing: Right-click folder β†’ β€œCreate new drawing”
  3. Draw system diagram
  4. Link in notes: ![[system-diagram.excalidraw]]

Best for: Final polished diagrams

Option 2: Mermaid (Text-based)

Inline in markdown:

```mermaid
graph LR
    Client[Client] --> LB[Load Balancer]
    LB --> Server1[Server 1]
    LB --> Server2[Server 2]
    Server1 --> DB[(Database)]
    Server2 --> DB
```

Best for: Quick diagrams, version control friendly

Option 3: ASCII Art

Simple and fast:

[Client] β†’ [LB] β†’ [Server 1] β†’ [Cache] β†’ [DB]
                  [Server 2] β†—       β†˜

Best for: Quick notes, no plugin needed

πŸ“Š Progress Tracking

In README

Update the progress emoji:

- ⬜ ch04-rate-limiter.md (Not started)
- 🟨 ch05-consistent-hashing.md (Read, need practice)
- 🟦 ch06-key-value-store.md (Can explain)
- 🟩 ch07-unique-id-generator.md (Interview ready)

In Chapter Files

Add status at top:

---
status: interview-ready
difficulty: medium
time-to-complete: 30-min
last-reviewed: 2026-04-08
---

Then query with Dataview:

TABLE status, difficulty, last-reviewed
FROM "SDI-Notes/volume1"
WHERE status = "interview-ready"

πŸ”Ž Search & Navigation

Quick Switcher

  • Cmd/Ctrl + O: Quick open any file
  • Start typing: β€œrate” β†’ finds β€œch04-rate-limiter.md”
  • Cmd/Ctrl + Shift + F: Search all files
  • Use regex: /rate.+algorithm/
  • Filter by path: path:volume1

Graph View

  • Click graph icon (left sidebar)
  • See connections between notes
  • Filter by tag: tag:#flashcards

Tip: Make graph meaningful by linking related concepts!

βš™οΈ Spaced Repetition Settings

Flashcards Section:

  • Separator for multiline flashcards: ?
  • Separator for inline flashcards: ::
  • Folders to ignore: **/*.excalidraw.md

Scheduling Section:

  • Base ease: 250
  • Hard interval: 1.2
  • Good interval: 2.5
  • Easy interval: 3.5

Tags & Folders:

  • Flashcard tags: #flashcards
  • Open random note for review: ON

Algorithm:

  • Use SM-2 (default) or FSRS (experimental, more modern)

Review Strategy

New cards: 20-30 per day (don’t overwhelm)
Reviews: Do all due cards daily (consistency is key)
Rating:

  • Again: Didn’t remember, see in <1 min
  • Hard: Barely remembered, see tomorrow
  • Good: Remembered well, see in 2-3 days
  • Easy: Very easy, see in 5-7 days

Be honest with ratings! Over-rating makes cards disappear when you still need practice.

🚨 Common Issues

Flashcards not showing (0 due)

Check:

  1. File has #flashcards tag at top
  2. No blank lines within answers
  3. Plugin is enabled
  4. Restart Obsidian (Cmd+Q, reopen)

Test:
Create test file with 2-3 simple cards, see if they appear.

Too many due cards

Solutions:

  1. Reduce new cards per day (Settings β†’ SR β†’ Preferences)
  2. Break review into multiple sessions
  3. Focus on one volume/system at a time (adjust tags)

Cards cutting off early

Cause: Blank lines in answer
Fix: Remove blank lines, use ; or bullets without gaps

Before (wrong):

What are three approaches?
?
1. First approach

2. Second approach

After (correct):

What are three approaches?
?
1. First approach; 2. Second approach; 3. Third approach.

πŸ’‘ Pro Tips

  1. Start with framework: Read interview-framework.md first
  2. Practice with timer: Real interviews are time-pressured
  3. Draw on paper: Don’t rely on digital tools for interviews
  4. Explain out loud: Practice articulating your thinking
  5. Review patterns daily: key-patterns.md is your cheat sheet
  6. Link everything: Make your notes a connected graph
  7. Update as you learn: Add insights from mock interviews
  8. Don’t memorize solutions: Understand trade-offs instead

πŸ“± Mobile Study (Obsidian Mobile)

Best uses:

  • Flashcard review on commute
  • Quick estimation practice
  • Reading pattern reference
  • Adding quick notes

Not ideal for:

  • Drawing diagrams
  • Writing long-form notes
  • First-time chapter reading

Setup:

  • Use Obsidian Sync ($8/month) or iCloud Drive
  • Enable plugin sync
  • Download to mobile

πŸŽ“ Advanced: Custom Templates

Chapter Template

Create .obsidian/templates/chapter-template.md:

# Chapter: {{title}}
 
#flashcards #{{volume}} #{{tag}}
 
**Status**: ⬜ Not started
**Difficulty**: Medium
**Time to complete**: 45 min
 
---
 
## Problem Statement
 
[What problem are we solving?]
 
## Requirements
 
### Functional
-
 
### Non-Functional
- Scale:
- Performance:
- Availability:
 
## Estimation
 
### Traffic

DAU:
QPS:
Peak QPS:


### Storage

Data size:
Daily storage:
Yearly storage:


## High-Level Design

[Draw or describe architecture]

## API Design

POST /api/…
GET /api/…


## Data Model

Entity 1:

  • field1
  • field2

## Deep Dive

### Component 1

### Component 2

## Trade-offs

| Decision | Pros | Cons | Alternative |
|----------|------|------|-------------|
|          |      |      |             |

## Patterns Used

- [[key-patterns#Pattern Name]]

## Related Systems

- [[chapter-name]]

## Key Takeaways

1.
2.
3.

---

**Reviewed**: {{date}}

Usage: Settings β†’ Templates β†’ Insert template

βœ… Setup Checklist

  • Open SDI-Notes folder as Obsidian vault
  • Install Spaced Repetition plugin
  • Configure flashcard tags (#flashcards)
  • Test flashcards with a sample file
  • Set hotkey for flashcard review (Cmd+R)
  • (Optional) Install Dataview for progress tracking
  • (Optional) Install Excalidraw for diagrams
  • (Optional) Setup Obsidian Git for backup
  • Read interview-framework.md
  • Review estimation-cheatsheet.md
  • Start with Volume 1, Chapter 3 (Framework)

You’re ready! Start studying and good luck with interviews! πŸš€


Last Updated: 2026-04-08