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#
My go-to programming language.
Nuget
Author of many packages to help simplify development for back-end developers.
Git
My go-to for version control.
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
My go-to integrated development environment (IDE), used in conjuction with Visual Studio Team Services and Github for continuous integration.
Elasticsearch
Contributor to Vulcan, an open-source elasticsearch client for Episerver.
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
Created .NET API client and HubSpot criteria for Episerver personalization.
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.
Contributor to .NET tool for analyzing NuGet package license information
Contributer to an Elasticsearch client that indexes Episerver CMS and Commerce content.
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.
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.
Professional Experience
Optimizely (formerly Episerver)
- 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.
- 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.
- 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)
- 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.
- 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
- Led several successful client implementations within stringent deadlines.
- Assisted in planning and architecting projects for large complex / enterprise customers.
Morehead State University
- 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.