Software Architect & Developer

Summary

Highly motivated, result driven Architect and Lead Developer with 20+ years of experience helping businesses identify challenges/opportunities and develop practical solutions through the use of technology.

Extensive experience in the development of highly-complex state-of-the-art software solutions in n-tier architecture environment and of architectural frameworks/patterns, application integration, processes, standards, and guidelines.

Extensive experience in analysis, design, development, and implementation of large-scale high transaction and high-performance JEE Architecture systems.

Proficient in Full Stack application architecture, design and development to augment server-side expertise for successful integration of both layers.

Excellent interpersonal skills, ability, and experience to lead a project and team through the full SDLC of project architecture/design/development to deliver high-quality products in a timely manner.

Experience in applying best practices, design patterns, strategies and documentation to Enterprise applications to ensure efficient design, code, and architecture. Ensures light coupling, maximum performance, and reduced maintenance/extensibility risks.

Excellent coding and analytical skills, and debugging and problem-solving skills. Highly organized, detail-oriented and process driven.

A technologist at heart, I love to work on complex, challenging, innovative projects and actively embrace new tools and technologies.

Experience

Johnvincent.io

Software Architect & Full Stack Developer

Johnvincent.io

January 2018 - Current

A Task Management Productivity application, TaskMuncher is a fully responsive, Progressive Web Application (PWA) built on the MERN stack using React, Redux, Material-UI, Node, Express, and MongoDB.

johnvincent.io is my home website, describing my Services, Portfolio and Blog. It is a responsive, Progressive Web Application built using Gatsby, React, GraphQL, Markdown, Styled Components, HTML5, CSS3, SASS, Webpack, Jest, and Enzyme.

Thinkful

Full Stack Development

Thinkful

January 2017 - August 2018

Feediator is a fully responsive and mobile ready web-based RSS Feed Aggregator. Feediator is built using HTML5, CSS3, SASS, jQuery, Handlebars, Node, Express, and MongoDB.

jekyll.johnvincent.io is the V1 version of my Website featuring a Portfolio and Blog. It is built using Jekyll, HTML5, CSS3, Bootstrap, SASS, and jQuery.

Hertz

Senior E-Commerce Architect / Technical Team Lead

Hertz

February 2005 - May 2015

Architect and Lead Developer, managing all technical aspects of the build and rollout of a new, feature-rich corporate, Rental Equipment website that resulted in a 68% increase in rental revenue.

Architect and Lead Developer, managing all technical aspects of the build and rollout of an automated application to find and report database replication issues. Resulted in client reported issues being reduced to zero.

Architect and Lead Developer for 2 SPAs using Backbone, HTML5, CSS3, JavaScript, jQuery, Jasmine, Responsive, SASS, Java Restful Web Services, and Adobe AEM.

Led hertz.com migration to latest versions of JEE, Java, DB2, and WebSphere.

Projects

Home Website

Home Website

September 2019 - Current

My home website featuring my Services, Portfolio and Blog.

See Home Website Overview for more details.

Client Technologies

Gatsby, React, Progressive Web App, GraphQL, Markdown, Styled Components, HTML5, CSS3, SASS, Webpack, Jest, Enzyme, Eslint, Prettier, and Balsamiq.

Production Deployment

Digital Ocean, Ubuntu, Nginx, SSL certificates, and PM2.

TaskMuncher

TaskMuncher

October 2017 – Current

A Task Management Productivity application, TaskMuncher is a fully responsive, Progressive Web Application (PWA) built on the MERN stack using React, Redux, Material-UI, Node, Express, and MongoDB.

Use TaskMuncher to organize and keep track of everything so you can get it all done and enjoy more peace of mind.

See TaskMuncher Overview for more details.

Client Technologies

Progressive Web Application, React, React DnD, React Router, Material-UI, Redux, Redux Devtools, Styled Components, HTML5, CSS3, SASS, Webpack, Jest, Enzyme, Eslint, Prettier, and Balsamiq.

Server Technologies

Node, Express, Mongo, Mongoose, JWT, JOI, Mocha, Chai, Winston, Morgan, Nodemailer, Gmail OAuth 2, Google Authentication, JS Doc, Eslint, and Prettier.

Production Deployment

Digital Ocean, AWS, Ubuntu, Nginx, SSL certificates, Node, Npm, Mongo, and PM2.

MyTunes

MyTunes

April 2019 – Current

MyTunes is a folder music player.

MyTunes is the easiest way to play music stored on your local drive.

Use MyTunes to organize your music any way you prefer.

See MyTunes Overview for more details.

