About Me

I am a proud father of two awesome daughters, with an amazing better-half. We live in a tiny, peaceful town in north-eastern Kentucky, which is sadly technology poor; but I do enjoy the remote commute to Optimizely, located in New York, NY.

I strive to always improve and learn new things, many times through failures. I love to code and write useful tools that are customizable through the use of inversion of control and dependency injection; also, I really enjoy learning and using all the great things happening in DevOps like continuous delivery and cloud platforms, such as Microsoft Azure and Amazon Web Services.

Outside of family and work, I enjoy playing Xbox; tinkering with software like Kodi, HDHomerun, NextPVR; and on rare, but great, occasions brewing beer with friends.


Skills

Some of my favorite tools I use to get stuff done!

C#
C#

My go-to programming language.

Nuget
Nuget

Author of many packages to help simplify development for back-end developers.

Git
Git

My go-to for version control.

Optimizely (f. Episerver)
Optimizely (f. Episerver)

Simply the best CMS I've ever used with an excellent development community. Also, I am a CMS certified developer.

Visual Studio
Visual Studio

My go-to integrated development environment (IDE), used in conjuction with Visual Studio Team Services and Github for continuous integration.

Elasticsearch
Elasticsearch

Contributor to Vulcan, an open-source elasticsearch client for Episerver.

Powershell
Powershell

Created scripts to assist in Octopus Deployment to create back-ups, manage log files. Also used in NuGet packages to help developers and designers setup local web sites such as creating IIS web sites.

HubSpot
HubSpot

Created .NET API client and HubSpot criteria for Episerver personalization.

GulpJS
GulpJS

Created tasks to compile sass, combine and minify CSS/JS files from a referenced JSON configuration file.


Code

My projects can be found on GitHub.

nuget-license

Contributor to .NET tool for analyzing NuGet package license information

Tools used: C#, Git, Visual Studio
Vulcan (Contributor)

Contributer to an Elasticsearch client that indexes Episerver CMS and Commerce content.

Tools used: Episerver, Elasticsearch, Visual Studio, C#, Git
DotNetStarter

Provides a startup engine and abstracted service locator that allows for an inversion of control (IoC) container such as DryIoc and Structuremap to be swapped at runtime using an ILocator abstraction.

Tools used: Visual Studio, C#, Git
Renderings

Provides a framework for creating view models using dependency injection, mainly focused on on Umbraco Cms to reduce code in razor views and promote content re-use with different views.

Tools used: Visual Studio, C#, Git

Professional Experience

Optimizely (formerly Episerver)
Staff Software Engineer August 2021 - Present
Technical Lead of Product Information System (PIM) Software as a service (SaaS) application and Co-lead of Configured Commerce application.
  • Modernized PIM SaaS application from large service classes to smaller focused commands, request, and event flows reducing many complexities while increasing code base maintainability.
  • Created a .NET tool which inspects compiled assembly (.DLL) code that is used to customize the commerce application. This tool provides vital information around API usages to better help design decisions and when product code changes could greatly impact customizations.
  • Advanced development processes utilizing MS Build tasks and conventions to generate validation files that were previously manually maintained.
  • Assisting in conversion of large .NET Framework solution to .NET 6+ with multi-targeting to share code in most areas which allows current platform enhancements to continue during conversion.
  • Mentor engineers from various locations, including Colombia and Vietnam, in software development architecture, best practices, and troubleshooting techniques.
  • Rearchitected integration connector between PIM and Commerce by moving code from commerce application which had only monthly release cycles to externally maintained NuGet package-based upgrades allowing customers to receive new code much faster. This included using capability flags for client/server communications eliminating complexity of synchronizing PIM SaaS upgrades with new commerce versions.
