Johnny ThavisaySoftware Engineer shipping software with purpose

View my projects
  • Demonstration of misorter: compare items in pairs to build a ranked list.

    misorter

    Interactive ranking and sorting web application that allows users to compare and rank items in a list in a tournament style manner.

    Next.jsReactTailwind CSSTypeScriptRedis
  • Demonstration of kpoppop's community posts and comment threads, including replies, likes, and comment editing.

    kpoppop

    Kpop content based site inspired by reddit - featuring real-time messaging, discord moderation integration, and running inference on uploaded images using bumble's pre-trained model.

    TypeScriptNestJSReactTailwind CSSPrisma
  • Terminal output from popsocket showing clients connecting, joining a shared conversation pool, and disconnecting.

    popsocket

    Kpoppop's go-based websocket server that integrates with postgresql and valkey to manage real-time messaging by leveraging protocol buffers.

    GoPostgresProtobufsRedisValkey
  • Demonstration of hypebot in Discord, where the bot plays a user's selected audio in a voice channel.

    hypebot

    A discord bot that downloads audio for a specific user from youtube using yt-dlp and converts it to an opus file with ffmpeg to play for them in a voice channel.

    GoDockerFFmpegYT-DLPSQLite
  • WizardWarriors gameplay: pixel-art wizards and warriors battling across a desert arena with a minimap and chat.

    WizardWarriors

    A multiplayer game project with wizard-versus-warrior combat, built around fast rounds and simple browser-based play.

    GameMultiplayerTypeScriptWebRealtime
  • Demonstration of ticketopia's event listings, with performer images, dates, venues, and Find Tickets links.

    ticketopia

    Web application using go that fetches events from Ticketmaster's api and caches them in redis to minimize api calls. A simple and sleek user interface allows users to browse events.

    GoHTMXEchoDockerTempl