Image of John's head.

John Shaver - Web Developer

About Me

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

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 Platform

Project Goals

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

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.

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.

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

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

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.