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)
- Open as Vault: Open
/Users/niladri.roy/Learn/System Design/SDI-Notesin Obsidian - Enable Community Plugins: Settings β Community plugins β Turn on
- Install Spaced Repetition: Browse β Search βSpaced Repetitionβ β Install & Enable
- 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-limiterFor Volume 2 chapters:
#flashcards #volume2 #proximity-serviceFor fundamentals:
#flashcards #fundamentals #estimationReview 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.
π Recommended Plugins
1. Spaced Repetition (Essential) β
- Purpose: Flashcard review with spaced intervals
- Setup: Already covered above
- Hotkey: Set
Cmd/Ctrl+Rfor β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.name3. Excalidraw (Helpful)
- Purpose: Draw system diagrams directly in Obsidian
- Great for: Practicing whiteboard drawings
- Tip: Add
.excalidraw.mdto 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
Internal Links
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:
- Install Excalidraw plugin
- Create new drawing: Right-click folder β βCreate new drawingβ
- Draw system diagram
- 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β
Search
- 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
Recommended Configuration
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:
- File has
#flashcardstag at top - No blank lines within answers
- Plugin is enabled
- Restart Obsidian (Cmd+Q, reopen)
Test:
Create test file with 2-3 simple cards, see if they appear.
Too many due cards
Solutions:
- Reduce new cards per day (Settings β SR β Preferences)
- Break review into multiple sessions
- 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
- Start with framework: Read
interview-framework.mdfirst - Practice with timer: Real interviews are time-pressured
- Draw on paper: Donβt rely on digital tools for interviews
- Explain out loud: Practice articulating your thinking
- Review patterns daily:
key-patterns.mdis your cheat sheet - Link everything: Make your notes a connected graph
- Update as you learn: Add insights from mock interviews
- 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
### TrafficDAU:
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