I’m a software engineer with over a decade of experience in full-stack design and development. I exhibit strong skills in software architecture, data modeling, API design, and object-oriented and functional programming. I’m passionate about the latest technologies, languages, frameworks and databases. I’m a practiced problem solver who works well on a team or as an individual. When I’m not doing all of that, I enjoy spending time with my family, gaming, and visiting baseball fields and hockey arenas across the country.
Data Stores: PostgreSQL, Redis, MongoDB
Libraries: Angular, React/Redux, Backbone.js/Marionette.js, Express
Principal UI Engineer - November 2016 to Current
- Architected and developed the web-based management and monitoring interface. The front-end is built on Angular and uses webpack to produce bundles.
- Mentored other engineers by participating in detailed code reviews, software engineering book clubs, and pair programming sessions.
- Worked closely with the API and UX teams to ensure alignment during integration phases.
- Introduced and maintained a specification to provide conformity across all APIs.
- Provided guidance for engineers while designing APIs and their resource models with regards to specification compliance.
Power Over Time
Senior Software Engineer - December 2015 to November 2016
- Grid-Interactive Demand Response Solution
- Designed and developed a web-based network configuration and diagnostics utility hosted on devices in the field. The front-end is written with Marionette.js and the API is written in Haskell.
- Generated embedded Linux images for our devices in the field based on Raspbian. This also included scripts written in Bash to ensure the network and other services self-healed after certain failures.
Owner/Principal - January 2006 to Present
- Mobile Power and Environmental Monitoring Service
- Architected and developed a real-time monitoring service that visualizes power and environmental readings from mobile units (i.e. trailers).
- Created a fork of the async library to support native Promises instead of Node.js style callbacks.
- Nursing Facility Referral Application
- Developed an online referral application that allows healthcare providers to find assistance for consumers.
- Developed a service that allows users to search for reserved words for many platforms and versions.
- Involved in other aspects of the project including the website and documentation.
- Developed a reusable web-based map viewer which included functionality of panning, zooming and data lookups.
- Developed a mashup service that executes a snippet of code from gist.github.com on ideone.com and displays the results.
Software Architect/IT Architect - March 2014 to December 2015
- Secure Cloud Call Center Solution
- Architected an event data processing stream that aggregates and reduces live event data from the call center server and stores into a database for easier reporting and live analytics. This solution utilized Node.js Streams from consumption through RabbitMQ and Redis while workers streamed event data and persisted into a Postgres database.
- Designed a “RESTful” entity API for the call center solution that would allow a standard way to manage entities securely from outside clients. This API followed the JSON API specification while keeping true to other RESTful principles.
- Developed a web-based portal that tied in different call center servers into a single management interface. The portal front-end was written using Marionette.js.
- DevOps & Data Center Management
- Implemented an automation system to continuously deploy and manage applications and the IT infrastructure. The automation infrastructure was implemented using tools like Ansible, Packer, and Vagrant.
- Designed and implemented a fully redundant network stack at data centers in multiple locations. Hardware for the stack included Juniper switches and Fortigate firewalls.
- Worked closely with IT partners to implement a fully virtualized environment using VMware. This work included the implementation of network stack upgrades, new servers and the migration of local server data to a network storage solution.
- Set up an issue tracking workflow using Atlassian tools like Jira and Jira Service Desk. This allowed our internal teams and customers to better report issues and features back to our development team.
- Moved source control from SVN to git while setting up automated builds and deployments via Jenkins for flagship products.
Senior Software Engineer - April 2013 to January 2014
- Data Center Power and Environmental Monitoring
- Introduced automated builds via Jenkins that would create Debian packages and pre-built virtual machines for distribution.
- Migrated source control from Subversion to git and introduced a git flow inspired branching strategy.
- Architected an entity model to connect the physical and electrical components that make up a data center.
Senior Software Engineer - October 2010 to April 2013
- Video Delivery Content Management System
- Oversaw the front and back end design and development for the product.
- Designed and developed a portal framework (e.g. dashboards, widgets) which powered the client experience.
- Architected an entity framework to replace a strict model with a flexible model using MySQL and MongoDB.
- Designed, developed and documented RESTful API’s for the portal and entity frameworks implemented in the product.
Senior Creative Tech - January 2010 to October 2010
- Regularly met with account supervisors and user experience designers for estimating projects.
- Assisted project managers by allocating proper resources based on talent and availability.
- Mentored other developers in our team with best practices for completion of their tasks.
- Worked closely with user experience designers and interactive designers to gather requirements for interface design and behavior.
- Developed progressively-enhanced interactive applications and sites for some of space150's larger clients.
- Provided insight on accessibility guidelines and exercised those skills to develop a fully accessible interactive statement viewer.
- Designed and developed custom components such as a data-aware drag & drop controls, skinnable select and checkbox controls, and a widget system for an intranet dashboard.
Lead Web Developer - October 2007 to January 2010
- Developed and tested the website for the company and external product websites.
- Designed sites to be CDN-fronted, saving the company in hosting costs.
- Expanded the appeal of the sites by internationalizing (i18n) the content, supporting English and Japanese.
- Enabled website content to be controlled by Wordpress. This allowed others to update press releases and upcoming events while still allowing internationalized content to be updated.
- Designed, developed and tested a web application which allowed the company to automatically provision resources (e.g. encoders) for events they would deliver. This resulted in a decrease for the amount of employees needed to manage an event by 2.
- Implemented a RESTful API for external resource integration into the Roku device and other customer websites.
- Worked closely with the professional services group to ensure the product was easily detected and installed before viewing an event. This involved writing scripts and documentation in many languages.
- Developed a mini-site for a customer that allowed them to hand off all video delivery, detection, installation and user registration for events they carried. This site was also integrated into the events management system.
- Designed and developed a Roku channel using the Roku SDK that allowed users to view content Swarmcast delivered.
- The channel was also linked up to our events management system allowing users to view live and VOD events.
Senior Programmer Analyst - August 2004 to October 2007
- Legacy System Integration
- Designed, developed and tested reusable extract, transform and load (ETL) applications to replace SQL Server DTS packages. Applications allowed more thorough error handling, flexibility, notification and performance while allowing for new file layouts to be added in minutes versus hours.
- Created a web service that enabled our legacy systems to send and receive data directly with the mainframe and/or SQL database, helping the company move off of the X.25 protocol.
- Created a console application to allow legacy systems to communicate with the web service by command line, enabling minimal legacy code changes and reducing bugs by using reusable client code.
- Developed the client, server and SQL (statements, stored procedures) for the core inventory module.
- Gathered and documented requirements for developing inventory, purchase order and invoicing modules.
- Worked closely with QA in troubleshooting/fixing maintenance issues.
- Wrote ad-hoc reports for printing documents such as invoices, orders, packing slips, inventory checklists and proposals.
- Provided insight for the configuration of development and QA virtual environments.
Web/Software Developer - May 2001 to June 2004
- Assisted in the initial design and development of a web-based remote video security solution.
- Developed the web interface for the division's core product which included on-demand camera control, report viewing and administration of the system.
- Performed relational database design and normalization of schemas.
- Worked closely with beta customers to ensure their requirements were met.
- Commercial Software Products
- Designed and developed a web-based version of the organization's flagship product.
- Designed and developed a PocketPC-based customer information system.
- Created a web-based work order system which significantly improved tracking of customer issues and resolutions.
- Authored a web-based timesheet program compatible with QuickBooks that improved the reliability and speed of personnel billing, reporting and monthly close-out.