Full stack engineer building websites and tools that look good, work well, and make a difference. Frequent open source contributor and real-time audiovisual hobbyist.
About
I've worked with TypeScript, React, and Node for my entire career. I obsess over UI, UX, and accessibility details, and I know what works and what doesn't. I'm a Tailwind and desktop-first design loyalist.
Python, Go, and Rust are my favorite back end languages for APIs and services, and I use Postgres whenever I can.
Skills
Beliefs
A small list of things I vehemently believe in and love to argue about.
- Desktop-first design is more logical than mobile-first design.
- Plain CSS detached from page structure is a footgun in most cases.
- Every developer should be an expert with regular expressions.
Projects
TD-OBSWebSocket
2023 - PresentA TouchDesigner component that creates a two-way WebSocket connection with OBS.
- TouchDesigner
- Python
- WebSocket
Dealbot
2021 - PresentA Discord bot for easy lookup of PC game deals via IsThereAnyDeal. Currently receives over 10,000 monthly interactions.
- TypeScript
- React
- Next.js
- PostgreSQL
- Supabase
- Vercel
- Railway
eslint-plugin-suitescript
2020 - PresentAn ESLint plugin for linting SuiteScript v1/2 API code. 1200+ weekly downloads.
- JavaScript
- Node.js
- ESLint
- AST
eslint-plugin-amd
2026An ESLint plugin for linting AMD module syntax.
- TypeScript
- Node.js
- ESLint
- AST
win-ctx
2025A Rust library for managing Windows context menu entries.
- Rust
- Windows API
Super Snake 2.0
2024A recreation of the classic Snake arcade game with a wider range of difficulty modifiers.
- TypeScript
- React
- WebAssembly
- Rust
- WebGPU
Under construction
Spotify Playlist Sync
2024Sync Spotify playlists across accounts without publicly sharing or collaborating.
- TypeScript
- React
- Next.js
- Tailwind
- React Query
- Zustand
- Vercel
TD-Packager
2023A TouchDesigner component that properly packages other components for release.
- TouchDesigner
- Python
acdvs.dev
2023This website.
- TypeScript
- React
- Next.js
- Tailwind
- Vercel
Emote Screensaver
2022A livestream overlay generator that displays a random emote from a channel in bouncing DVD screensaver style.
- TypeScript
- React
- Next.js
- SCSS
- Bootstrap
- Vercel
GroupMe Analyzer
2018A tool for finding your group's top favorited messages with context in the past month.
- JavaScript
- React
- Node.js
Update in progress
Super Snake
2014A recreation of the classic Snake arcade game with a wide range of difficulty modifiers.
- JavaScript
- HTML5 Canvas