portfolio/index.html

134 lines
6.5 KiB
HTML

<head>
<link rel="stylesheet" href="css/main.css" />
<title>Javascipt Developer - Portfolio</title>
</head>
<body>
<div class="flex-container">
<header>
<a href="">
<img class="headshot" alt="Image of John's head." src="images/headshot-round-200.jpg" srcset="" />
</a>
<h1>John Shaver - Web Developer</h1>
<div class="social-links"></div>
</header>
<article>
<section>
<h2>About Me</h2>
<p class="attention">I am currently looking for a full-time remote
position (frontend or fullstack) working with a team in a modern
framework (preferably with React) to build or improve an interesting and
purposeful project.</p>
<p>In high school studied Computer Networking Systems and Computer
Programming part time at the nearby Occupation Skills Center. Since
then I have been working with computers and teaching myself Software
Development. I spent 7 years working in various Technical Support
roles where I learned an in-depth understanding of various internet and
server technologies so when I shifted my career to software development,
working on web based software seemed an obvious choice.</p>
<p>I was hired to do web development at a consultancy in 2013. Since
2014, I have been a freelance developer working with NodeJS and
javascript and more recently React/Redux. I enjoy learning new things,
solving difficult problems and building software that assists my
clients/users in achieving success. I live in Hayden Idaho and my
hobbies include Devops, listening to podcasts, playing ukulele and,
especially, spending time with my wife and 3 kids.</p>
</section>
<section>
<h2>Recent Software Projects</h2>
<h3>NewVistas Website Platform</h3>
<div class="project">
<!--<div>
<img class="project-image" src="images/newvistas.jpg"/>
</div>-->
<div class="project-info">
<h4>Project Goals</h4>
<p>Newvistas needed a platform to replace their old website for
both public-facing web content, encouraging communication between
users and managing deliverables from business managers. The The
new platform needed to allow managing owners to log into the
website to update content relevant to their role. The platform
needed to be easily deployable on multiple websites and allow for
fast style customization between sites by the maintaining
developer.
<h4>Technologies Used</h4>
<p>The backend was a rest API built with Node.js and Express.js.
The front end was an isomorphically rendered SPA built wth
React.js paired with Redux to manage state. Administrators
authenticated with their AzureAD user via OpenID Connect.
Content was isomorphically rendered on the server to allow for
SEO and speedy load times. The development environment was run
in vagrant with virtual box and babel and weback were used to
compile and bundle the front end code. The app was designed to
run on ephemeral ec2 instances and deployed to AWS Elastic
Beanstalk to allow for scalability.</p>
<h4>My Contributions</h4>
<p>I was the only developer assigned to work on the project and
developed it myself, so I built the rest api and the frontend SPA
but my work also included designing the dev environment to be
quickly and easily redeployed with a clean slate for testing.
The build process was designed to ensure deployed code was
optimized and cross-browser compatible while allowing for the
latest libraries and language improvements to be used and the I
designed the deploy process to be easy and quickly deployed or
reverted with a greatly reduced chance of human error than
previous deploy processes the client had used in the past.</p>
</div>
</div>
<h3>Payzoom</h3>
<div class="project">
<!--<div class="project-image">
<img alt="The Payzoom Logo" src="images/PayZoom_logo.png"/>
</div>-->
<div class="project-info">
<h4>Project Goal</h4>
<p>Payzoom is a SAAS that allows a community of small businesses and
funding entities to work together to get funding work for each other
and balance all the payments at the end of the week including paying
employees, contractors, services fees, and expenses.</p>
<h4>Technologies Used</h4>
<p>When I was working on payzoom it was built with NodeJS and MySQL
on the backend and a custom built web-based frontend. Communication
between server and web was done via websockets and a JSON api. The
backend had to communicate with Gusto(ZenPayroll) and
QuickBooksOnline APIs. </p>
<h4>My Contributions</h4>
<p>I wrote the initial payroll integration with ZenPayroll to gather
weekly totals and pass the information to ZenPayroll as well as the
code to send and reconcile expense data and documentation to
QuickBooksOnline.</p>
<p>While working on the project I improved the dev enviornment
from one that required 2 days for a developer to build a
permanent virtualbox image to an ephemeral environment in
Vagrant that could be setup in less than 20min.</p>
</div>
</div>
<h3>Novatek Native Wrapper App</h3>
<div class="project">
<!--<img class="project-image" src="images/wrapper.png" />-->
<div class="project-info">
<h4>Project Goals</h4>
<p>They had an SPA that already had a mobile view, but they wanted
it to operate more like an app and have access to the phone camera,
bluetooth, geofencing, etc. with a native work flow. They wanted an
app built to allow this while reusing the existing mobile website
as much as possible.</p>
<h4>Technologies Used</h4>
<p>This was before phonegapp was in much use so they went with a
wrapper app that wrapped the webview and exposed the phone APIs to the
website via messages sent betwen javascript and the Objective C
code. A javascript library was built that provided an event based
api to easier access hte phone functions.
<h4>My Contrinbutions</h4>
<p>I came onto the project later and helped write alot of the api
code for the javascript library. I also helped out with deploying
the app to the app store and did some simple maintenance on the
Objective C codebase. I also wrote the backend and Objective C code
necessary to facilitate push notifications.</p>
</div>
</div>
</section>
</article>
</body>