Hey, I'm Dave!

Fullstack Engineer

About Me

I am a fullstack engineer, and leader that combines a strong technical background with a passion for creating enjoyable user experiences. I carry 7+ years of professional experience in the design, implementation, deployment and maintainence of complex software systems from front to back.

Pet Projects

In addition to my day job, I also enjoy experimenting with technology in areas that interest me. As an amateur musician I find audio technology to be a particularly fun space to play around in.

logo for vst.js


vst.js was an experiment in enabling NodeJS applications to interact with native audio plugin formats such as VST, VST3 and AudioUnit. This began as a reseach project since I wasn't very familiar with C++ or audio plugin SDKs initially but I was able to stand up a working prototype.

logo for node-audio


The goal of node-audio was to create an api compatable version of the Web Audio API as a NodeJS package that could be extended with additional AudioNode implemented in C++. The library contains an example of one such node called the "PluginNode" that makes use of vst-js to allow developers to connect audio plugins to an audio graph.



LibertyJSOct 2018

Embracing the Native of React Native

It can be intimidating to crack open the “ios” and “android” folders of a React Native project. In this talk I offered a guided tour of how React Native works behind the scenes. I also showed how this knowledge can help you make better design decisions and expose your own native UI components.


Audio Developer ConferenceNov 2017

Developing audio applications with JavaScript

This talk was a presentation on my work with vst.js and node-audio. I demoed a simplistic Electron-based DAW application that used node-audio and the PluginNode powered by vst.js to allow for multitrack mixing with audio plugin support. I also offered a deeper look at at vst.js and node-audio to explain how it all worked under the hood.


Philly Tech WeekMay 2017

Getting the most out of JavaScript (without using JavaScript)

The NodeJS and JavaScript communities offer several ways of interfacing with native code and each approach is best suited to certain use cases. This talk offered an introduction to two approaches, WebAssembly and native C/C++ NodeJS addons.