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

Generated by cgit