• Transfer learning lost to my small CNN on FER2013 Code

    For my second PyTorch project I wanted something that would push back harder than MNIST, and FER2013 fit the description nicely: 35,887 grayscale 48×48 face crops sorted into seven emotions, the Angry and Disgust and Fear and Happy and Sad and Surprise and Neutral that the dataset insists every face...

  • First PyTorch project, an MNIST classifier Code

    My first PyTorch project is a handwritten-digit classifier trained on MNIST, which is about as much of a cliché as a first project can be, though the dataset was never really the point. What I actually wanted was to find out what running ML experiments looks like end to end,...

  • HackerRank Orchestrate 2026: a support triage agent that doesn't hallucinate Code

    I entered the HackerRank Orchestrate 2026 hackathon and built a deliberately conservative, RAG-based support triage agent, which finished 298th out of 1,349 contestants. The agent reads an incoming support ticket, retrieves the relevant Markdown docs from the provided corpus, classifies the issue type and product area, and then decides whether...

  • A YouTube debate-video aggregator with AI recommendations Visit Code

    Every coach tells debaters the same thing, which is to watch more rounds, and the trouble with that advice is that the rounds are scattered across hundreds of YouTube channels, the camp uploads and tournament archives and individual playlists, with no central index and no real way to know in...

  • A full-stack web app for eight dollars a year Visit

    I wanted a small product that I could put online and then mostly forget about, so I built a full-stack web app with a real PostgreSQL backend and a few AI features wired into it, and the whole thing runs for roughly eight dollars a year. It is live at...