summaryrefslogtreecommitdiff
path: root/resume.md
blob: a0ded7d914027f4d48fc05040b7daffec00f3409 (plain)
    1 <div class="resume-author-sect">
    2 <div class="resume-author-name">
    3 <p>Aaron</p>
    4 <p>Ball</p>
    5 </div>
    6 <div class="resume-author-contact">
    7 
    8 * **email**: [aaronb@oper.io](mailto:aaronb@oper.io)
    9 * **phone**: +1 720-319-7799
   10 * **www**:   [https://oper.io](https://oper.io)
   11 * **code**:  [https://oper.io/src/nullspoon](https://oper.io/src/nullspoon)
   12 
   13 </div>
   14 </div>
   15 <div id="profile">
   16 
   17 # PROFILE
   18 
   19 * **Languages**: Bash (13 years), C (4 years), Python (3 years), Perl (4 years),
   20   CSS and XHTML (8 years), PHP (versions 4 and 5 - 7 years), JavaScript (2
   21   years)
   22 
   23 * **Tools**: Git (9 years), Jenkins (7 years), Ansible (7 years), Kubernetes (3
   24   years), Terraform (3 years)
   25 
   26 * **Linux**: 15 years - Crux, Ubuntu, CentOS, RedHat, Arch, Gentoo, and Debian
   27 
   28 * Proficient in Linux infrastructure automation, security, troubleshooting,
   29   design, and management; networking design, security, analysis, and
   30   troubleshooting; and service design and abstraction.
   31 
   32 * Knowledgeable in object oriented theory and its application in
   33   infrastructure, security, and code design
   34 
   35 </div> <!-- profile -->
   36 
   37 
   38 # EMPLOYMENT
   39 
   40 <div id="employment">
   41 
   42 ## DataRobot
   43 
   44 <div class="jobmeta">
   45 December 2018 - present
   46 <br />
   47 Principal Software Engineer
   48 </div>
   49 <!--<span class="location">Denver, Colorado</span>-->
   50 
   51 * **Primary operating systems**: Ubuntu Server (versions 16.04, 18.04, 20.04,
   52   and 22.04)
   53 
   54 * Worked on Development Infrastructure team automating processes and
   55   infrastructure to support development, testing, engineering productivity,
   56   security, and cloud operations teams.
   57 
   58 * Scripting in Bash, C, Makefile, and Python to automate processes
   59 
   60 * Worked with Jenkins, Ansible, Packer, and Terraform to automate system build
   61   processes (AWS AMIs, KVM backing disks, laptop provisioning)
   62 
   63 * Worked on AWS cost reduction project. Total contributions yielded $350,000
   64   per year in reduction. Accomplished this with resource cleanup automation,
   65   runtime storage compression, runtime memory compression, instance usage
   66   analysis and right-sizing, and removal of cross availability zone costs by
   67   intelligently pinning traffic to the local AZ within automation.
   68 
   69 * Completely eliminated cross availability zone traffic costs for Jenkins and
   70   Artifactory by building a simple solution which intelligently pinned traffic
   71   to the Artifactory cluster instance within the local availability zone.
   72 
   73 * Built a Kubernetes native ECR proxy service which allowed greater flexibility
   74   and ease of use for developers needing to interact with cumbersome ECR
   75   endpoints and authentication. Service supported zero-downtime updates.
   76 
   77 * Automated cost metrics gathering and analysis of GitHub traffic to determine
   78   causes of increased costs and worked with developers to reduce those costs
   79   through on-system caching, sparse clones, and on-premise LFS hosting.
   80 
   81 * Fully migrated a three node Artifactory cluster from EC2 to Kubernetes using
   82   Kustomize to manage and automate multiple environments for testing and
   83   release. Upgrades and maintenance now occur at any time during the day with
   84   no downtime for end users due to custom connection draining automation.
   85 
   86 * Migrated all Terraform Kubernetes code away from Terraform and into
   87   Kubernetes native to improve reliability and state management.
   88 
   89 * Version controlled thousands of Jenkins job configurations and enforced peer
   90   review by storing all job configs in git repos as JJB (Jenkins Job Builder)
   91   templates and deploying with automation on merge request review and approval.
   92 
   93 * Built on-premises virtualization platform of over 230 KVM guest nodes to
   94   lower costs in AWS. Clusters were completely autonomous and self-maintaining.
   95   Automation registered nodes with their configured Jenkins masters on boot,
   96   and deregistered, refreshed to a clean disk state, and reregistered after a
   97   Jenkins job finished running, automatically maintaining a clean system state
   98   for all jobs with no plugins required and 4 simple scripts.
   99 
  100 * Defined upgrade process and worked with all concerned teams to upgrade
  101   automation infrastructure from Ubuntu 16.04 to 18.04. Updated all automation
  102   and testing code to be compatible with both versions. Performed the same task
  103   to migrate from Ubuntu 18.04 to 20.04 one year later.
  104 
  105 * Automated Jenkins credential store management and synchronization across
  106   thirteen Jenkins masters using Jenkins Groovy API and Python.
  107 
  108 * Used Terraform to create and ensure state of necessary underlying
  109   infrastructure such as EC2, ELB/ALB, EKS, Route 53, RDS, and S3.
  110 
  111 
  112 ## Jeppesen, A Boeing Company
  113 
  114 <div class="jobmeta">
  115 <i>(Contract)</i>   August 2017 - October 2018
  116 <br />
  117 Software Integration Engineer
  118 </div>
  119 
  120 <!--<span class="location">Denver, Colorado</span>-->
  121 
  122 * **Primary operating systems**: Centos 6.9 - 7.7, RHEL 6 - 7
  123 
  124 * Worked on the environments team supporting about 80 developers
  125 
  126 * Developed portable self-extracting installer to integrate and automate the
  127   deployment process. The installer reduced a 40 page install document to a
  128   single command using a bash header with a multi-stage binary payload footer.
  129 
  130 * Automated Linux environment setup and management with Ansible 2.6. Wrote
  131   roles for deploying and configuring Apache tomcat, Apache httpd, Apache
  132   Artemis, Oracle JRE, program-developed software, etc.
  133 
  134 * Automated software version inventory process to ensure the versions of all
  135   pertinent external endpoints in every environment matched as the product
  136   advanced through the phases of testing.
  137 
  138 * Automated deployments to sixteen environments using Jenkins. Deployment
  139   criteria were based on schedules, git repo tag creation, and commit pushes
  140   (each environment with different criteria).
  141 
  142 * Automated server configurations with Ansible. Wrote scripts to generate
  143   dynamic playbooks and dynamic inventories. Roles were separated into two
  144   tiers: the vendor tier and proprietary tier for separation of concerns.
  145 
  146 * Built and administered Okta authentication backend (users, groups, signon
  147   policies, service accounts, etc.), for twenty different application
  148   instances.
  149 
  150 * Assisted in planning and automation of migration from on-site datacenter to
  151   Microsoft Azure.
  152 
  153 
  154 ## Truven Health Analytics
  155 
  156 <!--<span class="location">Denver, Colorado</span>-->
  157 
  158 <div class="jobmeta">
  159 January 2016 - August 2017
  160 <br />
  161 Senior Development Operations Engineer
  162 </div>
  163 
  164 * **Primary operating systems**: Centos 5.9 - 6.7, RHEL 5 - 6
  165 
  166 * Worked as a liaison between devops, configuration management, development,
  167   production operations, and application operations teams
  168 
  169 * Created documented bash scripting framework to consistently automate builds,
  170   deployments, and cluster switches. This reduced feature development time and
  171   bug fix time. It also increased process scalability, visibility, and
  172   stability.
  173 
  174 * Implemented a configurable self-extracting package container [in bash] which
  175   enabled complex scripts, frameworks, and resources to be reduced to a single
  176   file and subsequently easily deployed.
  177 
  178 * Wrote a configurable server validation scripting framework for ensuring any
  179   given server met the team's deployment requirements for the specified server
  180   role (eg: frontend, database, storage, tomcat, etc).
  181 
  182 * Automated developer machine build process so developers would have consistent
  183   environments in which to write, build, test, and deploy their code. This
  184   reduced a 2 week per-employee setup time to about 15 minutes.
  185 
  186 * Created a command line Artifactory api wrapper for managing artifacts using
  187   Perl. Wrapper could download, upload, and copy artifacts to alternate repos
  188   (eg: for a promotion process).
  189 
  190 * Wrote Ansible roles to deploy and configure software such as MongoDB, Zabbix,
  191   Graylog, Elasticsearch, Rsyslog, Tomcat, JDK, and others.
  192 
  193 * Automated migration of more than 3200 SVN repos to Git.
  194 
  195 * Established and documented Git development and release process standards.
  196 
  197 * Managed deployments using a combination of Ansible, Bash, Perl, and Jenkins.
  198 
  199 * Reduced Jenkins-triggered infrastructure deployment process from
  200   over 300 jobs down to five jobs.
  201 
  202 
  203 
  204 ## Time Warner Cable
  205 <!-- <span class="location">Denver, Colorado</span>-->
  206 
  207 <div class="jobmeta">
  208 March 2015 - January 2016
  209 <br />
  210 Senior DevOps Engineer
  211 </div>
  212 
  213 * **Primary operating systems**: Centos 6.5 and 6.6
  214 
  215 * Wrote a bash script to automatically upgrade the GitHub Enterprise cluster
  216   with minimal human interraction. This also handled several workarounds to
  217   unfixed bugs in the appliance software.
  218 
  219 * Wrote parallel processing C program to benchmark legacy VMWare network
  220   against new OpenStack network
  221 
  222 * Wrote C program to parse 8 million firewall rules and nginx access logs to
  223   determine how many were needed
  224 
  225 * Managed configurations with Puppet Enterprise 3.2, r10k for dynamic
  226   environment deployments, and Hieradata to support separation of data and
  227   modules
  228 
  229 * Assisted automating legacy VMWare infrastructure (54 hypervisors) to keep it
  230   running smoothly until migration to OpenStack had been completed
  231 
  232 
  233 ## CenturyLink, Inc.
  234 
  235 <!-- <span class="location">Denver, Colorado</span>-->
  236 <div class="jobmeta">
  237 <i>(Contract)</i>  August 2014 - February 2015
  238 <br />
  239 Linux Engineer
  240 </div>
  241 
  242 * **Primary operating systems**: Centos 6.5, 6.6, 7, Ubuntu Server
  243 
  244 * Deployed and managed Mapr (Hadoop distribution) for development and test
  245   clusters
  246 
  247 * Wrote bash script to manage and synchronize users and their home directories,
  248   detect and allocate unique uid/gid pairs, and perform various user-related
  249   checks across a cluster of any size
  250 
  251 * Set up HAProxy for TCP forwarding of LDAPS traffic from corporate into the
  252   lab (dev/test) network for authentication
  253 
  254 * Performed various MediaWiki administrative tasks (backups, page management,
  255   writing templates, etc).
  256 
  257 * Established team version control best practices within git
  258 
  259 * Wrote Ansible playbooks to deploy and configure various types of servers
  260 
  261 
  262 ## Intelligent Software Solutions, Inc.
  263 <!-- <span class="location">Denver, Co (_* Contract_)</span>-->
  264 
  265 <div class="jobmeta">
  266 <i>(Contract)</i>   March 2014 - August 2014
  267 <br />
  268 DevOps Engineer
  269 </div>
  270 
  271 * Wrote chef (version 10) cookbooks (recipes, documentation, templates,
  272   providers, resources, etc.) to deploy base tomcat instances and overlay any
  273   combination of wars across any number of systems
  274 
  275 * Wrote chef cookbook compatibility layer for Windows-specific deployments
  276   using cookbooks designed for Linux
  277 
  278 * Built a local virtual chef development environment running on KVM VMs could
  279   be created from a template in about two to five seconds each.
  280 
  281 
  282 ## DaVita
  283 <!--<span class="location">Denver, Co</span>-->
  284 
  285 <div class="jobmeta">
  286 October 2012 - March 2014
  287 <br />
  288 Linux/Unix Systems Engineer
  289 </div>
  290 
  291 * **Primary operating systems**: AIX (versions 5.3 and 6.1) and RedHat Linux
  292   (versions 4 - 6)
  293 
  294 * Standardized, consolidated, and converted team documentation from 
  295   Sharepoint Shared Documents to MediaWiki
  296 
  297 * Audited and remediated security holes to harden Linux and AIX servers
  298 
  299 * Wrote and documented a Perl script to gather data and generate a report
  300   detailing all of the local and Active Directory users with access to the
  301   company-wide FTP site.
  302 
  303 * Wrote and documented a Perl script to generate sudoers SOX compliance
  304   reports. The script parsed the global sudoers file and queried Active
  305   Directory to determine granular extent of all permissions.
  306 
  307 * Wrote a bash script to perform automated SSH key rotation every three months
  308   and when an employee left
  309 
  310 
  311 
  312 ## Dish Network
  313 
  314 <!--* Englewood, Co-->
  315 <div class="jobmeta">
  316 January 2011 - October 2012
  317 <br />
  318 Tier II Analyst / Developer II
  319 </div>
  320 
  321 * Managed over 1,000 JVM application instances (WebMethods, Weblogic, and
  322   Apache Tomcat) running on Solaris and Linux
  323 
  324 * Wrote Perl scripts to process log files, gather statistics, perform software
  325   upgrades, manage rolling restarts, etc.
  326 
  327 
  328 
  329 ## USDA
  330 
  331 <!--* Fort Collins, CO -->
  332 <div class="jobmeta">
  333 <i>(Contract)</i>   August 2010 - December 2010
  334 <br />
  335 Windows Systems Administrator
  336 </div>
  337 
  338 * Built and configured Red Hat Enterprise Linux (version 5) web servers
  339   tailored for each project
  340 
  341 * Analyzed test environment needs to designed scaled down test environments
  342   based upon network architecture diagrams of the proposed production
  343   environment
  344 
  345 * Constructed test clusters (one controller and two test agents each) for load
  346   testing with Visual Studio
  347 
  348 
  349 ## AMG Creative, Inc.
  350 
  351 <!--* Fort Collins, CO-->
  352 <div class="jobmeta">
  353 August 2009 - August 2010
  354 <br />
  355 Web Developer / Systems Administrator
  356 </div>
  357 
  358 * Programmed websites on Joomla and Wordpress using PHP, JavaScript, HTML, and
  359   CSS.
  360 
  361 * Built and managed five servers (one virtual [Domain controller, file server,
  362   terminal server, backup server], another virtual [OpenVPN], one host [VMWare
  363   Server], one print server [Ubuntu 10.04], one backup server [Ubuntu 10.04])
  364 
  365 
  366 ## CSU College of Business
  367 
  368 <!--* Fort Collins, Co-->
  369 <div class="jobmeta">
  370 August 2007 - October 2009
  371 <br />
  372 Web Developer / Systems Administrator
  373 </div>
  374 
  375 </div> <!-- employment -->
  376 
  377 
  378 # EDUCATION
  379 
  380 <div id="education">
  381 
  382 ## Colorado State University
  383 
  384 <!--Fort Collins, CO-->
  385 <div class="jobmeta">
  386 Bachelors in Business Administration
  387 <br />
  388 2007-2010  
  389 </div>
  390 
  391 _Concentration_: Computer information Systems
  392 
  393 Courses included Windows and Linux administration, Networking, SQL database
  394 design and implementation, web application development (creating ASP.Net/C# and
  395 Cold Fusion applications that accessed a database and used sessions), client
  396 side application development (Visual Basic.Net), business math, marketing,
  397 finance, accounting, and business communication.
  398 
  399 </div> <!-- education -->
  400 
  401 <div class="witty-remark">
  402 /* This resume was proudly generated with commonmark markdown, some clever css,
  403 and a Makefile */
  404 </div>

Generated by cgit