Senior Software Engineer April 2020 - August 2021
Engineer on a team focused on backend APIs, integrations, and payment gateways.
  • Implemented payment gateways with environment integration tests which streamlined connectivity issues in new customer setups.
  • Overhauled data imports for PIM application of product, category, and property data with some decreasing time by as much as 98%.
  • Utilized feature flags for work in progress streamlining development process to ship code to production without being complete. This eliminated costly git merge issues on long lived features and enabled beta testing to portion of the product customers before enabling for all users.
Manager, Expert Services Development September 2018 - April 2020
Managed 3 direct reports and mentored 10 developers/quality assurance engineers in growing skill sets and professional development. Aligned work with employee’s career goals using bi-weekly one-on-one meetings and multiple review periods. Assisted clients with Episerver CMS and commerce implementations in creating new features, performance recommendations, and best practices for on-premise and Azure setups.
  • Developed and maintains web site assessment framework that analyzes various aspects of site including static code analysis for Episerver CMS and Commerce, .NET, and NuGet best practices. This code generated simple Excel output for client and partner distribution.
  • Started documentation and knowledge sharing framework using git repositories, markdown files, as well as lunch & learn presentations, resulting in deeper developer knowledge, best practices, and enhanced communication.
Diagram (formerly WSOL)
Product Manager June 2014 - September 2018
Developed and maintained technical service offerings. Innovated internal and external products and services. Created and sustained various packages that simplified client projects.
  • Developed WSOL's Super Template, empowered content authors to create flexible page layouts without developer intervention that resulted in rich and maintainable content experiences.
  • Authored 100+ NuGet packages to promote code re-use and consistency across open-source client projects.
  • Automated deployment pipelines that publish web application changes on source control pull-requests, delivering quicker returns on client investment while greatly reducing human error in code deployment process.
  • Streamlined software development lifecycle through implementing continuous integration and delivery using Git, Visual Studio Team Services, and Octopus Deploy.
  • Contributed to Elasticsearch open-source project Vulcan, for indexing and searching Episerver CMS content and Episerver Commerce products and variants, provided clients with a cost-effective search solution.
  • Built Gulp and MVC view engine for front-end designers to quickly start design process through lo-fi, hi-fi, and final templates for client projects.
  • Developed and maintained company website using Episerver content management system (CMS) hosted in AWS, resulting in simple web site content contribution for non-technical content contributors.
Lead Developer / Development Manager May 2011 - June 2014
Managed developers with focus on code skill set, troubleshooting techniques, and communication skills to align with future senior roles and more complex projects. Participated in project discovery & planning meetings to ensure success.
  • Led development of WSOL's latest version of SuperTemplate (Dynamic Ektron CMS template to empower users to create flexible layouts from single ASP.NET web form), that utilized latest web standards including responsive web design and Ektron CMS PageBuilder.
  • Designed and developed new features and extensions to the core web product framework, allowing developers to quickly consume new features and bug fixes in client projects.
  • Directed best practice development implementations for clients, ensured success of projects that meet those needs using Episerver CMS, Episerver Commerce, or Ektron CMS.
Ektron
CMS Architect / Best Practice Engineer April 2010 - May 2011
Technical lead with development teams throughout website design and implementation. Communicated project information through functional specifications, information architecture, and implementation guides to ensure clients' requirements were captured. Provided best practice recommendations to clients in setup and implementation of Ektron CMS 400.NET.
  • Led several successful client implementations within stringent deadlines.
  • Assisted in planning and architecting projects for large complex / enterprise customers.
Morehead State University
Web Content Architect August 2005 - April 2010
Performed training courses and support for faculty, staff, students, and campus organizations to maintain content in variety of content management systems. Responsible for systems administration, ASP.NET programming, and collaborated with cross functional departments to address web site needs.
  • Developed PHP / MySQL self-service web application that allowed users to maintain single password for Active Directory and Open LDAP authentication, created and forwarded e-mail addresses, and automated key business processes with ERP integration through custom web service
  • Implemented Ektron CMS300 to migrate Morehead State University's website from 30,000+ static HTML files to database driven website with +25K content items.

Contact Me