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 deplowing 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 */
|