I build applications, delivery tools, and infrastructure in private & public clouds, and on-premises.
A whole-person systems administrator with web development fundamentals, branching into full-stack engineering and automation. When I’m not finding ways to automate myself out of a job, I’m building tools to help others do the same. With a love of learning new technologies and practices, I’m focused on DevOps practices, software delivery, infrastructure automation, and cross-organizational silo-busting.
Things I’ve Built
Full-stack web application, CI/CD built and deployed to Azure Kubernetes Service.
Highly extendable GUI portal enables our developer teams to provision, monitor, & manage line-of-business application environments and other managed IT services. Built and hosted on Azure services. This project was an intentional effort to build web development skills around my existing infrastructure automation and cloud toolboxes and deliver significant value across our entire organization.
LaunchPad defines external services (disaster recovery, training, and development environments) their properties, and actions in the form of REST API calls to arbitrary endpoints (e.g. Azure Functions, Automation Runbooks, Ansible Tower).
The front-end displays the services’ status and available actions to authorized users (filtered by AzureAD group), and sends user requests (provision, modify, or delete a service instance) to their respective endpoints using either AJAX calls – appropriate for fire-and-forget endpoints that will call back later – or asynchronous worker bees if we’re calling a blocking endpoint whose response we must wait for.
– Flask backend and templating
– JS + jQuery + Bootstrap frontend
– Redis + RedisQueue async job processing (pub/sub task queue with workers)
– PostgreSQL + SQLAlchemy backend
– Azure Active Directory SSO
– Python and Golang helper microservices
– Azure DevOps Build and Deploy pipelines, triggered by git branch commits
– Built for and deployed to Kubernetes (AKS)
– ARM templates to describe or rebuild AKS, Azure RedisCache, and Azure Database for PostgreSQL resources
Smaller “glue” tools using Azure Functions, Azure Automation Runbooks, CI/CD pipelines, and PowerShell. These are hooked together to automate various IT functions across our infrastructure and use cases.
GraphQL + Postgraphile
- Planned and implemented a QR-code asset management system using LANSweeper. Produced procedures to ensure the system remains up to date.
- Deployed a network-based desktop imaging system, which improved our system onboarding and refresh time from a full day to a few hours.
- Deployed DUO two-factor authentication with our SSL VPN, significantly improving our security posture around remote access.
- Led a test pilot of Chef Server.