Career Profile

I am a full-stack developer with skills in front- and back-end development, DevOps, cloud computing, network administration and infrastructure monitoring and configuration. Owning and operating companies for 14 years, leading small teams on a variety of projects, I often found myself exposed to the entire stack in a variety of roles. I am motivated by autonomy and a clear sense of direction and I can say Kubernetes ten times in 4 seconds.

Most of all, I'm tenacious and love solving problems.

Experiences

Senior Full Stack Engineer

2018 - Present
Revel Health

At Revel, I worked on everything from Java services to DevOps and server infrastructure, while focusing on frontend development. I led small teams developing Angular and Node applications and facilitated company-wide workflow changes for increased velocity.

Technologies
  • Angular 6 + Redux.
  • Used Nx (Nrwl Extensions for Angular) to consolidate related UIs into a single project to maximize code reuse, testing and efficiency.
  • Coordinated with our overseas frontend developers to make sure everyone was productive and happy within the new structure.
  • Spearheaded the change from manual deployments to continuous delivery and wrote the scripts to handle all UI deployments.
  • Built a real-time service with Node + Express, Pusher and RabbitMQ, to allow any microservice to dispatch a real-time message to any UI.
  • Carried out a code audit within a HIPPA / HITRUST environment and suggested changes to assure compliance.
  • Harnessed enterprise integration patterns such as handling inter-domain communication with RabbitMQ and SQS.
  • Worked with Auth0 to provide hosted login, MFA and user management.
  • Composed custom Auth0 rules for IP whitelisting, MFA and branding for clients across four different tenants.
  • Enhanced various existing services written in Kotlin (Spring).
  • Dockerized microservices and constructed pipelines for deploying to AWS (Docker Swarm, S3, Cloudfront).
  • Built a reporting and error tracking pipeline with Sentry + Slack + PagerDuty.
  • Led an initiative to improve flow between development and QA by bringing integration + e2e tests into the monorepo.
  • Consolidated all email development into a monorepo (kind of my thing) and provided a framework for maximum reuse of existing markup and styles.

Senior Frontend Engineer

March 2018 - September 2018
Livefront

At Livefront, I built a frontend application for the startup side of a giant in the education industry. As the sole frontend developer, part of my responsibilities included writing comprehensive tests and documentation for every part of the application. Good architecture, a complete set of test suites and thorough documentation assures the application is maintainable by anyone and working as intended.

Technologies
  • Angular 6 + Redux.
  • Used Nx (Nrwl Extensions for Angular) in anticipation of rolling out a mobile and/or desktop version of the same application.
  • Integrated with a Rails backend service and MySql databases.
  • Led weekly demos of the progress on the UI.
  • Coordinated with the client's designers and developers to implement their UI/UX standards.
  • Worked with various third-party libraries for streaming video, cue points and timeline events.
  • Developed strategies to manage local state within an iframe running in a separate application.
  • Delivered the first phase of the UI on time and under budget.

Full Stack Developer

2015 - Present
National Machine

At National Machine, I worked with clients to build a variety of single-page applications. I utilized javascript front-end frameworks to create high-quality user experiences. I built REST APIs and microservices for a variety of purposes from on-boarding new hires to content management and email marketing.

Technologies
  • Angular 5 + NGRX with hot module replacement and ahead-of-time compilation.
  • Worked with observables and RxJS to solve state management issues.
  • Used, and loved, the Redux pattern using NGRX entities to reduce boilerplate.
  • Incorporated many UI/CSS frameworks such as Kendo, Bulma and Bootstrap into our projects.
  • Converted applications from Angular 1 to Angular 5 and from Javascript to Typescript.
  • Built APIs with complex domain models in Laravel + MySQL. Implemented multiple third-party services such as Stripe, Mailchimp and custom OAuth servers.
  • Built performant and light-weight APIs with Node + Express + PostgresSQL.
  • Maintained API uptime using Zabbix Web Scenarios, Runscope and other monitoring technologies.
  • Designed relational databases for scalability, data consistency and long-term stability.
  • Flirted with NoSQL databases but never really found love. I haven't given up hope, however.
  • Configured multi-tiered API tests and error reporting to ensure that clients got the responses they expected and, if they didn't, that we reported the error immediately and provided proactive support.

