Compare commits
40 Commits
Author | SHA1 | Date |
---|---|---|
John Shaver | 9fde14f4ae | |
John Shaver | 4a1b1fe6cc | |
John Shaver | beb402410f | |
John Shaver | 6fb047a229 | |
John Shaver | 983330ebe9 | |
John Shaver | a66db0da6e | |
John Shaver | e51f964a64 | |
John Shaver | 0e727bae2e | |
John Shaver | dee7a1cacd | |
John Shaver | 4071bae2ce | |
John Shaver | a9b9612254 | |
John Shaver | 9c0209fe1d | |
John Shaver | 456ce9fc14 | |
John Shaver | 6fb8326c21 | |
John Shaver | ad335e347c | |
John Shaver | 0a6fa7499d | |
John Shaver | 8e92bcdbc3 | |
John Shaver | 7941604f84 | |
John Shaver | 88d71f1f4f | |
John Shaver | 66d7cd6221 | |
John Shaver | b516c3eca0 | |
John Shaver | 2be88b402e | |
John Shaver | 221cafa499 | |
John Shaver | c9cb70de57 | |
John Shaver | f329401355 | |
John Shaver | cc81e46307 | |
John Shaver | e5eadd8c73 | |
John Shaver | 228cf44e34 | |
John Shaver | 3dedf41107 | |
John Shaver | 53b81c2384 | |
John Shaver | 8f86cb49eb | |
John Shaver | 93c01754b8 | |
John Shaver | ae883a4f7c | |
John Shaver | df22590a11 | |
John Shaver | d09c70c2a6 | |
John Shaver | a308dce166 | |
John Shaver | a8a24d31c3 | |
John Shaver | 4aefd44710 | |
John Shaver | cfab74acba | |
John Shaver | b125ba364b |
|
@ -0,0 +1,86 @@
|
|||
kind: pipeline
|
||||
type: docker
|
||||
name: deploy-staging
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
exclude:
|
||||
- master
|
||||
event:
|
||||
- push
|
||||
|
||||
steps:
|
||||
- name: build-resume
|
||||
image: jshaver/root-browserless-chrome
|
||||
commands:
|
||||
- git submodule init
|
||||
- git submodule update --recursive --remote
|
||||
- sleep 25
|
||||
- "google-chrome --headless --enable-logging=stderr -v=1 --no-sandbox --disable-gpu --run-all-compositor-stages-before-draw --virtual-time-budget=20000 --print-to-pdf='./John-Shaver-Resume-2021.pdf' http://resume:8080/"
|
||||
- chmod 644 ./John-Shaver-Resume-2021.pdf
|
||||
- name: deploy
|
||||
image: drillster/drone-rsync
|
||||
settings:
|
||||
hosts:
|
||||
- jshaver.net
|
||||
user: deploy
|
||||
key:
|
||||
from_secret: deploy-key
|
||||
source: ./
|
||||
target: /var/www/jshaver_net/stage/${DRONE_BRANCH}/resume
|
||||
prescript:
|
||||
- mkdir -p /var/www/jshaver_net/stage/${DRONE_BRANCH}/resume
|
||||
recursive: true
|
||||
args: "-v --files-from=deploy-list.txt"
|
||||
|
||||
services:
|
||||
- name: resume
|
||||
image: node
|
||||
commands:
|
||||
- 'echo "running the command"'
|
||||
- "npx http-server"
|
||||
|
||||
---
|
||||
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: deploy-master
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
event:
|
||||
- push
|
||||
|
||||
steps:
|
||||
- name: submodules
|
||||
image: alpine/git
|
||||
commands:
|
||||
- git submodule update --recursive --remote
|
||||
- name: build-resume
|
||||
image: jshaver/root-browserless-chrome
|
||||
commands:
|
||||
- git submodule init
|
||||
- git submodule update --recursive --remote
|
||||
- sleep 25
|
||||
- "google-chrome --headless --no-sandbox --disable-gpu --run-all-compositor-stages-before-draw --print-to-pdf='./John-Shaver-Resume-2021.pdf' http://resume:8080/ --virtual-time-budget=10000;"
|
||||
- chmod 644 ./John-Shaver-Resume-2021.pdf
|
||||
- name: deploy
|
||||
image: drillster/drone-rsync
|
||||
settings:
|
||||
hosts:
|
||||
- jshaver.net
|
||||
user: deploy
|
||||
key:
|
||||
from_secret: deploy-key
|
||||
source: ./
|
||||
target: /var/www/jshaver_net/resume
|
||||
recursive: true
|
||||
args: "-v --files-from=deploy-list.txt"
|
||||
|
||||
services:
|
||||
- name: resume
|
||||
image: node
|
||||
commands:
|
||||
- "npx http-server"
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
FROM browserless/chrome
|
||||
USER root
|
||||
CMD ["ls", "-la"]
|
|
@ -0,0 +1,7 @@
|
|||
./style.css
|
||||
index.html
|
||||
./John-Shaver-Resume-2021.pdf
|
||||
./dep/normalize.css/normalize.css
|
||||
./dep/Font-Awesome/css/all.css
|
||||
./dep/Font-Awesome/webfonts/fa-brands-400.woff2
|
||||
./dep/Font-Awesome/webfonts/fa-solid-900.woff2
|
74
index.html
74
index.html
|
@ -31,35 +31,42 @@
|
|||
<section id="main">
|
||||
<header id="title">
|
||||
<h1>John Shaver</h1>
|
||||
<span class="subtitle">Full-Stack Engineer and Devops Enthusiast</span>
|
||||
<span class="subtitle">Full-Stack Engineer</span>
|
||||
</header>
|
||||
<!--
|
||||
<section class="main-block summary">
|
||||
<p>I'm a fullstack engineer with experience troubleshooting </p>
|
||||
</section>
|
||||
-->
|
||||
<section class="main-block">
|
||||
<h2>
|
||||
<i class="fa fa-suitcase"></i> Experiences
|
||||
</h2>
|
||||
<section class="blocks">
|
||||
<div class="date">
|
||||
<span>present</span><span>2017</span>
|
||||
<span>present</span><span>2019</span>
|
||||
</div>
|
||||
<div class="decorator">
|
||||
</div>
|
||||
<div class="details">
|
||||
<header>
|
||||
<h3>Technical Co-founder</h3>
|
||||
<span class="place"><a href="https:/ppl.family/">ppl :)</a></span>
|
||||
<span class="location fa">Remote (Provo, UT)</span>
|
||||
<h3>Software Engineer III and Lead Developer for Skillabi</h3>
|
||||
<span class="place"><a href="https:/economicmodeling.com/">Emsi/BurningGlass</a></span>
|
||||
<span class="location fa">Moscow, ID</span>
|
||||
</header>
|
||||
<div>
|
||||
<ul>
|
||||
<li>Building a home server to replace the ever expanding list of "cloud" services relied upon by today's family.</li>
|
||||
<li>Developing authentication protocols and network stack to support secure collection, access and sharing.</li>
|
||||
<li>Worked with a team to successfully develop Skillsmatch MVP.</li>
|
||||
<li>Worked with a team on multiple iterations of the Skillabi Prototype.</li>
|
||||
<li>Lead the Skillabi team to develop and release the Skillabi MVP</li>
|
||||
<li>Currently the technical lead continuing development on the Skillabi App</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="blocks">
|
||||
<div class="date">
|
||||
<span>present</span><span>2014</span>
|
||||
<span>2019</span><span>2014</span>
|
||||
</div>
|
||||
<div class="decorator">
|
||||
</div>
|
||||
|
@ -72,7 +79,7 @@
|
|||
<div>
|
||||
<ul>
|
||||
<li>Design, implement and ship web based software to fit customer needs.</li>
|
||||
<li>This included: rest APIs, modern SPA interfaces, automating deployments and developer environments, OAuth2/OIDC authentication, implementing secure RPC calls over UDP, and much more.</li>
|
||||
<li>This included: rest APIs, modern SPA interfaces, automating deployments and developer environments, OAuth2/OIDC authentication, etc.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -98,6 +105,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!--
|
||||
<section class="blocks">
|
||||
<div class="date">
|
||||
<span>2013</span><span>2012</span>
|
||||
|
@ -118,6 +126,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</section>
|
||||
-->
|
||||
</section>
|
||||
<section class="main-block">
|
||||
<h2>
|
||||
|
@ -125,42 +134,41 @@
|
|||
</h2>
|
||||
<section class="blocks">
|
||||
<div class="date">
|
||||
<span>2018</span>
|
||||
<span>2021</span>
|
||||
</div>
|
||||
<div class="decorator">
|
||||
</div>
|
||||
<div class="details">
|
||||
<header>
|
||||
<h3>Telebit</h3>
|
||||
<span class="place"><a href="https://telebit.cloud">https://telebit.cloud</a></span>
|
||||
<h3>Skillabi</h3>
|
||||
<span class="place"><a href="https://skillabi.com">https://skillabi.com</a></span>
|
||||
</header>
|
||||
<div>
|
||||
<ul>
|
||||
<li>Implemented design specification in HTML/CSS and Javascript.</li>
|
||||
<li>Developed the email confirmation process from working prototype to production.</li>
|
||||
<li>Working to develop a cross platform electron implementation of the Telebit client interface.</li>
|
||||
<li>Lead the development of the Skillabi from prototype to scalable production ready application.</li>
|
||||
<li>Design and develop role-based, per-user authorization on top of AWS Cognito to keep customer data secure.</li>
|
||||
<li>Design and lead development and documenation of new API for storing customer data that is searchable, filterable, and secure.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="blocks">
|
||||
<div class="date">
|
||||
<span>2017</span>
|
||||
<span>2019</span>
|
||||
</div>
|
||||
<div class="decorator">
|
||||
</div>
|
||||
<div class="details">
|
||||
<header>
|
||||
<h3>Historical Records Database</h3>
|
||||
<span class="place">Not yet public.</span>
|
||||
<h3>SkillsMatch</h3>
|
||||
<span class="place"><a href="https://match.emsiskills.com">https://match.emsiskills.com</a></span>
|
||||
</header>
|
||||
<div>
|
||||
<ul>
|
||||
<li>Converted the historical records database from MS Access to MySQL.</li>
|
||||
<li>Built an interface for searching the records in the database and finding information.</li>
|
||||
<li>User authentication to allow specified users to add/edit records to/in the database.</li>
|
||||
<li>User interface for adding/editing/deleting records by authenticated users.</li>
|
||||
<li>Administration interface for administrators to add/create users.</li>
|
||||
<li>Worked on a team developing an MVP SAAS for to help adults coming back to school to find a path to their new career</li>
|
||||
<li>A react/redux front-end that interfaces with several APIs and micro-services</li>
|
||||
<li>Implement CI/CD via cypress, ava, and terraform on Codeship.com</li>
|
||||
<li>We built several micro services and an API on AWS lambdas managed by serverless.js</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -191,9 +199,10 @@
|
|||
</section>
|
||||
<aside id="sidebar">
|
||||
<div class="control-buttons no-print">
|
||||
<a class="print-button" target="_blank" href="John-Shaver-Resume-2018.pdf"><i class="fas fa-print"></i></a>
|
||||
<a class="download-button no-print" href="John-Shaver-Resume-2018.pdf" download><i class="fas fa-file-download"></i></a>
|
||||
<a class="print-button" target="_blank" href="John-Shaver-Resume-2021.pdf"><i class="fas fa-print"></i></a>
|
||||
<a class="download-button no-print" href="John-Shaver-Resume-2021.pdf" download><i class="fas fa-file-download"></i></a>
|
||||
</div>
|
||||
<div>
|
||||
<div class="side-block" id="contact">
|
||||
<h1>
|
||||
Contact Info
|
||||
|
@ -211,14 +220,7 @@
|
|||
Skills
|
||||
</h1>
|
||||
<ul>
|
||||
<li></li>
|
||||
<li>Troubleshooting</li>
|
||||
<li>Self Motivation</li>
|
||||
<li>Functional Programming</li>
|
||||
<li>Effective Communication</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><i class="fab fa-js fa-fw"></i> Javascript</li>
|
||||
<li><i class="fab fa-js-square fa-fw"></i> Javascript</li>
|
||||
<li>
|
||||
<i class="fab fa-fw">
|
||||
<svg class="ts-logo" viewBox="0 0 630 630">
|
||||
|
@ -226,11 +228,12 @@
|
|||
</svg></i> Typescript
|
||||
</li>
|
||||
<li><i class="fab fa-react fa-fw"></i> React</li>
|
||||
<li><i class="fas fa-rocket fa-fw"></i> express.js</li>
|
||||
<li><i class="fab fa-node fa-fw"></i> node.js</li>
|
||||
<li><i class="fas fa-database fa-fw"></i> Relational Databases</li>
|
||||
<li><i class="fab fa-linux fa-fw"></i> Linux</li>
|
||||
<li><i class="fas fa-code-branch fa-fw"></i> git</li>
|
||||
<li><i class="fas fa-globe fa-fw"></i> Terraform</li>
|
||||
<li><i class="fab fa-aws fa-fw"></i> AWS</li>
|
||||
<li><i class="fas fa-bolt fa-fw"></i> Serverless.js</li>
|
||||
<li><i class="fab fa-docker fa-fw"></i> Docker</li>
|
||||
<!-- <li><i class="fas fa-user-ninja fa-fw"></i> nunchuck</li> -->
|
||||
</ul>
|
||||
|
@ -259,6 +262,7 @@
|
|||
<div class="source-link no-print">
|
||||
source code: <a href="https://git.jshaver.net/jshaver/html-resume">https://git.jshaver.net/jshaver/html-resume</a>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#! /bin/sh
|
||||
|
||||
npx http-server &
|
||||
sleep 6;
|
||||
chromium --headless --disable-gpu --run-all-compositor-stages-before-draw --print-to-pdf="./John-Shaver-Resume-2018.pdf" http://localhost:8080/ --virtual-time-budget=10000;
|
||||
sleep 2;
|
||||
chromium --headless --disable-gpu --run-all-compositor-stages-before-draw --print-to-pdf="./John-Shaver-Resume-`date +"%Y"`.pdf" http://localhost:8080/ --virtual-time-budget=10000;
|
||||
kill %1;
|
||||
exit;
|
||||
|
||||
|
|
19
style.css
19
style.css
|
@ -53,7 +53,7 @@ li{
|
|||
float: left;
|
||||
width: var(--main-width);
|
||||
padding: 2.7rem 2.7rem 0 2.7rem;
|
||||
font-size: 1.124972rem;
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
#sidebar{
|
||||
|
@ -101,6 +101,12 @@ li{
|
|||
margin-top: 2.7rem;
|
||||
}
|
||||
|
||||
.main-block.summary{
|
||||
text-align: center;
|
||||
font-size: 1.4rem;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#main h2{
|
||||
position: relative;
|
||||
top: var(--row-blocks-padding-top);
|
||||
|
@ -242,6 +248,7 @@ li{
|
|||
|
||||
.details h3{
|
||||
font-size: 1.349966rem;
|
||||
margin-bottom: 0.2rem;
|
||||
}
|
||||
|
||||
.main-block:not(.concise) .details div{
|
||||
|
@ -324,10 +331,14 @@ li{
|
|||
#sidebar h1{
|
||||
font-weight: 400;
|
||||
font-size: 1.649959rem;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.side-block:first-child{
|
||||
margin-top: 7rem;
|
||||
}
|
||||
.side-block{
|
||||
margin-top: 6.5rem;
|
||||
margin-top: 8.2rem;
|
||||
}
|
||||
|
||||
#contact ul{
|
||||
|
@ -345,7 +356,7 @@ li{
|
|||
}
|
||||
|
||||
.skills{
|
||||
line-height: 1.5;
|
||||
line-height: 1.7;
|
||||
}
|
||||
|
||||
.skills ul{
|
||||
|
@ -397,7 +408,7 @@ body > *{
|
|||
|
||||
|
||||
.recommendation {
|
||||
margin: 1.5em 0.0rem;
|
||||
margin-bottom: 1.5rem;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue