diff options
-rw-r--r-- | Makefile | 42 | ||||
-rw-r--r-- | hooks/post-receive | 2 | ||||
-rw-r--r-- | res/style-header.css | 53 | ||||
-rw-r--r-- | res/style-markdown.css | 100 | ||||
-rw-r--r-- | resume.css | 226 | ||||
-rw-r--r-- | resume.md (renamed from resume.adoc) | 285 |
6 files changed, 299 insertions, 409 deletions
@@ -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; -} @@ -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> |