Client Technologies

Progressive Web Application, React, Material-UI, Redux, Styled Components, HTML5, CSS3, SASS, Webpack, Jest, Enzyme, Eslint, Prettier, and Balsamiq.

Server Technologies

Node, Express, JOI, Mocha, Chai, Winston, Morgan, JS Doc, Eslint, and Prettier.

Production Deployment

Digital Ocean, Ubuntu, Nginx, SSL certificates, Node, Npm, and PM2.

Gomoku

Gomoku

May 2020 – Current

Gomoku is a responsive, Progressive Web application version of the popular Gomoku game built using React.

Players alternate turns to place a stone of their color on an empty square.

The winner is the first player to form an unbroken chain of five stones horizontally, vertically, or diagonally.

See Gomoku Overview for more details.

Client Technologies

Progressive Web Application, React, Redux, HTML5, CSS3, SASS, Webpack, Jest, Enzyme, Eslint, Prettier, and Balsamiq.

Server Technologies

Spring Boot, Java, Maven, and Eclipse.

Production Deployment

Digital Ocean, Ubuntu, Nginx, SSL certificates, Npm, and PM2.

Hangman

Hangman

March 2020 – April 2020

Hangman is a responsive, Progressive Web application version of the popular Hangman game built using React.

See Hangman Overview for more details.

Client Technologies

Progressive Web Application, React, Redux, HTML5, CSS3, SASS, Webpack, Jest, Enzyme, Eslint, Prettier, and Balsamiq.

Server Technologies

Node, Express, JOI, Mocha, Chai, Winston, Morgan, JS Doc, Eslint, and Prettier.

Production Deployment

Digital Ocean, Ubuntu, Nginx, SSL certificates, Node, Npm, and PM2.

Yahtzee

Yahtzee

February 2020

Yahtzee is a responsive, Progressive Web application version of the popular Yahtzee game built using React.

See Yahtzee Overview for more details.

Client Technologies

Progressive Web Application, React, HTML5, CSS3, SASS, Webpack, Jest, Enzyme, Eslint, Prettier, and Balsamiq.

Production Deployment

Digital Ocean, Ubuntu, Nginx, SSL certificates, Node, Npm, and PM2.

Lights Out

Lights Out

December 2019

Lights Out is a responsive, Progressive Web application version of the popular Lights Out game built using React.

See Lights Out Overview for more details.

Client Technologies

Progressive Web Application, React, HTML5, CSS3, SASS, Webpack, Jest, Enzyme, Eslint, Prettier, and Balsamiq.

Production Deployment

Digital Ocean, Ubuntu, Nginx, SSL certificates, Node, Npm, and PM2.

Github Helper

Github Helper

June 2019

Github helper is a responsive, progressive web application that provides useful information about Github users.

It is built using React, HTML5, CSS3 and SASS. It is deployed to Digital Ocean using Ubuntu and Nginx.

See Github Helper Overview for more details.

Feediator

Feediator

May 2017 – August 2017

Feediator is a web-based RSS Feed Aggregator. Keep up to date with the latest news from the publications you trust. Follow blogs from the movers, shakers, and thinkers.

See Feediator Overview for more details.

Client Technologies

HTML5, CSS3, SASS, jQuery, Handlebars, x-editable, fully responsive, and mobile ready.

Server Technologies

Node, Express, Mongo, Mongoose, Joi, Mocha, Chai, Winston, Morgan, JWT, Handlebars, Gmail OAuth 2, JS Doc, Facebook and Google Authentication.

Production Deployment

Deployed by Travis to Heroku and Digital Ocean, Ubuntu, Nginx, SSL certificates, Node, Npm, Mongo, and PM2.

Home Website (v1)

Home Website (v1)

March 2017 – August 2019

The website describes my Services, Portfolio and Blog.

See Home Website (v1) Overview for more details.

Client Technologies

Jekyll, Markdown, HTML5, CSS3, SASS, Bootstrap, Javascript, and jQuery.

Production Deployment

Digital Ocean, Ubuntu, Nginx, SSL certificates, and PM2

A website to display internet resources I have found very useful in my roles as an Architect and a JavaScript Full Stack Developer.

It is built using Bootstrap, HTML5, CSS3, SASS, jQuery, JavaScript and is deployed to Digital Ocean using Ubuntu and Nginx.

A magnificent art museum and collection at your fingertips.

See some of the wonders of the art world.

It is built using HTML5, CSS3, SASS, JavaScript, jQuery and is deployed to Digital Ocean.

See Rijksmuseum Collection Overview for more details.

Peg Solitaire

