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 0000000..182a1a3 Binary files /dev/null and b/images/GitHub-Mark-64px.png differ diff --git a/images/Github-Logo.png b/images/Github-Logo.png new file mode 100644 index 0000000..2e7f365 Binary files /dev/null and b/images/Github-Logo.png differ diff --git a/images/PayZoom_logo.png b/images/PayZoom_logo.png new file mode 100644 index 0000000..731db23 Binary files /dev/null and b/images/PayZoom_logo.png differ diff --git a/images/newvistas.jpg b/images/newvistas.jpg new file mode 100644 index 0000000..6a13920 Binary files /dev/null and b/images/newvistas.jpg differ diff --git a/index.html b/index.html index 02c05da..076a5bb 100644 --- a/index.html +++ b/index.html @@ -1,10 +1,12 @@ + 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.