From 7083a0e1c2c959a8d8b32ff4ab348544d1b11050 Mon Sep 17 00:00:00 2001 From: John Shaver Date: Fri, 14 Apr 2017 00:53:18 -0700 Subject: [PATCH] Did some more work. --- css/main.css | 55 +++++++++++++++ images/GitHub-Mark-64px.png | Bin 0 -> 2625 bytes images/Github-Logo.png | Bin 0 -> 4092 bytes images/PayZoom_logo.png | Bin 0 -> 18465 bytes images/newvistas.jpg | Bin 0 -> 40055 bytes index.html | 136 +++++++++++++++++++++++------------- 6 files changed, 142 insertions(+), 49 deletions(-) create mode 100644 css/main.css create mode 100644 images/GitHub-Mark-64px.png create mode 100644 images/Github-Logo.png create mode 100644 images/PayZoom_logo.png create mode 100644 images/newvistas.jpg diff --git a/css/main.css b/css/main.css new file mode 100644 index 0000000..00f87e6 --- /dev/null +++ b/css/main.css @@ -0,0 +1,55 @@ +/* just an empty stylesheet */ +.flex-container { + width: 6.5in; + max-width: 90%; + margin: 0 auto; +} + +body {font-family: Tahoma, sans-serif;} + +h1, h2 { + text-align: center; +} + +header { + text-align: center; +} + +h1 { + font-size: 1.6rem; +} + +h2 {font-size: 1.45rem;font-weight: normal;} + +h3 { + font-size: 1.3rem; + font-weight: normal; +} + +p {} + +p.attention { + text-align: center; + font-style: italic; +} + +h4 { + font-weight: normal; +} + +div {} + +img.project-image {max-width: 30%;} + +.project { + display: flex; + align-self: center; +} + +.project.img {} + +.project-image {width: 140%;} + +.project-image > img { + max-width: 100%; +} \ No newline at end of file diff --git a/images/GitHub-Mark-64px.png b/images/GitHub-Mark-64px.png new file mode 100644 index 0000000000000000000000000000000000000000..182a1a3f734fc1b7d712c68b04c29bad9460d6cd GIT binary patch literal 2625 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 + Javascipt Developer - Portfolio +
- Image of John's head. + Image of John's head.

John Shaver - Web Developer

@@ -12,82 +14,118 @@

About Me

-

I am currently looking for a full-time remote position (frontend - or fullstack) working with a team on an interesting product - leveraging a modern framework (React.js preferred).

+

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.

-

In highschool studied Computer Networking Systems and Computer - Programming part time at the naerby Occupation Skills Center. Since +

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. + working on web based software seemed an obvious choice.

-

I started with 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. My hobbies include Devops, listening to podcasts - and, especially, spending time with my wife and 3 kids. +

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.

Recent Software Projects

-
-

NewVistas Website

- -
+

NewVistas Website Platform

+
+ +

Project Goals

-

Technological Details

-

Challenges

+

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. +

Technologies Used

+

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.

+

My Contributions

+

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.

-
-

Payzoom

- -
+

Payzoom

+
+ +

Project Goal

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.

-

Technological Details

+

Technologies Used

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.

-

Major Contributions

+

My Contributions

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 reconsile expense data and documentation to + code to send and reconcile expense data and documentation to QuickBooksOnline.

-

While working on the project I improved the - dev enviornment from one that required a new developer to spend 2 - days build a permanent virtualbox environemnt to an ephemeral - environment in Vagrant that could be setup in less than 20min.

+

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.

-
-

- -
+

Novatek Native Wrapper App

+
+ +

Project Goals

-

Technological Details

-

Challenges

-

Code Samples

-

-
-
-
-

- -
-

Project Goals

-

Technological Details

-

Challenges

-

Code Samples

-

+

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.

+

Technologies Used

+

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. +

My Contrinbutions

+

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.