Project archive · four specimens and an index

Projects

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

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.

An AI-powered learning platform that turns books and course materials into a study system: 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
Turns 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.

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

The journey

  1. Phase 1 Pure math rendering. No GPU, just CPU calculations to understand how pixels get drawn.
  2. Phase 2 Moved to wgpu. Learned about GPU pipelines, shaders, and how graphics APIs actually work.
  3. 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.

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

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

Index of smaller experiments

Other experiments