The majority of my professional experience lies in both frontend + backend web development work, with occasional forays into desktop + CLI applications.
Core webdev tools these days are Vite, Vue, Nuxt, Directus, Postgres, AWS, GCP, and a whole smattering of supporting tools such as Figma, Jira, Confluence, Redmine and Notion.
I also spend a fair amount of time working with Unreal Engine, mostly in the spaces of Web ↔ UE communication via Pixel Streaming, UMG interface development, and general tools development. In my personal time with game engines: I enjoy designing and integrating audio assets + systems via WWise or fmod, experimenting with silly Godot projects, and generally tinkering with editor tooling + extensions.
Most recently I have spent my days working with Duality Robotics, where I act as Lead Frontend Developer. I focus mostly on writing product frontend code, collaborating with design + product departments, refining specifications, and building an extensive internal and user-facing documentation platform.
I also assist in UI development (via UMG / Slate) within our product Falcon - an enterprise simulation tool built atop Unreal Engine 5. Alongside this, my time is also spent on our Pixel Streaming infrastructure which allows UE binaries to be deeply integrated into the web-native areas of Duality's product offering.
Want to get in touch? You can email me, or send me a DM on Twitter. I would love to hear from you!
sound + audio projects
After discovering the wonderful Blipsounds community, I volunteered to help rebuild their community-sourced sound library using modern web technology. This led to the creation of a new Vue application that serves community-submitted sounds for royalty-free use. This application is hosted on Netlify and featured on the Blipsounds website through some clever iframe
usage.
Many thanks to Blipsounds founder Ryan Stunkel and the original library creator Aaron Cendan for granting me the keys to the kingdom and supporting this revitalized web interface!
marketing + brand
Project statically built using Vue + Nuxt, with heavy internationalization features. Contentful is used for all data modeling & localized content management, and is accessed at build time to hydrate Vuex stores & Nuxt route generation.
The project runs atop Netlify as a collection of static files, but also takes advantage of Netlify Functions for serverless execution, as well as Netlify redirects for legacy traffic management.
Rails marketing website, custom ES6 component harness, ecommerce integration with Vin65.
A large scale Rails engine used in ~30 marketing sites. Built with reusability in mind, the Carmel Property Engine can be injected into a Rails project and configured as needed through YAML, JS, and SCSS overrides.
Various external vendors are brought together via custom APIs to let potential tenants explore neighborhood maps, unit availability, and building amenities.
open source + plugins
A Nuxt.js module for logging SSR errors + client-side Vue errors using winston. Outputs logs using any compatible winston transport, and defaults to using the JSON Lines format for quick ingestion into live tailing services.
lil' bits
Generative art / data-viz project to display GPS walking routes from Apple Watch / normalized Apple HealthKit data.
Source available on GitHub.
A fun bit of Vue to showcase animations, Comic Sans, and string processing. Developed as an educational tool for folks new to Vue.
Source available on GitHub.