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

Generated by cgit