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 (10 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 (5 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 */
|