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

Generated by cgit