Things I've built

Projects

Most of what I know on the infrastructure side, I learned by building it myself. Here's the homelab, the services I run on it, and a bit of academic work.

01

Homelab & infrastructure

Virtualization Host

Proxmox home server

Repurposed a Dell Alienware 17 R3 into a Proxmox VE virtualization host running an Ubuntu Server VM with a Dockerized service stack. It's my hands-on environment for everything below: spinning up VMs, managing containers, breaking things, and fixing them.

Proxmox VEUbuntu ServerDockerPortainerLinux
Networking

Network services on GL.iNet routers

Configured AdGuard Home for network-wide DNS filtering, Cloudflare Tunnel for secure remote access without opening ports, and Wake-on-LAN to bring machines up on demand.

AdGuard HomeCloudflare TunnelWake-on-LANDNS
Remote Access

Secure mesh networking

A Tailscale (WireGuard) mesh VPN ties my devices together with secure remote access from anywhere, layered with Cloudflare tunnels for public-facing services.

TailscaleWireGuardVPN
02

Self-hosted services

Media

Jellyfin

A self-hosted media streaming server: my own private, ad-free alternative to commercial streaming, served across the home network.

DockerMedia server
Photos

Immich

A self-hosted photo and video library with automatic backup from my devices, a privately owned replacement for cloud photo services.

DockerSelf-hosted backup
Local AI

Ollama

Runs large language models locally on my own hardware: private, offline AI with no data leaving the network.

OllamaLocal LLM
Search

SearXNG

A self-hosted, privacy-respecting metasearch engine that aggregates results without tracking.

SearXNGPrivacy
03

This website

Meta

The site you're reading right now

This portfolio runs on my GL.iNet Flint 3 router (OpenWrt). A lightweight lighttpd web server serves the files straight off a USB drive, and the site reaches the internet through the same Cloudflare Tunnel that fronts my other self-hosted services. No open ports, no home IP exposed, automatic HTTPS. If you can read this, the stack is working.

lighttpdOpenWrtCloudflare TunnelHTML/CSS
04

Human-Computer Interaction

A graduate certificate from IU's Luddy School. This work spans product design, interaction design, data visualization, and formal usability research, and it shapes how I think about the people on the other end of a system.

Prototyping (INFO-H 564)

PaceView AR Sunglasses

An end-to-end product design for AR running glasses that project pace, heart rate, and distance into a runner's sightline, so athletes never have to glance down at a watch mid-stride. I ran the full process: divergent ideation, user testing with collegiate runners, and three prototypes (a lo-fi cardboard model, an interactive Figma companion app, and an AI-assisted concept video), reworking the heads-up layout based on what the testing surfaced.

User researchFigmaPrototypingUsability testingIoT + AR concept

View the Figma prototype →  ·  Watch the concept video →

Interaction Design Practice (INFO-H 541)

Tutortrack: a language tutoring app

A user-centered design for a language-tutoring app built to keep learners motivated. I worked the full interaction-design process, from problem definition and ideation to interactive prototyping and usability testing, refining flows around progress tracking, tutor feedback, and guided reflection.

UX designFigmaPrototypingUsability testing

View the prototype →  ·  Watch the demo →  ·  Read the case study →

Visualization Design (INFO-H 517)

Top 500 Games: an interactive dashboard

A multi-view data-visualization app built in Python with Plotly Dash, analyzing a "Top 500 Games of All Time" dataset. Interactive tabs break down distribution by genre and platform and the relationship between ratings and playtime, with hover detail and an accessibility-minded color palette.

PythonPlotly DashInteractive chartsData viz

Watch the walkthrough →

Interaction Design Methods (INFO-H 543)

Usability study: Indiana Disability Resource Finder

A formal usability evaluation of a live state resource directory. I designed five task-based scenarios, tested four participants, and scored every issue on structured difficulty and severity scales, then wrote a prioritized findings report covering navigation, search behavior, button visibility, and mobile gaps, with a concrete recommendation for each.

Usability testingHeuristic evaluationSeverity scoringFindings report

Read the summary →

05

Game design & development

A minor from the Luddy School: hands-on work across the full toolchain, from engines and 3D to a database-backed web app.

Unity · team of 4

Wildfire Rescue

A low-poly Unity game where you pilot a helicopter and drop a rope to rescue animals from a spreading wildfire, racing a timer to carry them (up to four at a time) to a safety point across two levels. Built from scratch by a four-person team coordinating through GitHub, Trello, and Discord; I owned UI, sound effects, and level design. Its signature twist: the original build ran on a custom alternate controller, a record mounted under the mouse, so physically spinning the record raised and lowered the rescue rope.

UnityLevel designUI / SFXGit + TrelloCustom controller

Watch the gameplay →

Unreal Engine (NEWM-N 230)

Environment fly-through

A designed 3D environment in Unreal Engine, presented as a cinematic camera fly-through.

Unreal EngineEnvironment design

Watch the fly-through →

PHP + MySQL (INFO-I 210)

PHP Online Phonestore

A database-driven storefront for browsing smartphones, built on PHP and MySQL: a catalog of devices with manufacturer, pricing, and specs served from a relational database.

PHPMySQLRelational data

Watch the demo →

Autodesk Maya (NEWM-N 243)

3D modeling & animation

A sequence of modeling and animation projects in Autodesk Maya, working from primitive modeling up through textured, animated scenes.

Maya3D modelingAnimation

Watch the reel →