Software Engineering

I'm a software developer with experience across big tech at Microsoft and DoorDash, as well as several early-stage startups . I hold a Bachelor's degree in Computer Science from Texas A&M University.

3D Website

Jan 2025

I made a first person 3D environment on the web, where the user can walk around, sprint, jump, collect rupees, view my art in a digital upscale museum, see my software projects as if they are physically walking up to them, draw a picture and submit it, with the potential to see it hung up on the wall, interact with an omnipotent and deriding computer from the cartoon 'Courage the Cowardly Dog', Relax in a tranquil forest, or Practice multiplication in a 3D adaptation of 'Meteor Multiplication'.

Why I Built It

I wanted this website to feel like a place you could inhabit rather than a page you scroll. Building a fully explorable 3D world pushed my skills across graphics programming, spatial UX, and browser performance. It was fun. Also I wanted it to exist. Isn't that reason enough?

Technologies

TypeScriptReactThree.jsReact-Three-FiberWebGL

Tags

3D DesignInteractive Design
click to explore

Apr 2026

A single persistent global room where up to 8 people can be on camera and mic at the same time via a peer-to-peer WebRTC mesh. Everyone else joins as audience — watching the live video grid and chatting in a shared text channel. No accounts, no room codes, no database.

Why I Built It

I wanted to build something that felt genuinely real-time — not just a chat box but actual live video between strangers. Wiring together WebRTC peer connections, Django Channels signaling, and Redis-backed room state from scratch was the challenge. Note: visit the site directly — it won't work embedded in an iframe.

Technologies

ReactTypeScriptDjangoWebSocketsWebRTCRedisDocker

Tags

Real-timeWeb Development

Passionfruit

Nov 2025

A project tracking tool that helps you conveniently track and understand all the projects you're working on.

Why I Built It

I have a lot of infrequent hobbies that I like to switch between. I noticed I was feeling overwhelmed by all the projects I was working on, so I built Passionfruit to help me keep track of them in a way that wouldn't stifle my creativity.

Technologies

TypeScriptReactLLM APIs

Tags

AI IntegrationProject ManagementProductivity Tools
hover · click

Life Graph

Mar 2026

A 3D visualization of your life goals and their relationships.

Why I Built It

I wanted to model relationships between my goals and their prerequisites, and how my goals are related to each other. I've made it generic so you can use it for your own goals. It's intended to include basic foundational behaviors like sleeping and eating well, since that's how you're at your best.

Technologies

TypeScriptReactThree.jsWebGLLLM APIs

Tags

AI Integration3D DesignInteractive Design
hover · click

Plasma Sphere

Apr 2026

Like that one toy. You can play with it. Hold click and drag on the ball to attract the electricity! Desktop and mobile.

Why I Built It

