Generalist: I aim for 20:80:99. I deliver the 20% required. That gets you 80% of what you wanted. And 99% of what you needed. I deliver enough while you search for a specialist. I deliver something repeatable. I make it fail safe. That is software builds, systems management, employee growth, process improvement, process discovery, and policy drafts. Contrarian: Because 95% of popular opinion costs you money. Grump: Because angry gets stuff done. Angry gets the unexpected.


  • Languages: Bash, Python, Ruby, Groovy, PowerShell, JavaScript, ‘C’, ‘C++’, Lisp
  • Cloud: Docker Compose, vSphere, Rancher, Google Cloud
  • Build: Make, Docker, Jenkins, RPM and DEB, Vagrant, Packer, Ansible
  • Networking: DNS, Software Firewalls, NFS, CIFS, SSH, Human-Centered TCP protocols
  • Web Development: Django, Jekyll
  • Source Control: git

Konica Minolta Healthcare Americas September 2018 - Present

Responsive EHR, PACS, medical imaging, and healthcare IT company

DevOps Engineer

  • Fighting and losing the battle for regulatory compliance, catching problems before they’re merged to code, and reducing labor to test. Coaching for autonomy and growth fails in the face of micromismanagement.
  • Technologies and why:
    • Bash aka Bourne Again Shell. Because it’s the standard scripting language on Linux and the least painful scripting language on Windows to stop after an error.
    • Batch aka cmd.exe. Because you can’t double click on a powershell script on Windows and you can’t right click and select ‘Run as Admin’ with bash or python.
    • Docker. Because it has a large library of container images and it provides a clear language to describe a build environment or a service’s pre-requisites. I do Linux and Windows containers.
    • Docker Compose. Because people need container orchestration and don’t always need full blow Kubernetes to do it.
    • Eslint. Because it’s the linter for Javascript and polite programmers use a linter and include the config in the source code.
    • Groovy. Because it is the language Jenkins uses to define pipelines. It is also the language that allows doing evil things to a Jenkins server.
    • Grunt. Because it’s a Make equivalent, aka build facility, for Javascript.
    • Gulp. Because it’s another Make equivalent, aka build facility, for Javascript.
    • Javascript. Because the product is written in browser Javascript, nodejs Javascript, C++, and C#.
    • Jenkins. Because it’s the first Continuous Integration (CI) engine everyone uses. And works well with Windows build servers, including Windows build servers in docker containers.
    • Make. Because it’s the oldest most understood build facility.
    • Nginx. Because we needed some sort of proxy to plumb all the nodejs and C# and C++ together.
    • Nodejs. Because much of the backend code is in nodejs javascript.
    • Npm. Because Nodejs is useless without its package manager.
    • Nvm. Because sometimes you have to switch nodejs versions.
    • Packer. Because I found examples provisioning Microsoft Windows VM images from iso file and response file using Packer. I couldn’t find similar examples with Terraform.
    • Postgresql. Because we needed some sort of relational database.
    • Powershell. Because you can automate almost any Windows configuration with Powershell.
    • Python. Because it’s the most expressive programming language I know. It allowed me to generate a clean software bill of materials from haphazard directories on an FTP server.
    • Redis. Because everyone needs a touch of nosql.
    • Vagrant. Because “vagrant init foo && vagrant up” sucks less than “Download VM image. Import VM Image. Configure VM hardware. Start VM. Plumb Virtual Network.” And its provisioning language is okay.
    • Visual Studio. Because we have C# and C++ code that cannot be built outside of Visual Studio.
    • vSphere. Because it’s the cluster of hosts running VMs every Windows shop prefers.
  • Wins:
    • Builds are self service instead of “Ask the only person that knows to please build.”
    • We have Infrastructure as Code (IaC) describing and creating the build environment and test servers, even if we don’t have working documentation to do it by hand.

Cisco June 2018 to August 2018

Large company that creates command and control systems to prevent unauthorized communication

Source Control Administrator (Bitbucket, Github, Gerrit)

  • Improved deploy reliability by untangling Ansible playbook spaghetti
  • Reduced waiting on other teams by rewriting in Docker/Docker Compose/Rancher/Terraform for their internal cloud
  • Technologies and why:
    • Ansible. Ansible is an expressive tool for describing a system’s intended state. It also provides enough rope to hang yourself.
    • Docker. See KMHA
    • Docker Compose. Because orchestrating a postgres database, two bitbucket servers, a high availability proxy, and shared storage is much simpler in Docker Compose than ansible.
    • Rancher. Because there was less wait time to orchestrate containers in a Rancher cluster than to have IT provision 4 VMs.
    • Terraform. The theory was we could describe infrastructure in Rancher and vSphere and AWS with the same code.

Qualcomm December 2011 to May 2018

A medium company that enables mobile communications and devices through chip design from the radio to the system on chip

Senior IT Engineer, DevOps 2017-2018

Provided point solutions, service offerings, and training.

  • Reduced Jenkins deployment from weeks to minutes shifting focus to new user training
  • Simplified workflow by separating control into git and design data in legacy source control
  • Saved over $10K implementing Jira reporting in Python with Flask and Django using Qualcomm’s internal cloud
  • Mentored engineers on using Groovy to describe Jenkins jobs instead of the web application
  • Technologies and why:
    • Flask. Provides a lightweight platform for a single page application with some nosql dependencies.
    • Django. Provides an expressive framework for a web application suited for an Object Relational Mapping (ORM).
    • Jira. Preferred ticketing system for anything more complicated than break fix.
    • Python. Because Flask and Django use Python and it’s the most expressive programming language I know.

