Selected Work
Projects
Pulls audio from video files right in the browser using ffmpeg.wasm, so nothing gets uploaded anywhere. Supports common formats like MP4, WebM, MOV, and MKV, with options for bitrate, channels, and trimming before export.
Next.js / TypeScript / ffmpeg.wasm / Tailwind CSS
Compresses video files directly in the browser without sending them to a server. Lets users adjust compression settings, compare file size changes, and export a smaller file locally. Made to keep video compression quick, simple, and private.
Next.js / TypeScript / ffmpeg.wasm / Tailwind CSS
A browser-native display comparison tool that renders any two screens side by side at accurate physical scale. Choose from a preset library of phones, tablets, laptops, monitors, and TVs, or enter custom dimensions. Everything runs locally with no uploads and no tracking.
Next.js / TypeScript / Tailwind CSS / Vitest
A browser-native Pomodoro timer with configurable work and break cycles. Fully keyboard-driven with spacebar, skip, and reset controls. Includes a circular SVG countdown ring, session tracking via localStorage, optional audio chimes, browser notifications, and a dynamic favicon that updates with the timer state.
Next.js / TypeScript / Tailwind CSS / Vitest
A distraction-free writing workspace with write, preview, and read modes. Tracks word count, character count, reading time, and session progress in real time. Includes a built-in Pomodoro timer for focused writing sessions and a dark/light theme that persists across visits.
Next.js / TypeScript / Tailwind CSS
Still a work in progress. A client-side color accessibility tool that goes beyond basic contrast checks by showing how color pairings appear under different types of color vision deficiency and suggesting better alternatives. Built by someone who is colorblind, for people who want to design more accessibly.
Next.js / TypeScript / Tailwind CSS
A prototype interface for a personal AI companion and assistant. Built around four states: idle, listening, thinking, and speaking, with a minimal frosted-glass UI and WebGL-based visual effects through GLSL shaders. This is the starting point for a larger long-term assistant project.
JavaScript / Vite / GLSL / WebGL / HTML/CSS
Looked at whether restaurant ratings seemed to relate to geographic proximity using a real review dataset. Built in Jupyter with Python, pandas, and data visualization to explore patterns and present the results clearly.
Python / Jupyter Notebook / Pandas / Matplotlib
A concept for an assistive tool that helps visually impaired users navigate their surroundings with more confidence. The idea combines haptic feedback, spatial audio, and environmental awareness, with accessibility and usability kept at the center of the project.
Google Workspace / Mind Maps / UX Design / Accessibility
