Curriculum Vitae

// Skills

Web Front-End

  • Vue.js / Nuxt.js
  • Phoenix LiveView
  • Tailwind CSS
  • Bootstrap
  • Electron
  • React

Web Back-End

  • Ruby on Rails
  • Phoenix / Elixir
  • PostgreSQL
  • Redis
  • REST
  • GraphQL

DevOps

  • AWS
  • Azure
  • Packer
  • Ubuntu
  • Nginx
  • Shell Scripting

JavaScript

  • Node.js / ES6
  • WebRTC
  • WebSockets
  • WebAudio
  • Canvas

Windows

  • C# / VB.NET / .NET
  • MS SQL Server
  • Windows Forms
  • ASP.NET
  • IIS

iOS

  • Objective-C
  • Swift

// Active Work

DockYard

Senior Software Engineer

2021 – Present
  • Elixir/Phoenix
  • LiveView

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.

Remote Ham Radio

CTO and Lead Developer

2013 – Present

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.

Front-End

  • Vue.js
  • Electron
  • WebRTC
  • WebSockets
  • WebAudio
  • Canvas

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.

Back-End

  • Phoenix / Elixir
  • Ruby on Rails
  • PostgreSQL

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.

DevOps

  • EC2
  • ELB
  • S3
  • Route 53
  • CloudWatch
  • Grafana
  • Ubuntu

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

  • Ruby
  • WebSockets
  • Circuit / PCB Design

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.

Glance Networks

DevOps Consultant

2019 – Present
  • Packer
  • AWS
  • Azure
  • Python

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.

Does Not Compute

Podcast Co-Host

2018 – 2021

Recorded 150 episodes discussing various topics around software development, including news, conferences, languages, tools, learning, and the occasional off-topic tangent.

All episodes

Self-Employed

iOS Developer

2012 – Present
  • Objective-C
  • Swift
  • WebRTC
  • Elixir/Phoenix

Independently developed and supported utility applications for amateur radio operators.

SOTA Goat – WaveGuide (deprecated)

Self-Employed

Web App Consultant

2012 – Present
  • Ruby/Rails
  • Elixir/Phoenix
  • C#/.NET/WinForms

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

// Past Work

Keysight Technologies

Firmware Developer

2013 – 2014
  • C#/.NET
  • C++
  • MSSQL
  • Verilog
  • DSP

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.

NOAA

Educational Content Creator

2009
  • Adobe After Effects

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.

C4.net Internet Services

Web Developer

2004 – 2006
  • ColdFusion
  • ASP.NET
  • IIS

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.

// Appearances

ElixirConf

Lightning Talk

2017

IEEE International Geoscience and Remote Sensing Symposium (IGARSS)

Conference Talk

2012

// Education

University of Massachusetts, Amherst, MA

M.S. Electrical and Computer Engineering

2012
  • MATLAB
  • LabView
  • LaTeX
  • DSP

University of Connecticut, Storrs, CT

B.S. Computer Engineering

2010

Mathematics Minor, Summa Cum Laude, Honors Program