Personal curriculum notes in Markdown — software engineering, AI, SRE, CS fundamentals, and related topics. Notes are version-controlled here and designed to load in Cursor Notes (or any editor with Markdown preview) from GitHub.
Repository: github.com/tiagoyamashita/content
Notes live under src/content/, split by locale:
| Locale | Path | Description |
|---|---|---|
| English | src/content/en/ |
Primary curriculum |
| Japanese | src/content/jp/ |
Translated / localized notes |
| Portuguese (Brazil) | src/content/pt-br/ |
Translated / localized notes |
Each locale has top-level tracks (sidebar sections), for example:
| Track | Topics |
|---|---|
| Getting started | How this repo is organized |
| CS101 | Algorithms, data structures, databases, networking |
| SWE101 | Languages, Git, system design, databases, Kafka, CDN, … |
| Quant SWE | Markets, market data, microstructure, backtesting, trading systems, risk |
| SRE101 | CI/CD, cloud architecture, Kubernetes, Terraform, observability |
| Cybersecurity | Threat modeling, identity, app/network security, IR |
| AI101 | LLMs, ML, deep learning, AI engineering |
| Digital marketing | SEO, content strategy, analytics, email, paid ads |
| Careers | Japan tech paths — support, QA, FE/BE, PM, SRE; study maps & compensation |
| Cryptocurrency101 | Blockchain concepts and network examples |
| Startups | Free services and practical tooling |
| Languages | Japanese language notes |
| Food | Baking, savory recipes, and related notes |
Tracks can nest submenus (e.g. swe101/languages&frameworks/mermaid/). Section order and titles come from _meta.json files; each note is a .md file with YAML frontmatter.
One Mermaid mindmap per top-level track under src/content/en/ (less cluttered than a single repo-wide diagram). Full index: scripts/output/en-mindmaps/index.md.
Regenerate after adding or renaming sections:
python scripts/generate-en-mindmap.pyFolders can be omitted via scripts/en-mindmap-exclude.json or "mindmapExclude": true in a folder’s _meta.json.
| Track | Mindmap |
|---|---|
| Getting started | Getting started |
| CS101 | CS101 |
| SWE101 | SWE101 |
| SRE101 | SRE101 |
| Cybersecurity | Cybersecurity |
| Food | Food |
| Languages | Languages |
| Digital marketing | Digital marketing |
| AI101 | AI101 |
| Cryptocurrency101 | Cryptocurrency101 |
| Startups | Startups |
content/
├── README.md ← this file
├── scripts/ ← maintenance utilities (Python)
│ └── output/ ← generated graph JSON, mindmaps
└── src/
└── content/
├── en/ ← English notes
│ ├── _meta.json
│ ├── getting-started/
│ ├── swe101/
│ └── …
├── jp/ ← Japanese notes
└── pt-br/ ← Portuguese (Brazil) notes
├── _meta.json
└── …
git clone https://github.com/tiagoyamashita/content.git
cd contentOpen the folder in Cursor or VS Code. Read and edit Markdown under src/content/en/ (or jp/ / pt-br/).
- Open GitHub settings from the Notes menu.
- Set owner/repo to
tiagoyamashita/content. - Set branch to
main. - Set content path to
src/content(orsrc/content/enif your viewer expects a single locale root). - For a private fork, use a token with Contents: Read (or write, if you edit through the UI).
After pushing new folders or files, refresh or resync so the sidebar updates.
Every note starts with YAML frontmatter:
---
label: "I"
subtitle: "Overview"
group: "SWE101"
order: 1
---Filenames follow {label}-{subtitle-slug}.md in kebab-case (e.g. i-overview.md, iii-sequence-diagrams.md).
Each folder that appears in the sidebar needs _meta.json:
{
"label": "Human-readable title",
"order": 3
}Cross-links between notes use markdown with relative paths:
See [Core building blocks](../sysdesign/i-core-building-blocks.md).Full rules — naming, nested submenus, link style, checklists — are in the in-repo guide:
Intro walkthrough: Installation · Setup
Python utilities under scripts/ (stdlib + optional deps; run from repo root):
| Script | Purpose |
|---|---|
generate-en-mindmap.py |
One Mermaid mindmap per src/content/en/ track → scripts/output/en-mindmaps/ |
linkify-content-refs.py |
Turn bare `path/to/note.md` references into markdown links |
build-content-graph.py |
Obsidian-style note graph: nodes from frontmatter subtitle/group, edges from markdown + [[wikilinks]] → JSON + interactive HTML |
patch-graphify-folder-stats.py |
Post-process graphify-out/graph.html to show % of nodes per top folder (AI101, SWE101, …) |
translate-content-ja.py |
Translate English prose to Japanese under src/content/jp/ |
sync-en-mermaid-to-jp.py |
Copy Mermaid diagrams from paired English notes into Japanese notes |
sync-en-locale.py |
Copy en/ into another locale (e.g. pt-br) and machine-translate prose |
sync-en-locale-to-jp.py |
Align jp/ tree with en/ and translate English prose to Japanese |
migrate-ai-applied.py |
One-off migration helpers for AI101 folder moves |
restore-content-en.py |
Restore / repair English content from backups |
Examples:
python scripts/generate-en-mindmap.py
python scripts/linkify-content-refs.py
python scripts/build-content-graph.py --format both --html --locale enOpen the interactive graph in a browser:
scripts/output/note-links-graph.html
(One node per note; label = frontmatter subtitle; color by track; edges = relative .md links and wikilinks.)
This is a personal notes repository. If you fork it:
- Keep
_meta.jsonordervalues consistent among siblings. - Match existing frontmatter and filename patterns.
- Prefer
git mvwhen renaming files so links and history stay clean. - Run
linkify-content-refs.pyafter bulk path or reference edits.
Default branch: main.
No license file is included. Treat content as personal notes unless the owner adds an explicit license.