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

Generated by cgit