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

Generated by cgit