Selected work

Projects

Systems I have designed and built, with the problem, my ownership, and evidence kept close together.

  1. Active build

    Hybrid RAG

    A local workspace for uploading documents, exploring passages, and asking grounded questions with inspectable sources.

    Problem

    Retrieval systems are difficult to trust when their ingestion, ranking, and citation decisions are hidden from the person using them.

    What I owned

    • Designed the document ingestion, hybrid retrieval, reranking, and citation-verification pipeline.
    • Built the FastAPI and React application around Qdrant, OpenAI adapters, and deterministic local tests.
    • Python
    • FastAPI
    • React
    • Qdrant
    • OpenAI
    • Docker
  2. Active build

    Typeracter

    A focused typing app for solo practice and private real-time races with friends, with no account required.

    Problem

    Most typing tools separate deliberate practice from the lightweight social pressure that makes a live race engaging.

    What I owned

    • Built the solo practice flow, private race rooms, and synchronized live-progress experience.
    • Shaped a low-friction entry path so people can practice or race without creating an account.
    • React
    • Vite
    • TypeScript
    • Socket.IO
    • PostgreSQL
  3. Active build

    BugRace AI

    A real-time multiplayer debugging game with server-owned race state, semantic evaluation, and deterministic scoring.

    Problem

    Debugging practice is usually solitary and open-ended, making it hard to compare reasoning under the same constraints.

    What I owned

    • Defined the typed room protocol, server-authoritative lifecycle, deadlines, and deterministic leaderboard rules.
    • Separated AI semantic evaluation from application-owned scoring and safe curated fallbacks.
    • Next.js
    • TypeScript
    • Express
    • Socket.IO
    • Zod
    • OpenAI
  4. Active build

    Second Brain

    A multi-user knowledge backend for saving links, extracting metadata, organizing notes, and sharing collections.

    Problem

    Useful links become difficult to retrieve when their context, ownership, tags, and sharing rules live in separate places.

    What I owned

    • Designed the relational user, note, tag, and share-link models with strict ownership boundaries.
    • Built authenticated content, metadata ingestion, soft-delete, and public sharing APIs.
    • Node.js
    • Express
    • TypeScript
    • PostgreSQL
    • Prisma
    • Zod