I build what you need. Seasoned IT Professional turned DevOps with extensive experience designing, maintaining, and troubleshooting builds and private infrastructure. I make software builds consistent and automatic. I help teams push Quality Assurance, Operations, and Documentation left. And I write new code and fix existing when there is a gap. I’m not happy unless I can improve people, processes, policies, and infrastructure.
Favorite tools: Git, Jenkins, GCP, Docker, Docker Compose, Python, Bash, Make, Vagrant, Packer
Notable Experience, Projects, and Results
Konica Minolta Healthcare Americas • Garner, NC • September 2018 to Present
Small responsive medical devices company. Provides PACS, RIS, DR, and Medical Billing software. Provides medical imaging hardware. Provides Healthcare IT managed services. It is a Konica Minolta subsidiary.
- Product into VM Images Project: Product deployment to vSphere and Virtualbox through Packer, Powershell, Bash, and Make. Took error-prone high labor manual install and reduced to a 15-minute “Clone VM. Start VM. Change VM hostname and add to our endpoint manager if shared.” QA had a 1-5 day wait before. Improved known state before entering testing. Can be reused for upgrade testing after QA decides manual upgrades are unpleasant.
- Build Node Infrastructure as Code: Build node creation now handled by Packer and Vagrant to create vSphere VMs. Previously handled as Docker Containers for Windows. Tribal knowledge for build requirements captured as Docker files and Packer files. The previous build person could make a lateral move.
- Build Automation through Jenkins CI Project: No more 1-2 day wait for the build guy to build because anyone can initiate builds. Standardized to declarative Jenkinsfiles instead of tribal knowledge. Standardized manual build “protocol,” reducing knowledge required. All build processes captured with source in git in Bitbucket.
- PostgresQL Schema Migration Testing: Our product includes hand coded SQL and a home grown schema migration tool. Used the dockerhub postgresql image to aid testing schema migration scenarios.
Squirrely Girl Produce • Wake Forest, NC • May 2010 to Present
Hobby farm that raises ducks and geese for meat and eggs
- Farm Website in Google Cloud: Went with Jekyll rendered static site served from GCP storage and HTTPS proxy and Gmail for orders. Low tech while being low cost and small attack surface area.
- Webstore in Container Experiments: We dream of needing a shopping cart. We use GCP Run for public experiments. We use Docker, Docker Compose, and occasionally MicroK8s locally.
Cisco • Morrisville, NC • June 2018 to August 2018
A large company that creates command and control systems to prevent unauthorized communication.
Source Control Administrator
- Bitbucket to CRATE Project: Began adapting mixed manual and Ansible deployment of Bitbucket Enterprise to Cisco’s internal Rancher (orchestration and cluster) offering. Promised reduced turn around time and errors for new deployments.
- Ansible Cleanup Project: Cleaned up brittle procedural approach to ansible to a resilient declarative approach.
Qualcomm • Raleigh, NC • December 2011 to May 2018
A medium company enables mobile communications and devices through chip design from the radio to the system-on-chip.
Senior IT Engineer: Devops, Cluster, Display
- Jenkins Offering: Lead. Reduced customer Jenkins server deploy time. Used Docker Compose to orchestrate customer deployments. Used custom Docker images to reduce customer-specific requirements to config under source control in git under Github. Improved customer Jenkins training and encouraged good practices.
- Jira Labor Reporting Project: Reduced 20 staff-hours per month to calculate project labor from Jira ticket history. Saved $10,000 per year for an equivalent product. Developed application in Python using Flask, deployed in Rancher.
- NoMachine Stabilization Project: Lead. Created Splunk searches to identify engineers losing virtual desktop sessions to NoMachine bugs across 26,000 workstations. Created playbooks in Ansible that used Splunk reports as inventory to collect unique bug signatures for NoMachine bug reports. Abused Splunk as a metrics database as we discovered engineer applications were causing some failures.
- Small Prometheus rollout to collect metrics on servers and apps. We never saw enough failures to guide alerting.
- Small Gerrit rollout. Used Docker Compose and off the shelf Docker Images to provide Gerrit, PostgresQL database, database backup and restore, and safe testing of schema migration between Gerrit releases.
Other roles with Database Experience:
IBM • Durham, NC • May 1993 - August 2000: Supported DB/2 and MySQL databases used by web applications
Tekelec • Morrisville, NC • October 2005 - February 2006: MySQL integral component of product and migrations
IBM • Durham, NC • May 1993 - August 2000: Developed ticketing system for Desk Side Support in DB/2 for OS/2 and vxrexx
Full Skill Matrix
On a scale of 1, is competent and not confident to 5, has mastered.
- Operating Systems:
Part of all jobs since 1990. Linux 5. AIX 5. Windows 4.
- Programming Languages:
- Part of all jobs since 2014. Docker 4. Podman 3. Dockerfile from scratch 4.
- Part of some jobs since 2014. Rancher 4. Docker Compose 4. Kubernetes 2. Ansible 3.
- Configuration Management:
- Part of most jobs since 1995. Ansible 3. Puppet 2. Chef 1.
- Part of all jobs since 1990. DNS 4. Firewalls 3. NFS 4. CIFS 3. SSH 4.
- Virtual Machines:
- Part of most jobs since 1990. vSphere 4. Virtualbox 4. libvirt 4. HyperV 2.
- Source Control:
- Part of some jobs since 1995. Git 4. Mercurial 3. Many Obsolete Source Control Systems 2.
- Social Coding Platforms:
- Part of most jobs since 2012 Github 4. Bitbucket 4. Gitlab 3.
- Continuous Integration and Deployment Engines:
- Part of all jobs since 2016. Jenkins 4. Bitbucket Pipelines 3. Github Actions 3.
- Build Tools:
- Part of all jobs since 1993. Make 4. Grunt 3. Gulp 3.
- Content Management Systems:
- Part of every job since 1995. Jekyll 4. Confluence 3. Sharepoint 2.
- Ticketing Systems:
- Part of all jobs since 1993. Jira 4. ServiceNow 4.
- Packaging Systems (Creating Packages)
- Part of most jobs since 1997. RPM 3. DEB 3. Docker 4.
- Observability Tools (Log aggregation, indexing, metrics databases)
- Have been part of every job since 2011 Splunk 4. Prometheus 3. Graylog 2.
- Relational Databases:
- Have been a part of every job since 1993. Postgresql 3, MySQL 3, DB/2 3
- Backup Restore:
- Have been a part of every job since 1995, except KMHA.
- Believe in establishin restore scenarios and procedure before going deep on specific technology. Tivoli Storage Manager 2, Netbackup 2, Backup Exec 2