About Me


Full-stack web and mobile developer experienced in Ruby on Rails, Swift, JavaScript, React and Redux. I discovered software development when I created my very first application to calculate investments for my Real Estate sales team. My dedication to sports and science has honed my instincts for the collaborative skills and strategic thinking needed to create competitive products and build a clean and efficient code.


360 Music Television

24/7 music video stream on Roku.

Backend runs primarily Node.js and Nginx, currently migrating from Php and Apache. Automatic scheduling and playback application runs 24/7 originally written in VB.net migrating to C# (in progress). Runs in three modes.
  • General - runs music videos according to a programming schedule.
  • Voting - Displays three options for viewers to collectively vote on. The options with the most votes plays next, giving views three new options to vote from.
  • Requests - Plays requests submitted on 360tv.net.
Modes can run exclusively, or complementary to each other, both manually or automatically. By post code (US & Canada), individual users are notified when a currently playing artist is playing in their area, as well as full concert listings (Pollstar API) and weather forecasts (Openweather API). Likes, votes, requests, viewing activity and broadcast activity are logged.

A single page remote control app created in React allows for full control of the channel by other users using socket connection.

Project Site (www.360tv.net)
Remote Control (www.360tv.net)
(Password Protected)
Add channel to your Roku (my.roku.com/add/360beta)
(Must allow for install of private channel.)
*Temporary conditions make it difficult to run this 24/7. If you'd like to check this out and it's not running, contact me and I can make sure it's operating.

Market Manager

Stock market and cryptocurrency managment, and data aggregator
(In progress)
  • Node.js w/ Express backend on Digital Ocean: Uses TD Ameritrade, Alpaca, Coinbase using socket connections and RESTful API calls. Data receieved is stored in MySQL and relayed to the client when connected.
  • React frontend connects securely to Node server to display and chart aggregate data from watchlists.
An options chain 3D model in Three.js is also in progress. Sets of data points will be used to train models in TensorFlow as data is collected. The goal is to recognize certain chart patterns.

Market Manager (password protected demo)

Cannot be publicly available due to APIs terms of service.