
Gunn High School graduate and third-year student studying Computer Science @ Purdue University. Interested in art, photography, and all things software.
My resume can be found here.
You may know me from:
Other affiliations:
This website was originally created to experiment with (at the time) new web technologies to me like Next.js and TailwindCSS. Since then, it has become a personal portfolio site and host for various miscellaneous web tinkering.
The structure and function of this website was largely inspired by sheeptester.github.io. View the source code for this website on GitHub, or a directory of all pages here.






































2024
Jumpseat is a travel engine for college students that pairs flights with airport shuttles to find the optimal travel itinerary to and from Purdue, UIUC, and more.
Originally a student startup, a lightweight fork of Jumpseat is now hosted and maintained by me at jumpseat.kevin.fish.
Jumpseat is built using TypeScript, Tailwind CSS, and Next.js, and stores user preferences / breaks via Prisma + Postgres.



2025
image-utils is a custom photo host built to address usability / cost issues with Microsoft OneDrive and other photo sites.
Along with a Next.js frontend, the repository contains several scripts to manage image conversion (HEIC -> WEBP with minimal color loss), optimization, and S3 uploading. The project supports grouping photos into albums, linking / embedding images, and more.



2026
PASIV was my CS 497 Honors Research Project under Prof. Ben Delaware, involving adding a module to an existing OCaml refinement (coverage) type-checker that generated Rocq prover (ITP) files on typecheck failures to debug Z3 (ATP) queries.
Specifically, users could use the generated Rocq files to diagnose missing or incorrect axioms, and automatically convert new axioms back into the type-checker's OCaml format for future queries.
Read the final report or view a (simple) presentation below:


2024-2026
scrape-bot, affectionately called Tom Scott, is the central system coordinating the attack/dev CI pipeline for the Purdue team @ MITRE eCTF {2025, 2026}.
Tom consists of a Discord / Slack bot that
#targets channel to detect teams entering attack phase;See Tom Scott at the eCTF awards ceremony here!
Various programming projects for organizations like the b01lers CTF team or BWSI, as well as personal hobby projects like RBot and WATT.

A custom rCTF frontend framework for b01lers CTF, with Klodd and rctf-deploy-action integration.

A custom bctf-integrated king-of-the-hill dashboard + backend for b01lers CTF.
Challenge source for b01lers CTF 2024. Authored: `use-cache`, `bash cat with pipe`.
Challenge source for b01lers bootcamp CTF 2024. Authored: `>>=jail 0-3`, `lazy debugger`, `class-struggle`.

Discord bot hosting a variety of silly Markov-chain models trained on b01lers server messages.

Simple React hook & component for touch transforms of arbitrary HTML elements.

Headless React component for embedding editable / runnable Jupyter notebooks in the web via Pyodide.
GitHub gists, educational resources, cool programming things, and more.

A guide on how to deploy an organization repository to Vercel for free via GitHub actions.

Purdue Housing Portal scraper to search for available rooms in the midst of a crashing website.
Programming assignments and projects for high school and college.
I participate in Capture the Flag (CTF) competitions as part of Purdue's CTF team b01lers! I typically solve web and misc challenges, and we rank ~5th in the US on CTFTime.
View an incomplete collection of challenge writeups here:
CTF writeups->My brief foray into competitive programming can be found on GitHub under competitive-programming-club, after the club at Gunn that inspired me to try CP.
My Codeforces profile can be found here.