I absolutely adore electricity and wanted to create a 3D environment that allows you to play with it. I've been fascinated with physical phenomena like electricity and magnetism, and how the basis of computers is manipulating an electron using a difference in electromagnetic force to make a transistor, which can be used to make logic gates, which can be used to make circuits, which can be used to make arithmetic logic units. With the inclusion of a clock and memory, you can create an entire computer architecture. On the newly formed computer, you can run programs directly on the hardware (baremetal) using binary instructions written for that computer architecture, or you could write a hardware abstraction layer that transpiles a common higher level language like assembly into the language the computer speaks. You can also write a language that's more readable to coders, that compiles into assembly, which is then translated into instructions for your computer! Using that higher level language, developers can move quickly and develop operating systems for a computer. Operating systems make it easier to write programs for the computer, because they handle the allocation of computer resources (they talk to the computer so your program doesn't have to worry about that). They also provide the illusion of isolation, meaning a software program written for an OS does not know other programs exist, and doesn't need to worry about playing nice with the hundreds of other applications running on the computer. The browser is a program on the OS. And this website is written for the browser! And it's all powered by 100 billion electrons jumping from one side of a microscopic germanium-doped silicon trough to the other.

Technologies

JavaScriptThree.jsWebGL

Tags

3D DesignInteractive Design
click to explore

Nickel Tools

Nov 2025

A browser-based desktop OS experience with a swipeable mobile mode, app grid, app tray, and full-screen app windows.

Why I Built It

I wanted a website that was "a website of websites" so I could/can give any little web thing I build a home 💖 I also wanted somewhere to put my art. A desktop OS seemed like the perfect container since the average users can explore apps within a desktop OS.

Technologies

TypeScriptReactNext.js

Tags

Interactive Design
hover · click

RPG Quests

Visit site

June 2025

Convert journal entries into video game quests and live your life like an RPG. This productivity app gamifies your daily life by transforming your goals and activities into quest-like experiences.

Why I Built It

I built videogamequest because I wanted to make productivity and journaling more engaging. By framing life events as RPG quests, it adds a layer of fun and motivation to tracking your progress and achieving goals.

Technologies

TypeScriptReactTailwind CSSFramer MotionNest.jsNode.js

Tags

AI IntegrationProductivity ToolsGamificationJournaling
hover · click
hover · click

Friendex

Oct 2025

A pokédex for your friends—a mobile-first social app that lets you collect and organize information about the people in your life. Built with a focus on delightful mobile interactions and intuitive navigation.

Why I Built It

I created friendex because I wanted a fun, gamified way to remember details about friends. The pokédex metaphor makes it engaging, and the mobile-first design ensures it's easy to use on the go when you're actually with people.

Technologies

TypeScriptReact

Tags

Mobile-FirstSocial AppWeb Development
hover · click
hover · click

Star Wars Ship Costs Visualizer

Nov 2023

An interactive data visualization of Star Wars starship costs from the SWAPI dataset. Explore and compare the price tags of iconic ships across the galaxy — from X-wings to Star Destroyers.

Why I Built It

A fun excuse to combine a beloved universe with data viz. Pulling from the Star Wars API and rendering comparative cost breakdowns made for a satisfying mix of frontend charting work and backend data wrangling.

Technologies

ReactTypeScriptNivoNest.jsNode.js

Tags

Data VisualizationWeb Development
hover · click

Tierlistify

Sep 2025

Prototype around a better mobile tierlisting experience. Everything but the tier list drag and drop mechanism was not focused on.

Why I Built It

I built tierlistify because I was frustrated with how poorly existing tier list tools worked on mobile. I wanted to create something that felt native to touch interfaces, with smooth drag-and-drop interactions and a clean, focused UI.

Technologies

TypeScriptReact

Tags

Mobile UXTouch InteractionsDrag & DropProgressive Web App
hover · click
hover · click

Oct 2025

Counter-Strike Highlight Analysis and Organization System. A desktop application that batch processes video game footage and automatically identifies noteworthy moments using machine learning (OCR and Speech-to-Text).

Why I Built It

As a Counter-Strike player, I wanted to automatically find and organize my best plays from hours of gameplay footage. Manually scrubbing through videos is tedious, so I built CHAOS to use ML to detect kills, callouts, and other significant moments automatically.

Technologies

Python

Tags

Machine LearningOCRSpeech-to-TextVideo ProcessingComputer Vision

VoiceLab

Dec 2025

A Python desktop application for singers to track and analyze their vocal performance across takes. Measures pitch, resonance, weight, brightness, and consistency — giving you a data-driven view of how your voice is developing over time.

Why I Built It

I wanted objective feedback on my singing practice rather than relying purely on ear. Tracking metrics across takes makes it easy to see what's actually improving.

Technologies

Python

Tags

Machine Learning

Batch Analyzer

Dec 2025

(Requires your own API key, I built this as a proof-of-concept with no backend.) A tool that batch processes product images by sending the same queries to each image in a batch using Large Language Models. Perfect for e-commerce teams analyzing product catalogs at scale.

Why I Built It

While working on product analysis tasks, I found myself repeatedly asking the same questions about different images. This tool automates that workflow, allowing teams to analyze entire product catalogs efficiently with custom LLM integrations.

Technologies

TypeScriptReactLLM APIs

Tags

Image ProcessingBatch Processing
hover · click

Feb 2026

A 3D art gallery room inside the holodeck where paintings and artwork are displayed in a navigable virtual space. A personal gallery you can walk through.

Why I Built It

I wanted a way to display 2D art in a spatial context — mounting pieces on walls you can approach and step back from changes how you experience them compared to a flat grid.

Technologies

TypeScriptReactThree.jsReact-Three-FiberWebGLGoGoogle Cloud StorageDocker

Tags

3D DesignInteractive Design
click to explore

Courage Computer Room

Nov 2025

An interactive 3D room inside the holodeck — a retro computer lab environment you can freely explore in the browser. Inspired by the aesthetic of early personal computing.

Why I Built It

I wanted to capture the feeling of a classic computer room as an inhabitable space. It was a chance to blend 3D environmental storytelling with web technology in a way that feels nostalgic and playful.

Technologies

TypeScriptReactThree.jsReact-Three-FiberWebGL

Tags

3D DesignInteractive Design
click to explore

Math Room

Jan 2025

An immersive 3D room dedicated to mathematical visualization — equations, shapes, and concepts brought to life as explorable objects inside the holodeck.

Why I Built It

Math is inherently spatial and I wanted to explore what it looks like to present mathematical ideas as environments rather than notation on a page.

Technologies

TypeScriptReactThree.jsReact-Three-FiberWebGL

Tags

3D DesignInteractive Design
click to explore

Art Museum

Jan 2025

A large-scale 3D museum experience inside the holodeck — a multi-room virtual gallery housing a curated collection you can browse at your own pace.

Why I Built It

Scaling up from the art room into a full museum allowed me to think about wayfinding, pacing, and spatial narrative at a larger architectural scale — all within the browser.

Technologies

TypeScriptReactThree.jsReact-Three-FiberWebGL

Tags

3D DesignInteractive Design
click to explore

Software Showroom

Jan 2025

A software showroom where you can explore my projects in a 3D environment. Walk up to the screens and interact with them. Access your cursor by pressing escape.

Why I Built It

It seemed like a really sci-fi way to showcase my projects.

Technologies

TypeScriptReactThree.jsReact-Three-FiberWebGL

Tags

3D DesignInteractive Design
click to explore

Boards

boards.saucedog.art

Why I Built It

hover · click

Wizard Wars

wizardwars.saucedog.art

Why I Built It

hover · click

SRE Dashboard

Sep 2025

An SRE dashboard for monitoring services, incidents, and logs. Python/Flask backend serves hypermedia via HTMX, while the frontend is built with Lit web components — a native browser standard that's far more capable than most developers realize.

Why I Built It

I wanted to explore a stack that leans into the platform instead of abstracting away from it. HTMX lets the server own state and return HTML fragments directly, cutting out a lot of client-side complexity. Lit is what web components always should have been — lightweight, declarative, and framework-agnostic. I don't think enough people know how powerful the native component model has become.

Technologies

PythonLitHTMXFlask

Tags

SREDashboard
hover · click

Sphere Website

Nov 2023

A vanilla Three.js website built around a rotating 3D sphere — an early exploration of 3D graphics in the browser.

Why I Built It

I wanted to get my hands dirty with Three.js and WebGL for the first time. A sphere is the hello world of 3D.

Technologies

JavaScriptThree.jsWebGL

Tags

3D DesignInteractive Design
hover · click

Smart Piano

Nov 2025

Quick prototype: An intelligent web-based piano that analyzes musical context and suggests harmonically appropriate next notes based on the key you're playing in.

Why I Built It

I wanted to create a tool that helps people learn music theory through play. Instead of just showing scales or chords, Smart Piano provides real-time musical guidance, making it easier to create pleasing melodies even if you're not an expert musician.

Technologies

TypeScriptReactWeb Audio APINext.js

Tags

Music Theory Algorithms
hover · click

Song Visualizer

Apr 2026

Visualize music as animated particles, waveforms, geometry, and spectrum effects. Upload an MP3 or connect a mic for real-time audio-reactive visuals with customizable color, speed, and intensity.

Why I Built It

I wanted a way to see my music, not just hear it. Building real-time audio visualization in the browser with the Web Audio API and Canvas was a satisfying way to connect the sonic and the visual.

Technologies

JavaScriptWeb Audio APICanvas APIHTMLCSS

Tags

Music Theory AlgorithmsInteractive Design
hover · click

Pitch Hero

Apr 2026

Sing or play a MIDI keyboard to match scrolling notes as they cross the target line. Uses real-time pitch detection via microphone or MIDI input to score accuracy.

Why I Built It

I wanted an interactive way to train pitch accuracy that felt more like a game than an exercise. Building the pitch detection and scrolling note renderer from scratch was a great deep-dive into the Web Audio API.

Technologies

JavaScriptWeb Audio APICanvas APIHTMLCSS

Tags

Music Theory AlgorithmsInteractive DesignReal-time
hover · click

Smart MIDI Recorder

Apr 2026

Record MIDI keyboard input with live musical context — key, scale, and harmonically suggested next notes displayed in real time to guide improvisation.

Why I Built It

I play piano and wanted a tool that would help me improvise more confidently by surfacing the "right" notes for the key I'm in, while still capturing what I was playing.

Technologies

JavaScriptWeb Audio APIHTMLCSS

Tags

Music Theory AlgorithmsInteractive DesignReal-time
hover · click

Pokemon or Technology

Visit site

Sometime in like Oct 2025

Super quick prototype: Quiz yourself on what is a Pokemon and what is a Technology.

Why I Built It

One day I observed Pokemon and Technology have similar sounding names, so I made this quiz game.

Technologies

TypeScriptReactNext.js
hover · click

New Media Class Website

Oct 2019

A college class assignment website. Each page is a separate assignment — the first exploring what kinds of media I consume, the second running a poll across the class to see what everyone else consumed.

Why I Built It

It was a class assignment, but it was also genuinely my first real website. Everyone starts somewhere.

Technologies

HTMLCSSJavaScript
hover · click

Routine

Mar 2020

An accessible online routine with dynamic generation of WCAG AAA compliant analogous color schemes.

Why I Built It

I wanted to explore algorithmic color theory while building something genuinely useful — a routine tool that generates harmonious, fully accessible palettes on the fly.

Technologies

JavaScript

Tags

Design SystemAccessibility
hover · click