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

Generated by cgit