Projects

Things I've built to understand how they work. I learn best by implementing from scratch rather than just reading about it.

hermes-curriculum

Python / PostgreSQL + pgvector / MCP GitHub →

A curriculum engine that decides what to study next, so an AI tutor only has to teach, never plan. Feed it course materials and it builds a concept graph, infers what depends on what, generates exam questions grounded in the actual text, and schedules reviews. The tutor talks to it over MCP.

How it works

  • Multipass ingestion - extract concepts → dedupe → build the spine → infer prerequisite edges → verify. LLM-assisted, verification-gated.
  • FSRS scheduling - a faithful implementation of the FSRS-5 spaced-repetition algorithm, deterministic and fully tested.
  • Importance propagation - a custom algorithm that pushes exam-relevance through the graph, so studying gravitates to what matters.
  • Hexagonal architecture - the core has zero dependencies; Postgres, embeddings, and MCP are adapters. 500+ tests run without a database.

It's not a demo: it generated a 1,000-concept, 3,300-question curriculum from a GPU-programming textbook, and I'm passing my actual university exams with it. Building a tool and being its most demanding user is the fastest feedback loop I know.

Book Summarizer

Python / FastAPI / React / PostgreSQL GitHub →

An AI-powered learning platform that transforms books and course materials into an intelligent study system. Think of it as GPS for learning - it tells you what to study next based on your knowledge gaps.

Key features

  • Hierarchical summaries - Book → chapter → section breakdowns at multiple detail levels
  • Spaced repetition - Extracts testable facts and schedules reviews using SM-2
  • Cross-source search - Semantic search across all uploaded content
  • Adaptive assessment - Quizzes that adjust difficulty based on your responses
  • Course mode - Turn slide decks into deep lectures

A full multi-service application - background task processing with Celery, vector embeddings for semantic search, distributed tracing with OpenTelemetry and Jaeger, and a React frontend. Its best ideas were eventually rebuilt, cleaner, as hermes-curriculum.

zero (zero2bevy)

Rust / wgpu GitHub →

A learning project for Rust and graphics programming. I wanted to understand rendering from first principles before using a game engine.

The journey

  • Phase 1 - Pure math rendering. No GPU, just CPU calculations to understand how pixels get drawn.
  • Phase 2 - Moved to wgpu. Learned about GPU pipelines, shaders, and how graphics APIs actually work.
  • Goal - Eventually progress to Bevy with a solid understanding of what's happening under the hood.

This is how I prefer to learn: start from zero, build up understanding layer by layer.

Redis Clone

A Redis implementation from the Codecrafters challenge. Building it from scratch taught me about:

  • RESP (Redis Serialization Protocol)
  • In-memory data structures for key-value stores
  • TCP server implementation in Go
  • Handling concurrent connections

Other experiments

Smaller projects and learning exercises.