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

Generated by cgit