Systems Administrator

2015 - Present
National Machine

At National Machine, I helped small and mid-sized businesses provision servers, keep their data secure and build out their physical networks. I configured monitoring and fault-tolerance for our entire server fleet across three locations, eight hosts, 50 virtual machines and a slew of containers. I built and configured our entire private network inside the datacenter including the edge router, redundant switches, routing, NAT and firewalls.

Technologies
  • Worked with VMWare ESXi to provision virtual machines.
  • Built a Proxmox cluster on top of Ceph distributed block-level storage.
  • Implemented VRRP to ensure graceful failover in the event of a router failure.
  • Configured the entire server fleet using Puppet and the best-practice roles and profiles method.
  • Ran services in Docker when that was more appropriate than an entire VM.
  • Monitored each server at three levels: guest OS, hypervisor and iDRAC / IPMI using Zabbix, the Zabbix agent and SNMP.
  • Deployed multiple applications using Jenkins Pipelines, CircleCI and Gitlab.
  • Deployed and monitored NodeJS applications using Jenkins and pm2.
  • Implemented Pagerduty with various escalation schedules to notify on-call staff of any issues with our fleet or client applications.
  • Integrated all of our platforms into Slack for a unified reporting feed.
  • Maintained a Graylog server to which all syslogs, Nginx and application logs were exported. Used streams and its advanced search functionality to debug systems and software.
  • Set up Grafana dashboards to provide engineers with an at-a-glance overview of how our systems were running.
  • Utilized BIND to provide split-horizon DNS for our three linked physical locations, enabling access to private services where some parts of the zone still needed to resolve externally.
  • Maintained a suite of Veeam backup, replication and backup copy jobs to make sure we had two on-site and one off-site copy of everything.

Full Stack Developer

2016 - 2017
Plotly, Inc

At Plotly, I was responsible for building a few different front- and back-end auxiliary applications to help support their main SaaS product. I worked on an event management platform (which eventually became Symposia), a support platform and its associated website, as well as their event series, PLOTCON.

Technologies
  • Partnered with Plotly sales, marketing and engineering to gather requirements for their Support and Event Management platforms.
  • Built three single page applications in Angular utilizing component-based front-end design and services for managing state.
  • Built a support payment gateway using Laravel and integrated Plotly's existing user database.
  • Implemented custom OAuth with Plotly core to make sure there was always only one source of truth.
  • Provided pro-active support.

Projects

I've mostly been self-employed, so these projects are also largely my work.

Symposia - A full-featured event and content management system. I built a majority of Symposia over 18 months. Symposia is made up of three javascript applications and one API that powers them all. The API is built on top of Laravel 5.5, the control panel was built using Angular 5 + Redux and the auxiliary applications are Angular 1.6. In addition to development, I was also responsible for networking administration, server provisioning and management, our CI/CD pipeline, Git and monitoring and security systems. It is my largest project to date and involved every piece of the development-to-delivery pipeline.
Homelab - I began building a homelab in January 2016 in order to learn networking, virtual computing, containerization, configuration management, DNS and more. What started as a single server grew into a fleet of hosts and 100+ virtual machines spread across three physical locations, managed by Puppet. One of my favorite things is simulating a business use-case at home to learn campus networking, advanced DNS configurations and how to keep things online.
For the Love of Vinyl - My wife, Katy, and I started a podcast which we live-streamed over the internet. Each episode featured an in-studio guest musician and a selection of their favorite tracks played on vinyl. I was lead engineer and host, managing eight simultaneous inputs, mic placement, compression and EQ. We ran the show for almost 8 months until National Machine and Symposia required more energy and time. Working with talented musicians in an intimate, tiny-desk environment was an incredible experience and we can't wait to get back to it someday.