A progressive, multi-language learning system for programming fundamentals, design patterns, software architecture, data structures & algorithms, and system design.
Foundry is a personal learning environment designed to build and maintain deep programming knowledge across multiple languages. It's structured as a monorepo with a curriculum engine powered by Claude Code.
The goal isn't to collect tutorials — it's to develop muscle memory through realistic exercises, spaced repetition, and building real systems.
- Go — primary (systems, concurrency, simplicity)
- TypeScript — primary (web, productivity, type safety)
- Rust — systems programming, memory safety
- Python — data, scripting, ecosystem
- Scala — JVM ecosystem, functional + OOP (replaces Java)
- Zig — low-level systems, manual memory, comptime
- Haskell — pure functional programming, type theory
Foundry is used through Claude Code in dedicated 30-60 minute sessions. The claude.md file acts as the agent's brain — it understands the curriculum, tracks progress, generates exercises, manages notes, and runs reviews.
- Open the repo in Claude Code
- Say
nextto get a suggested module, or pick a specific topic - Work through exercises with realistic scenarios and acceptance criteria
- Ask for
reviewfor a quick recall quiz - Ask for
ankito export flashcards for long-term retention - Say you're done — session gets logged, progress gets updated
| Command | What It Does |
|---|---|
next |
Suggest the next module based on progress and prerequisites |
exercise [topic] [lang] |
Generate a realistic exercise |
review |
In-session quiz (3-5 questions) |
anki |
Export Anki flashcards (TSV) |
notes [topic] |
Create or update Obsidian vault notes |
status |
Show progress overview |
build [name] |
Start a larger architecture build |
switch [lang] |
Change active language track |
session |
Start or resume a session log |
foundry/
├── claude.md # Agent brain — curriculum engine
├── curriculum/ # Curriculum map, progress, session logs
├── vault/ # Obsidian-compatible knowledge base
├── tracks/ # Language-specific exercises and work
├── dsa/ # Cross-language DSA problems
├── builds/ # Standalone architecture reference builds
└── review/ # Anki exports and quiz logs
The structure is a living scaffold. Core categories are stable but everything within them grows organically as new topics are explored.
The vault/ directory is an Obsidian-compatible knowledge base. Notes are built up progressively during sessions and serve as long-term reference material. They use wiki-links for cross-referencing, frontmatter for metadata, and consistent templates for each note type.
Each language has its own track under tracks/<language>/ with directories for fundamentals, patterns, exercises, and builds. This is where implementation work lives.
Larger architecture projects live in builds/. These are full service implementations (HTTP servers, GraphQL APIs, Kafka microservices, CQRS systems) that tie together multiple patterns and serve as reusable reference templates.
Anki card exports (TSV format) and quiz session logs. Cards are tagged by module and language for filtered study.
The curriculum follows a dependency graph defined in curriculum/map.yaml. Modules unlock as prerequisites are completed.
Progression tiers:
- Fundamentals — variables, control flow, functions, error handling, concurrency, generics
- Patterns — strategy, observer, factory, builder, middleware, repository, DI, pub/sub
- Architecture — layered, hexagonal, CQRS, event-driven, event sourcing, microservices
- DSA — arrays/hashing, linked lists, trees, graphs, sorting, dynamic programming
- System Design — resilience, caching, load balancing, message queues, database patterns
The curriculum is not fixed. New modules, topics, and categories are added as they come up naturally.
- Clone the repo
- Open in Claude Code
- Say
nextorstatus