Career Profile

I am a full-stack software architect and systems engineer, with experience in the design and implementation of mission-critical Software as a Service platforms at an enterprise level. My experience in the computer industry spans software development, database design, networking, security, and both hardware and software support.

I am fluent in Ruby and Javascript, back-end and front-end development, API design and consumption, and highly complex front-end UI code. Additionally, I have experience in database optimization with datasets around the 10 million record mark.

Experience

Lead Mechanic (Lead Backend Developer)

Sep 2016 — May 2017
RaceNote

I was the first senior Ruby developer to join the team full-time, taking ownership of a couple of projects that served as the backend infrastructure to a pair of front-end apps written in Angular.

In addition to my development duties I also spent a fair amount of time mentoring the junior backend developer, via code review and discussion of architectural principles.

RaceNote API

The original RaceNote product is a platform for note-taking and parts management for low-end Dirt and Asphalt racing teams.

I was in charge of the backend API to this platform, which interfaced with a front-end Angular application. During my tenure I made a couple major overhauls:

  • Updated project from Rails 4.2 to 5.0
  • Rewrote a large portion of ActiveRecord code to improve performance
Live Audio Product

I spent the bulk of my time working on this system. Unlike the RaceNote platform, this was a standard Rails monolith project.

The purpose of this platform was to provide an internal tool for live transcription of radio chatter from NASCAR drivers during the race.

This product is used by several race teams, a major car manufacturer, a major television network, and NASCAR.

Through a combination of human intelligence and Microsoft Cognitive Services, we categorized and transformed a stream of utterances pulled from radio and pushed them in real-time to a front-end application called RaceDay. It would show up as a live Twitter-like feed of text.

I led several major overhauls to this codebase:

  • Updated Project from Rails 4.2 to 5.0
  • Major rewrite to accommodate multiple sessions per race in our data
  • Near-total rewrite of existing ActiveRecord code to improve performance
  • Entirely new integration system for ingesting race events and adding them to our data during a race
  • Integrated Babel & Webpack to transition our frontend code to ES2015
  • Introduced VueJS to build more advanced frontend UI
  • Rewrote our legacy integration to Oxford Speech beta to use Microsoft's Bing Speech API
  • Integration piece between our system and Payable.com to automate accounting
System Administration & DevOps

I shared system administration duties with the Front-End Lead and CTO.

Our infrastructure was hosted on AWS using custom AMIs built with Packer and deployed via Terraform configuration. We used a combination of ELB, Auto-Scaling Groups, and deployment configuration stored in S3 to allow our infrastucture to scale automatically to meet demand or recover from errors.

In addition to basic maintenance, I made a few modest improvements to our cloud system:

  • Rebuilt AMIs to support multiple Ruby versions
  • Deployed an update to Ruby 2.3
  • Cleanup and refactoring of bootstrap scripts
  • Wrote and implemented an automated backup routine for our Databases
  • Rewrote our Unicorn configuration to support zero-downtime deployment

Lead Architect

Apr 2009 — Aug 2016
Lyconic

As the lead engineer of a small startup, I had to wear many hats due to our limited budget for personnel. Some of the more important aspects of my role included:

Software Development

The company started with an application suite called Inteliguide and Patrolguide, originally written in ASP.Net by my business partner to meet the needs of a local security business. When we needed to start supporting a growing franchise network, we needed to rebuild the system to handle a much larger set of users across many locations around the country.

I led a small team of developers in a feature-complete rewrite of our ASP.Net application on Ruby on Rails, designed to be horizontally scalable to meet future growth. This included an API service built on Sinatra, and a proprietary single-sign-on solution that worked across the two domains.

We completely redesigned the front-end UI from scratch on Backbone.js and jQuery, as well as a lot of custom JavaScript, to provide advanced ajax features that made our application easier to use. Some of the core features on the platform included:

  • Advanced Shift Scheduling via an interactive calendar
  • Time and attendance with geofencing
  • Shift reports for Clients to access via the web or email
  • Geolocation of all addresses in the system
  • Intelligent routing of vehicles in the field based on location, visits, and unpredictability
  • An internal messaging system between users that also supported email
  • Automated reminders for workers who were scheduled for shifts
  • Work Orders to generate Shifts & Tours in the system to facilitate long-term contracts
  • An attachment upload system to add additional photos or document data to records
  • A custom role-based security system
System Administration & DevOps

I designed and implemented the cloud-based server infrastructure that hosted the platform online, and well as the scripts that allowed us to deploy updates quickly and easily.

I chose Ubuntu Server as our OS platform, to host the services using a combination of Nginx for HTTP, SSL-termination, and reverse-proxy, Unicorn as application server to run the Ruby code and provide zero-downtime deployment, Redis as a caching layer and NoSQL key-value store, and PostgreSQL as the SQL backend.

In addition to maintaining our cloud servers, I also set up monitoring on our servers and applications via NewRelic and Airbrake to alert us when there were problems. I serve as the on-call technical contact for the platform 24/7.

We originally launched on Rackspace Cloud when we were servicing a single client. We later retooled the platform as a multitenant, software-as-a-service product on AWS built on EC2, RDS, and S3.

Software Consultant

May 2008 — Apr 2009
Nebraska Book Company

ASP.Net application development in VB.Net and C# for an internal company web portal.

Independant Contractor

Feb 2008 — Mar 2009
Signal 88 Security Group

Developed site redesign for company website

Developed online application for users to sign up for security-related classes.

Skills & Proficiency

Ruby on Rails

Sinatra

Javascript

Typescript

Backbone.js

React

Vue.js

Angular 2

SQL

Redis

HTTP & Nginx

HTML5

CSS

Rackspace Cloud

AWS

Linux Administration

Git

Projects

Here are some software projects I've created or contributed to publically.

Payable API Client - Ruby API client for Payable.com
Multiplicity - Simple multitenancy for Rack-based applications
activerecord-safe_initialize - Safely initialize an ActiveRecord attribute with respect to missing columns
Objectify - A JavaScript utility for converting HTML forms into nested JS objects.
cfcmd - A command-line interface for managing Rackspace CloudFiles based on the interface of s3cmd
jQuery.rest - REST helpers for jQuery to ease AJAX interaction with Rails
amplify-rubygem - I maintain the Rubygem package for the AmplifyJS library.