Supported DockYard client work, primarily on LiveView projects. Also provided mentoring to coworkers, contributed to open-source DockYard projects, and assisted with internal R&D projects.
As co-founder and CTO of RemoteHamRadio, independently developed, maintained, and supported the full-stack web application, associated hardware, and services.
The groundbreaking service for amateur radio operators provides voice communication and complex remote hardware control in a real-time browser dashboard, providing instant access to dozens of physical radio installations across the globe. In addition to product improvements, fixes, and deployments, I supported the day-to-day technical challenges, wrote documentation, and provided customer support.
The primary user interface is a Vue.js SPA that communicates with the back-end via WebSockets and RESTful APIs. WebRTC establishes voice and data channels to the remote locations, utilizing STUN/TURN servers to traverse NATs.
An Electron app for Windows and macOS provides customers with the ability to connect local software and hardware into the system.
The mesh network of horizontally-scalable, hot-reloadable Phoenix servers routes WebSocket traffic between the users and the remote sites. Ruby on Rails provides the administrative interface for user account management. And it's all backed by PostgreSQL.
Web servers run on Ubuntu on AWS EC2 instances, load-balanced for performance and redundancy. Deployments are handled by Cloud66 and shell scripts, and metrics are piped to AWS CloudWatch and displayed in Grafana.
Hardware control is implemented in a Ruby (non-Rails) application server, controlling dozens of different devices via serial ports, HTTP, TCP, and UDP.
Custom hardware was designed from the ground-up for use in-house and by customers.
Assisted the Glance DevOps team with the automation of building, deploying, and scaling of Glance server instances on AWS and Azure.
The legacy deployment strategy relied on hand-run shell scripts and manual version rollouts across multiple AWS regions. Packer was introduced into the build process, resulting in one-click builds of server images.
I worked with the Glance development team to create a RESTful API interface into their infrastructure, then used that API to build out autoscaling logic to automatically scale Glance server instances to meet load.
Recorded 150 episodes discussing various topics around software development, including news, conferences, languages, tools, learning, and the occasional off-topic tangent.
Independently developed and supported utility applications for amateur radio operators.
SOTA Goat – WaveGuide (deprecated)
Developed and supported various applications for businesses, municipalities, and individuals.
Essign (2006 – 2020) – online homework assignments for K-12 teachers and students
ThermaCalc (2010 – Present) – modelling vaporizer performance for customers and sales
EquipNV (2016 – Present) – municipality inventory tracking
Developed software for electronic test equipment running on Windows.
On the Physics team for X-Series signal analyzers, implemented feature requests and bug fixes, interfaced with USB peripherals, and developed all-new hardware-acclerated measurements in FPGAs.
Also provided on-site technical support to international customers to increase throughput of IC manufacturing with custom solutions to reduce testing time.
Created Cooking Up a Storm, an 8-minute educational video for NOAA's Science On a Sphere program, as part of NOAA's Hollings undergraduate summer internship.
Developed web applications for local businesses and for internal use as a summer job.
This was a Windows shop with client sites primarily done in ColdFusion, hosted on IIS and backed by MSSQL Server. Most internal hosting tools were implemented in ASP.NET.
Featured in Makers: All Kinds of People Making Amazing Things In Garages, Basements, and Backyards, by Bob Parks.
Mathematics Minor, Summa Cum Laude, Honors Program