Senior IT Engineer, CPU Infrastructure 2016-2017

Gained agile and DevOps experience for IT in exchange for writing Perl for chip engineering

  • Improved engineering focus by enhancing Bugzilla conversation threading within Outlook
  • Enhanced system status awareness by extending metrics monitored by Graphite
  • Learned to critique code to improve understanding and reduce maintenance costs

Senior IT Engineer, Remote Display 2014-2016

I enabled chip designers to get work done by stabilizing primary access to chip design tools

  • Brought millions of dollars of chip analysis online by resolving display rendering bug
  • Reduced thousands of hours of lost work through display upgrades planned through Splunk
  • Reduced hundreds of hours of labor upgrading display servers using Ansible playbooks
  • Increased resilience by mentoring Bangalore and San Diego teams on updates and troubleshooting
  • Technologies and why:
    • Splunk. Splunk because it’s the oldest best known log aggregator/indexer and we won when our IT security folks wanted it on everything.
    • Ansible. Ansible is the best tool to orchestrate commands across thousands of systems crossing multiple authentication domains WITHOUT installing a service on thousands of machines.

Senior IT Engineer, Hardware Engineering 2011-2014

Supported all Solaris and Linux Compute and NetApp filers and orchestration software for 27,000 chip designers

  • Began packaging remote display software in rpm and deb format
  • Mentored new IT engineers in Qualcomm’s proto-cloud environment
  • Technologies and why:
    • rpm and deb. These are the native package formats for Red Hat, SuSE, Debian, and Ubuntu. They enable auditing for properly installed software. They enable automating upgrades. And packaging software in a native package format reduces labor to update thousands of machines.

Squirrely Girl Produce: Suburban Waterfowl 2010-Present

Farmer and Owner

Raise Silver Appleyard ducks and Toulouse geese for meat, eggs, weed removal, and breed preservation

  • Provides an excuse to learn Google Cloud and Jekyll
  • Saved labor and capital while reducing predator losses by developing modular pen system
  • Saved labor standardizing on automatic drinkers
  • Technologies and why:
    • Google Cloud. Google Cloud offered DNS and buckets and https load balancers and a domain registrar. AWS offered the same, yet companies like Walmart refuse to use it. Azure lacks a domain registrar and did not advertise DNS services at the time.
    • Jekyll. Avoids the attack surface area of a CMS like Wordpress while providing 80% of the function with 20% of the setup.

IBM August 2007 - December 2011

IBM’s products include Red Hat Linux and the mainframe hardware and software your bank and insurance company use

AIX, Linux, Web Administrator

Delivered AIX and Linux support for internal web services

  • Decreased developer wait time with a homegrown continuous deployment system
  • Enabled Open Source Software team through source control infrastructure maintenance
  • Reduced developer wait by creating self-service log access
  • Decreased security patch deployment wait through automation and improved organization

Glaxo Smith Kline 2006-2007

Large pharmaceutical company makes everything from bandages and OTC drugs to niche prescription drugs

AIX Systems Administrator for ERP

Enabled ERP migration from mainframe to AIX

  • Kept roll out on schedule by developing equivalent to unfit for purpose EMC software

Tekelec 2005-2006

Makes hardware and software allowing your phone number to be ported across carrier (Now Oracle)

Migration Engineering

Enabled product migration from legacy Sun hardware to commodity Linux hardware

IBM 2003-2005

Sold Intel servers with bundled “value add” software (Now Lenovo)

Level 2 Support, IBM Director

Provided phone and email support for IBM’s “Free with Server Purchase” monitoring, administration, and deployment software

JDS Uniphase 2003

Made fiber optic transceivers

Unix Administrator

Saved on real-estate and IT infrastructure costs by moving optical transceiver division out of IBM’s facilities

Wachovia 2002

Large retail, commercial, and investment bank (Now Wells Fargo)

AIX Administrator, Wire Transfer System

Reduced risk during OpenVMS to AIX migration

Tavve Software 2001

Small network monitoring company squelching “Of course that’s down” network alerts through automated root cause analysis

Network Administrator

Enabled software developers to deliver products by maintaining Linux hosts, Solaris hosts, Cisco routers and switches, OpenBSD routers and switches, and DNS infrastructure on Linux

IBM 1990-2000

Large company. Sold personal computers, high-quality laptops, servers, operating systems, cash registers, network equipment (Now Lenovo,, Toshiba, Cisco)

AIX/Linux Administrator 1995-2000

  • Supported internal AIX systems for IBM software and hardware development
  • Supported SAP ERP system for IBM PC Company (Now Lenovo)

Infrastructure Administrator and Architect, Desk Side Support 1992-1995

  • Reduced system deployment time and resources with network install and backup
  • Enabled cost reclamation through multi-user ticket tracking system
  • Enabled cash register sales by prepping for retail shows

Clerk, IBM PC Swap 1990-1991

Accepted and tracked depreciated PC assets for donation and recycling

Food Lion 1989-1990, 1993

Grocery Store


Rang up grocery purchases. Bagged groceries. Performed janitorial duties.


BS, Computer Engineer NCSU, Raleigh, NC 1989-1998

Apex High School 1986-1990


This resume is for buzzword bingo. It is unsuitable for hiring managers.



  • “We always did it this way” is the death rattle of a business.


Technologies and why

  • Too many job postings list technologies without how they are used in the role
  • Too many recruiters make bad assumptions about skills based on technologies


  • Email: