summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile42
-rw-r--r--hooks/post-receive2
-rw-r--r--res/style-header.css53
-rw-r--r--res/style-markdown.css100
-rw-r--r--resume.css226
-rw-r--r--resume.md (renamed from resume.adoc)285
6 files changed, 299 insertions, 409 deletions
diff --git a/Makefile b/Makefile
index 8297585..3e8c957 100644
--- a/Makefile
+++ b/Makefile
@@ -1,54 +1,30 @@
-src=resume.adoc
-
outdir=out
style=resume.css
-pdf=$(outdir)/resume.pdf
-odf=$(outdir)/resume.odf
html=$(outdir)/resume.html
-#safe = --safe
+.SILENT : help
-.SILENT : help pdf odf
+.DEFAULT: md-html5
-all: html5
+md-html5:
+ cp res/header.html $(html)
+ cat res/style-header.css >> $(html)
+ cat res/style-markdown.css >> $(html)
+ printf '</style>\n</head>\n<body>\n' >> $(html)
+ cmark --unsafe resume.md >> $(html)
+ printf '</body>\n</html>\n' >> $(html)
rst-html5:
rst2html5.py --stylesheet=$(style) resume.rst $(html)
-embed: setup
- asciidoc $(safe) -b html5 -a stylesheet=$(shell pwd)/$(style) -o $(html) $(src)
-
-html5: setup
- asciidoc $(safe) -b html5 -a stylesheet=$(shell pwd)/$(style) -o $(html) $(src)
-
-xhtml: setup
- asciidoc $(safe) -b xhtml11 -a stylesheet=$(shell pwd)/$(style) -o $(html) $(src)
-
-odf:
- echo "ERROR: Not implemented"
- exit 1
- #asciidoc $(safe) -b odt -a stylesdir=${PWD} -o $(odf) $(src)
-
-pdf:
- echo "ERROR: Not implemented"
- exit 1
- # Generate html version
- # make
- # wkhtmltopdf -s Letter -B .5in -T .5in -R .5in -L .5in --minimum-font-size 16 $(html) $(pdf)
- # rm $(html)
-
clean:
rm -rv $(outdir)/*
setup:
if [ ! -d $(outdir) ]; then mkdir $(outdir); fi
-
help:
echo -e '\n'\
'Make options:\n' \
'all: Makes html5 document\n' \
- 'pdf: Makes pdf document\n' \
- 'odf: Makes pdf document\n' \
- 'xhtml: Make xhtml document\n' \
'embed: Make html document with embedded styles (more portable than xhtml)\n'
diff --git a/hooks/post-receive b/hooks/post-receive
index d977771..ada4585 100644
--- a/hooks/post-receive
+++ b/hooks/post-receive
@@ -8,7 +8,7 @@ for i in ${FILES_A[@]} ${FILES_M[@]}; do
f="$(basename ${i})"
if [ "${f%.*}" = 'resume' ]; then
printf 'Generating and deploying resume\n'
- make embed
+ make
install -v -D out/resume.html "${WEB}/oper.io.git/master/resume.html"
fi
done
diff --git a/res/style-header.css b/res/style-header.css
new file mode 100644
index 0000000..199aa70
--- /dev/null
+++ b/res/style-header.css
@@ -0,0 +1,53 @@
+/**
+ * Resume author and author-details styles
+ */
+div.resume-author-sect {
+ width:100%;
+ vertical-align:top;
+ margin-top:0px;
+ margin-bottom:10px;
+ letter-spacing:0px;
+}
+
+/* Author left side, containing author name */
+div.resume-author-name {
+ display:inline-block;
+ font-size:2.8em;
+ font-weight:200;
+ border-right:2px dotted #aaa;
+ text-align:right;
+ padding: 0px 30px 0px 0px;
+ width:46%;
+ color:#111;
+}
+
+div.resume-author-name p {
+ margin:1px;
+}
+
+/* Author right side, containing author email, phone, website, etc */
+div.resume-author-contact {
+ padding: .9em 0em 0em 2em;
+ display:inline-block;
+ vertical-align:top;
+}
+
+div.resume-author-contact ul,
+div.resume-author-contact div {
+ margin:0px;
+ padding-left:0px;
+ list-style-type:none;
+ font-size: 1.1em;
+}
+
+div.resume-author-contact ul li,
+div.resume-author-contact ul li a,
+div.resume-author-contact div.line,
+div.resume-author-contact div.line a {
+ text-decoration:none;
+ color:#111;
+ font-family: mono;
+ white-space:pre;
+}
+
+div.resume-author-contact ul li a:hover { text-decoration:underline; }
diff --git a/res/style-markdown.css b/res/style-markdown.css
new file mode 100644
index 0000000..57189f8
--- /dev/null
+++ b/res/style-markdown.css
@@ -0,0 +1,100 @@
+body {
+ color:#222;
+ background:#fff;
+ background-color:#fff;
+ font-family: DejaVu Sans;
+
+ text-align:left;
+ letter-spacing:-.2px;
+ padding:0px;
+ margin:0px;
+}
+
+@page {
+ size: auto;
+ margin: .2in;
+ margin-top: .2in;
+}
+
+@media screen {
+ body {
+ margin-top:60px;
+ width:8.5in;
+ padding:.5in;
+ border:1px solid #aaa;
+ box-shadow: 0px 0px 9px #999;
+ margin-left:auto;
+ margin-right:auto;
+
+ font-size:13px;
+ }
+}
+
+
+@media print {
+ body {
+ margin-top:2px;
+ font-size:12px;
+ }
+}
+
+
+h1 {
+ text-align:right;
+ color:#555;
+ font-size:2.0em;
+ font-weight:400;
+ border-top:3px solid #bbb;
+ border-bottom:1px solid #bbb;
+ padding:0.1em;
+ /*margin-top:22px;*/
+ margin-top:1.2em;
+ margin-bottom:0.2em;
+}
+
+h2 {
+ white-space:nowrap;
+ color:#222;
+ font-size:1.9em;
+ font-weight:400;
+ display:inline-block;
+ width:62%;
+ vertical-align:middle;
+
+ margin-top:1em;
+ margin-bottom:0.5em;
+ padding:.1em 0em;
+}
+
+
+div.jobmeta {
+ display:inline-block;
+ width:37%;
+ text-align:right;
+ color:#777;
+ font-size:1.1em;
+
+ vertical-align:middle;
+ line-height:1.4em;
+
+ padding:.1em 0em;
+ margin-top:1.5em;
+ margin-bottom:.5em;
+
+ border-left:2px dotted #aaa;*/
+}
+
+
+div.witty-remark { color:#aaa; }
+
+
+ul {
+ margin-top:.7em;
+ padding-left:20px;
+ text-align:left;
+ list-style-position:outside;
+}
+li p {
+ margin:2px;
+ text-align:left;
+}
diff --git a/resume.css b/resume.css
deleted file mode 100644
index e9e32f1..0000000
--- a/resume.css
+++ /dev/null
@@ -1,226 +0,0 @@
-@page {
- size: auto;
- margin: .5in;
- margin-top: .4in;
-}
-
-body {
- color:#222;
- background:#fff;
- background-color:#fff;
- /*font-family:Arial;*/
- font-family: DejaVu Sans;
- /*font-family: Liberation Sans;*/
- /*font-family: Roboto Condensed;*/
- /*font-family: Noto Sans;*/
- font-size:13px;
-
- /*font-family: Dejavu Sans;
- font-size:13px;*/
-
- text-align:left;
- letter-spacing:-.2px;
- padding:0px;
- margin:0px;
-
- /* For development */
- margin-top:60px;
- width:8.5in;
- padding:.5in;
- border:1px solid #aaa;
- box-shadow: 0px 0px 9px #999;
- margin-left:auto;
- margin-right:auto;
-}
-
-/* Link styles */
-a:link, a:visited { color:#444; }
-a:hover { color:#999; }
-
-strong {
- color:#444;
-}
-
-h2 {
- text-align:right;
- color:#000;
- font-size:2.0em;
- font-weight:300;
- border-top:3px solid #bbb;
- border-bottom:1px solid #bbb;
- padding:3px;
- margin-top:22px;
-}
-
-/**
- * Reset all tables
- */
-table { border:none; }
-table td { border:none; }
-table td p.table { margin:0px; }
-
-
-/**
- * Bulleted list styles
- */
-div.ulist ul {
- padding-left:20px;
- text-align:left;
- list-style-position:outside;
-}
-
-/* Bulleted list line spacing */
-li p {
- margin:2px;
- text-align:left;
-}
-
-
-
-/**
- * Resume author and author-details styles
- */
-div.resume-author-sect {
- width:100%;
- vertical-align:middle;
- margin-top:0px;
- margin-bottom:10px;
- letter-spacing:0px;
-}
-
-/* Author left side, containing author name */
-div.resume-author-name {
- display:inline-block;
- font-size:2.8em;
- font-weight:200;
- border-right:3px dotted #aaa;
- text-align:right;
- padding: 0px 30px 0px 0px;
- width:46%;
- color:#111;
-}
-
-div.resume-author-name p {
- margin:1px;
-}
-
-/* Author right side, containing author email, phone, website, etc */
-div.resume-author-contact {
- padding: 10px 0px 10px 25px;
- display:inline-block;
-}
-
-div.resume-author-contact ul,
-div.resume-author-contact div {
- margin:0px;
- padding-left:0px;
- list-style-type:none;
- font-size: 1.1em;
-}
-
-div.resume-author-contact ul li,
-div.resume-author-contact ul li a,
-div.resume-author-contact div.line,
-div.resume-author-contact div.line a {
- text-decoration:none;
- color:#111;
- font-family: mono;
-}
-
-
-
-/**
- * Jobs header styles
- */
-div.job {
- /*border-left:3px dotted #ccc;*/
- padding-left:4px;
- /*margin-top:20px;*/
- /*margin-bottom:30px;*/
-}
-
-div.job {
- margin-left:7px;
-}
-
-div.job ul,
-ul.job {
- list-style-type: none;
- padding-left:5px;
- margin-top:10px;
-}
-
-div.job ul li,
-ul.job li {
- border-left:2px dotted #888;
- padding-left:7px;
- margin-top:7px;
- margin-bottom:7px;
-}
-
-div.job table,
-table.job {
- margin-top:30px;
- margin-bottom:0px;
- width:100%;
- border:none;
-}
-
-div.job table td,
-div.job table th,
-table.job td,
-table.job th {
- border:none;
-}
-
-div.job table td p,
-table.job td p {
- margin:0px;
-}
-
-/* Top left cell (company and location) */
-div.job table tr:first-child td:first-child,
-table.job tr:first-child td:first-child {
- white-space:nowrap;
- color:#222;
- font-size:1.3em;
- font-weight:400;
-}
-
-/* Top right cell (duration at job) */
-div.job table tr:first-child td:last-child p,
-table.job tr:first-child td:last-child p {
- text-align:right;
- color:#777;
-}
-
-/* Bottom left cell (job title) */
-div.job table tr:last-child td:first-child p,
-table.job tr:last-child td:first-child p {
- font-size:1em;
- font-style:italic;
- color:#777;
-}
-
-/* Bottom right cell (contract) */
-div.job table tr:last-child td:last-child p,
-table.job tr:last-child td:last-child p {
- color:#555;
- font-size:1em;
- font-style:italic;
- font-weight:800;
- text-align:right;
-}
-
-div.witty-remark {
- color:#aaa;
-}
-
-div#header,
-div#header span#author,
-div#header span#email,
-div#footnotes,
-div#footer,
-div#footer div#footer-text {
- display:none;
-}
diff --git a/resume.adoc b/resume.md
index a0ea543..d96d4f3 100644
--- a/resume.adoc
+++ b/resume.md
@@ -1,38 +1,28 @@
-Resume
-======
-:author: Aaron Ball
-:email: aaronb@oper.io
-:website: https://oper.io
-:sourcecode: https://oper.io/src
-:mobile: +1 720-319-7799
-:no title:
-
-[role="resume-author-sect"]
---
-[role="resume-author-name"]
-Aaron +
-Ball
-
-[role="resume-author-contact"]
-* {email}
-* {mobile}
-* {website}
-* {sourcecode}
---
-
-
-
-PROFILE
--------
-
-* **Languages**: Bash (11 years), Python (3 years), C (3 years), Perl (4 years),
+<div class="resume-author-sect">
+<div class="resume-author-name">
+<p>Aaron</p>
+<p>Ball</p>
+</div>
+<div class="resume-author-contact">
+
+* **email**: aaronb@oper.io
+* **phone**: +1 720-319-7799
+* **www**: [https://oper.io](https://oper.io)
+* **code**: [https://oper.io/src/nullspoon](https://oper.io/src/nullspoon)
+
+</div>
+</div>
+
+# PROFILE
+
+* **Languages**: Bash (12 years), Python (3 years), C (3 years), Perl (4 years),
CSS and XHTML (8 years), PHP (versions 4 and 5 - 7 years), JavaScript (2
years)
-* **Tools**: Git (9 years), Jenkins (7 years), Ansible (7 years), Terraform (3
- years)
+* **Tools**: Git (9 years), Jenkins (7 years), Ansible (7 years), Kubernetes (3
+ years), Terraform (3 years)
-* **Linux**: 11 years - Crux, Ubuntu, CentOS, RedHat, Arch, Gentoo, and Debian
+* **Linux**: 12 years - Crux, Ubuntu, CentOS, RedHat, Arch, Gentoo, and Debian
* Proficient in Linux infrastructure automation, security, troubleshooting,
design, and management; networking design, security, analysis, and
@@ -42,32 +32,36 @@ PROFILE
infrastructure, security, and code design
-EMPLOYMENT
-----------
+# EMPLOYMENT
-[role="job"]
---
+## DataRobot
-|====
-| DataRobot, Denver, Colorado | December 2018 - present
-| Software Engineer |
-|====
+<div class="jobmeta">
+December 2018 - present
+<br />
+Senior Software Engineer
+</div>
+<!--<span class="location">Denver, Colorado</span>-->
-* Worked on Development Infrastructure team automating processes and
- infrastructure to support development, testing, monitoring, and analytics
+* **Primary operating systems**: Ubuntu Server (versions 16.04, 18.04, and
+ 20.04)
-* Automated cost metrics gathering and analysis of GitHub traffic to determine
- causes of increased costs and worked with developers to reduce those costs
- through on-system caching, sparse clones, and on-premise LFS hosting.
+* Worked on Development Infrastructure team automating processes and
+ infrastructure to support development, testing, engineering productivity,
+ security, and production operations teams.
* Scripting in Python, Bash, and Makefile to automate processes
* Worked with Ansible, Packer, and Terraform to automate system build processes
(AWS AMIs, KVM backing disks, laptops)
+* Automated cost metrics gathering and analysis of GitHub traffic to determine
+ causes of increased costs and worked with developers to reduce those costs
+ through on-system caching, sparse clones, and on-premise LFS hosting.
+
* Fully migrated a three node Artifactory cluster from EC2 to Kubernetes using
- Kustomize to manage multiple environments for testing. Upgrades and
- maintenance now occur at any time during the day with no downtime for end
+ Kustomize to manage and automate multiple environments for testing. Upgrades
+ and maintenance now occur at any time during the day with no downtime for end
users.
* Migrated all Terraform Kubernetes code away from Terraform and into
@@ -89,28 +83,23 @@ EMPLOYMENT
and testing code to be compatible with both versions.
* Automated Jenkins credential store management and synchronization across nine
- Jenkins masters.
+ Jenkins masters using Jenkins Groovy API and Python.
-* Used Terraform combined with Jenkins, GitHub webhooks, and proprietary code
- to intelligently programatically deploy and configure various AWS resources
- (EC2, ELB/ALB, EKS, Route 53, S3) and underlying software to solve day-to-day
- problems and handle varying loads
+* Used Terraform to create and ensure state of necessary underlying
+ infrastructure such as EC2, ELB/ALB, EKS, Route 53, RDS, and S3.
-* Developed automated Docker image building and testing process for several
- internal application services and migrated existing infrastructure to
- containerized infrastructure where useful to increase scalability and speed
- and decrease cost.
---
+## Jeppesen, A Boeing Company
+<div class="jobmeta">
+<i>(Contract)</i> August 2017 - October 2018
+<br />
+Software Integration Engineer
+</div>
-[role="job"]
---
+<!--<span class="location">Denver, Colorado</span>-->
-|====
-| Jeppesen, A Boeing Company, Denver, Colorado | August 2017 - October 2018
-| Software Integration Engineer | * Contract
-|====
+* **Primary operating systems**: Centos 6.9 - 7.7, RHEL 6 - 7
* Worked on the environments team supporting about 80 developers
@@ -141,17 +130,18 @@ EMPLOYMENT
* Assisted in planning and automation of migration from on-site datacenter to
Microsoft Azure.
-* Primary operating systems: Centos 6.9 - 7.7, RHEL 6 - 7
---
+## Truven Health Analytics
+
+<!--<span class="location">Denver, Colorado</span>-->
-[role="job"]
---
+<div class="jobmeta">
+January 2016 - August 2017
+<br />
+Senior Development Operations Engineer
+</div>
-|====
-| Truven Health Analytics, Denver, Colorado | January 2016 - August 2017
-| Senior Development Operations Engineer |
-|====
+* **Primary operating systems**: Centos 5.9 - 6.7, RHEL 5 - 6
* Worked as a liason between devops, configuration management, development,
production operations, and application operations teams
@@ -190,18 +180,18 @@ EMPLOYMENT
* Reduced Jenkins-triggered infrastructure deployment process from
over 300 jobs down to five jobs.
-* Primary operating systems: Centos 5.9 - 6.7, RHEL 5 - 6
---
+## Time Warner Cable
+<!-- <span class="location">Denver, Colorado</span>-->
-[role="job"]
---
+<div class="jobmeta">
+March 2015 - January 2016
+<br />
+Senior DevOps Engineer
+</div>
-|====
-| Time Warner Cable, Denver, Colorado | March 2015 - January 2016
-| Senior DevOps Engineer |
-|====
+* **Primary operating systems**: Centos 6.5 and 6.6
* Wrote a bash script to automatically upgrade the GitHub Enterprise cluster
with minimal human interraction. This also handled several workarounds to
@@ -220,17 +210,17 @@ EMPLOYMENT
* Assisted automating legacy VMWare infrastructure (54 hypervisors) to keep it
running smoothly until migration to OpenStack had been completed
-* Primary operating systems: Centos 6.5 and 6.6
---
+## CenturyLink, Inc.
-[role="job"]
---
+<!-- <span class="location">Denver, Colorado</span>-->
+<div class="jobmeta">
+<i>(Contract)</i> August 2014 - February 2015
+<br />
+Linux Engineer
+</div>
-|====
-| CenturyLink, Inc., Denver, Colorado | August 2014 - February 2015
-| Linux Engineer | * Contract
-|====
+* **Primary operating systems**: Centos 6.5, 6.6, 7, Ubuntu Server
* Deployed and managed Mapr (Hadoop distribution) for development and test
clusters
@@ -250,18 +240,15 @@ EMPLOYMENT
* Wrote Ansible playbooks to deploy and configure various types of servers
-* Worked primarily with CentOS 6.5, 6.6, 7 (a few hundred), as well a few
- one-off Ubuntu servers
---
+## Intelligent Software Solutions, Inc.
+<!-- <span class="location">Denver, Co (_* Contract_)</span>-->
-[role="job"]
---
-
-|====
-| Intelligent Software Solutions, Inc., Denver, Co | March 2014 - August 2014
-| DevOps Engineer | * Contract
-|====
+<div class="jobmeta">
+<i>(Contract)</i> March 2014 - August 2014
+<br />
+DevOps Engineer
+</div>
* Wrote chef (version 10) cookbooks (recipes, documentation, templates,
providers, resources, etc.) to deploy base tomcat instances and overlay any
@@ -273,18 +260,19 @@ EMPLOYMENT
* Built a local virtual chef development environment running on kvm, managed
with libvirt apis. VMs could be created from a template in about two to five
seconds each.
---
-[role="job"]
---
+## DaVita
+<!--<span class="location">Denver, Co</span>-->
-|====
-| DaVita, Denver, Co | October 2012 - March 2014
-| Linux/Unix Systems Engineer |
-|====
+<div class="jobmeta">
+October 2012 - March 2014
+<br />
+Linux/Unix Systems Engineer
+</div>
-* Administered AIX (5.3 and 6.1) and Linux (RedHat 4 - 6)
+* **Primary operating systems**: AIX (versions 5.3 and 6.1) and RedHat Linux
+ (versions 4 - 6)
* Standardized, consolidated, and converted team documentation from
Sharepoint Shared Documents to MediaWiki
@@ -302,32 +290,34 @@ EMPLOYMENT
* Wrote a bash script to perform automated SSH key rotation every three months
and when an employee left
---
-[role="job"]
---
-|====
-| Dish Network, Englewood, Co | January 2011 - October 2012
-| Tier II Analyst / Developer II |
-|====
+## Dish Network
+
+<!--* Englewood, Co-->
+<div class="jobmeta">
+January 2011 - October 2012
+<br />
+Tier II Analyst / Developer II
+</div>
-* Managed about 1,100 middleware application instances (WebMethods, Weblogic,
- and Apache Tomcat) running on Solaris and Linux
+* Managed over 1,000 JVM application instances (WebMethods, Weblogic, and
+ Apache Tomcat) running on Solaris and Linux
* Wrote Perl scripts to process log files, gather statistics, perform software
upgrades, manage rolling restarts, etc.
---
-[role="job"]
---
-|====
-| USDA, Fort Collins, CO | August 2010 - December 2010
-| Windows Systems Administrator | * Contract
-|====
+## USDA
+
+<!--* Fort Collins, CO -->
+<div class="jobmeta">
+<i>(Contract)</i> August 2010 - December 2010
+<br />
+Windows Systems Administrator
+</div>
* Built and configured Red Hat Enterprise Linux (version 5) web servers
tailored for each project
@@ -338,16 +328,16 @@ EMPLOYMENT
* Constructed test clusters (one controller and two test agents each) for load
testing with Visual Studio
---
-[role="job"]
---
+## AMG Creative, Inc.
-|====
-| AMG Creative, Inc., Fort Collins, CO | August 2009 - August 2010
-| Web Developer / Systems Administrator |
-|====
+<!--* Fort Collins, CO-->
+<div class="jobmeta">
+August 2009 - August 2010
+<br />
+Web Developer / Systems Administrator
+</div>
* Programmed websites on Joomla and Wordpress using PHP, JavaScript, HTML, and
CSS.
@@ -355,30 +345,28 @@ EMPLOYMENT
* Built and managed five servers (one virtual [Domain controller, file server,
terminal server, backup server], another virtual [OpenVPN], one host [VMWare
Server], one print server [Ubuntu 10.04], one backup server [Ubuntu 10.04])
---
-[role="job"]
---
+## CSU College of Business
-|====
-| CSU College of Business, Fort Collins, Co | August 2007 - October 2009
-| Web Developer / Systems Administrator |
-|====
---
+<!--* Fort Collins, Co-->
+<div class="jobmeta">
+August 2007 - October 2009
+<br />
+Web Developer / Systems Administrator
+</div>
+# EDUCATION
-EDUCATION
----------
+## Colorado State University
-[role="job"]
---
-
-|====
-| Colorado State University, Fort Collins, CO | 2007-2010
-| Bachelors in Business Administration |
-|====
+<!--Fort Collins, CO-->
+<div class="jobmeta">
+Bachelors in Business Administration
+<br />
+2007-2010
+</div>
_Concentration_: Computer information Systems
@@ -387,9 +375,8 @@ design and implementation, web application development (creating ASP.Net/C# and
Cold Fusion applications that accessed a database and used sessions), client
side application development (Visual Basic.Net), business math, marketing,
finance, accounting, and business communication.
---
-
-[role="witty-remark"]
-/* This resume was proudly generated with Asciidoctor, some clever css, and a
-Makefile */
+<div class="witty-remark">
+/* This resume was proudly generated with commonmark markdown, some clever css,
+and a Makefile */
+</div>

Generated by cgit