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

Generated by cgit