Peg Solitaire

April 2017

Play Peg Solitaire with this web-based implementation.

Drag and drop with helpful hints or let the game show you solutions.

See Peg Solitaire Overview for more details.

Client Technologies

HTML5, CSS3, SASS, JavaScript, and jQuery.

Server Technologies

Spring Boot, Java, Maven, and Eclipse

Production Deployment

Digital Ocean, Ubuntu, Nginx, SSL certificates, and PM2.

Sudoku

Sudoku

September 2016 – October 2016

Play Sudoku Solver and Generator.

It is built using Java Swing.

See Sudoku Overview for more details.

Gomoku

Gomoku

April 2016 – May 2016

Play Gomoku (Five in a Row).

It is built using Java Swing.

See Gomoku Overview for more details.

File Compare Tool

File Compare Tool

February 2016 – March 2016

Recursively Compare Directories.

It is built using Java Swing.

See File Compare Tool Overview for more details.

File Explorer

File Explorer

September 2015

Explore the contents of a file.

It is built using Java Swing.

See File Explorer Overview for more details.

Visual Grep

Visual Grep

June 2015

Visual Grep Utility, simplifying the search.

It is built using Java Swing.

See Visual Grep Overview for more details.

Hertz Equipment Rental Website

Hertz Equipment Rental Website

February 2005 – May 2015

Senior Architect, Team Leader and Lead Developer of a rental equipment website. A feature-rich application suite which among its many features allows members and retail users to reserve and/or buy rental equipment. It integrates with internally hosted counter systems for real-time customer and equipment information, rental rates and reservations for the US and other countries, real-time customer financial reporting, fleet management and reporting, KPI and up-to-date equipment sales information. An Administration web application manages all aspects of the application including users and groups, privileges, user data, equipment, and accounts. The Batch Job Scheduler web application manages a large number of batch jobs that are an integral part of the application suite. Fully localized and weighs in at over 1 million lines of code.

Specific responsibilities include

  • Managing a team of 4 – 10+ people.
  • Providing primary Architecture and Technical Leadership roles.
  • Lead Developer.
  • Provided Subject Matter Expertise with regard to the core application and integration.
  • Led business requirements and technical specification efforts.

Client Technologies

HTML, SASS, CSS, Media Queries, JavaScript, jQuery, Backbone, Responsive, Mobile ready.

Server Technologies

JEE, Java, Spring, Struts, Hibernate, EJB, JSP, JSTL, JDBC, DB2, LDAP, Web Services, Tiles, Jacl, Log4j, jUnit, Cactus, Quartz, Jasper, Lucene, Freemarker, XML, XSD, Swing

Development Environment

RAD, Eclipse, Ant, Maven, Git, SourceTree

Production Deployment

WebSphere, Apache, and Akamai.

DB2 Data Replication Checker

DB2 Data Replication Checker

April 2014 – May 2014

DB2 data is replicated between 3 data centers. Reports from users of data loss would be received. Each report would have to be investigated and resolved, taking large amounts of development time. A replication problem that is not immediately resolved can spiral into a large data loss. Replication problems were frequent and only apparent when reported by a user. A quality and cost problem.

Designed and built an application that retrieved all data by Database table from each of the data centers and compared them. Any differences were reported to the job log. Implemented as a job run by the new Job Scheduler where any failed job would immediately notify web operations of a failure.

Any replication problem was immediately reported to web operations and the DBAs who were able to quickly make a fix.

Technologies

Application uses JEE, Java, Web Services and DB2 and is deployed to WebSphere.

Build Hertz Entertainment Services and Cinelease Websites and Mobile Apps as a SPA.

Build Hertz Entertainment Services and Cinelease Websites and Mobile Apps as a SPA.

July 2013 – January 2014

Architect and Lead Developer for 2 SPAs using Backbone, HTML5, CSS3, JavaScript, jQuery, Jasmine, Responsive, SASS, Java Restful web services, and Adobe AEM. Fully responsive and mobile ready, utilizing Application Caching installs as an application on a mobile device. Fully functional without network access.

The SPAs use the identical code base with different CSS, content, and catalogs.

Deployed using Akamai, Apache, and WebSphere.

Job Scheduler

Job Scheduler

April 2012 – August 2012

The applications were now using 20+ repeating batch jobs that were mostly run at night. The batch job application had very poor error handling and error reporting capabilities. The hardware was outmatched which caused near constant job failures. Investigating the failures and managing the tool so it eventually got the jobs done was consuming maybe 15% of my teams' effort.

I designed a JEE application in 3 pieces.

- Administration application to administer all jobs. Jobs could be added, updated, deleted, started or stopped by the admin application. All jobs provided messages for its own job log which was viewable from the administration application. All server logs are viewable from the application.

- A job engine which is responsible for running the jobs. Jobs are run according to their own schedule. The engine was responsible for handling jobs that failed.

- The jobs themselves. They are built on a standard framework so they all behave the same way.

The Administration application uses JEE, Java, Struts 2, JSP, HTML, CSS, Quartz, DB2, XML.

The Jobs engine uses Quartz, JEE, Web Services, DB2.

The jobs themselves are implemented as Web Services with a custom interface to ensure compliance.

Everything deployed to WebSphere running on Linux servers.

The administration of the Job Scheduler was handed over to the Web Operations Group.

Running of batch jobs became more predictable. When a job failed, a web operations person could identify the problem and restart the job.

The error reporting now allowed for all errors to be reported in logs that were easy to find. It allowed for a quick diagnosis of the problem. All problems were tracked.

In a short period of time, I was able to use the application and it’s error logs to prove to the business that the hardware was insufficient. This data was used as financial justification for new hardware.

With the upgraded hardware the problems and the amount of team effort consumed were reduced to almost zero.

Hertz.com WebSphere migration

Hertz.com WebSphere migration

April 2005 – August 2005

Hertz Rental Cars were using an outdated version of WebSphere. It would soon be off maintenance, it lacked features, wasn't being updated and was a liability.

I built a WebSphere configuration framework using Jacl and a Java Swing application to configure and manage the server and workspace configurations. This enabled for the quick, reliable and predictable construction of complex WebSphere servers, thus enabling the JEE migration to proceed smoothly. All code was updated to the latest versions of Java/JEE and WebSphere.

All e-commerce websites were built-on and deployed to up-to-date WebSphere servers, increasing reliability and maintainability of all websites.

Web Enterprise Application Framework

Web Enterprise Application Framework

September 2004 – January 2005

Built a web enterprise application framework and many websites from that framework. Used a CMS, Java, JSP, Struts, J2EE, HTML, CSS, WebLogic, Ant and Eclipse.

Supply Chain application

Supply Chain application

June 2004 – August 2004

Built a Supply Chain application using JEE, Java, Struts, JSP, Session Beans, MDB, EJB, JAX-RPC, JNDI, JDBC, JMS, Connection Pooling, SAAJ, SOAP, WSDL, XML, XSLT, Ant, Oracle, Oracle PL/SQL, Rational Rose, SunOne Application Server, Web Services, JSTL, EL, Custom Tag Libs, Custom JSP Templates, HTML and CSS.

Online store application

Online store application

March 2004 – May 2004

Built MVC JSP Online Store and ported it to WebLogic and WebSphere. Built using JEE, Java, Struts, EJBs, and JSPs. Used an Oracle database with Stored Procedures and Connection Pooling.

Client/Server Scrabble

Client/Server Scrabble

January 2004 – February 2004

Built a Client/Server Scrabble Game which is a Sockets, multi-threaded, graphical Java Swing app.

Key Skills

Front-end

React, Redux, Material-UI, Gatsby, GraphQL, JavaScript/ES6, jQuery, HTML5, CSS3, SASS, Jest, Enzyme, Jekyll, Handlebars, Bootstrap, Progressive Web Application

Back-end

Node.js, Express.js, MongoDB/Mongoose, JWT, Passport, Mocha, Chai, REST APIs, JEE, Spring, Java, Spring Boot, Swing

Dev Tools & Methods

Visual Studio Code, Balsamiq, Webpack, Eslint, Git, Github, Heroku, Travis CI, Google API, Facebook API, Responsive/mobile-first-design, Agile, TDD, Npm, Unix

Devops

Digital Ocean, AWS, Ubuntu, Nginx, SSL, Unix Shell Scripting

Education

Thinkful

Web Development, Full Stack JavaScript Developer

Thinkful

January 2017 - August 2018

Intensive course on modern full-stack JavaScript development. Learned industry best practices and practical software development standards while learning new languages, tools, and frameworks. Developed the skills required to create & deploy fully functional applications.

The course focused on HTML5, CSS3, JavaScript, jQuery, Node.js, React, Redux, TDD, and algorithms & data structures.

Marlboro College

Master of Internet Engineering

Marlboro College

August 2004

Coursework focused on Java, JEE, Web Services, Databases, Internet Technologies, Systems Development and Conceptual Design.

Imperial College, London, England

Associate of the Royal College of Science

Imperial College, London, England