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.
TaskMuncher is a responsive MERN stack Task Management Productivity Web-based application. TaskMuncher is built using React, Redux, Material-UI, Node, Express, and MongoDB.
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.
johnvincent.io is my Website featuring a Portfolio and Blog. It is built using Jekyll, HTML5, CSS3, Bootstrap, SASS, and jQuery.
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.
Led hertz.com migration to latest versions of JEE, Java, DB2, and WebSphere.
TaskMuncher is a responsive MERN stack Task Management Productivity Web-based application.
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.
React, React DnD, React Router, Material-UI, Redux, Redux Devtools, Styled Components, HTML5, CSS3, SASS, Webpack, Jest, Enzyme, Eslint, Prettier, and Balsamiq.
Node, Express, Mongo, Mongoose, JWT, JOI, Mocha, Chai, Winston, Morgan, Nodemailer, Gmail OAuth 2, Google Authentication, JS Doc, Eslint, and Prettier
Digital Ocean, Ubuntu, Nginx, SSL certificates, Node, Npm, Mongo, PM2
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.
HTML5, CSS3, SASS, jQuery, Handlebars, x-editable, fully responsive, mobile ready.
Node, Express, Mongo, Mongoose, Joi, Mocha, Chai, Winston, Morgan, JWT, Handlebars, Gmail OAuth 2, JS Doc, Facebook and Google Authentication.
Deployed by Travis to Heroku and Digital Ocean, Ubuntu, Nginx, SSL certificates, Node, Npm, Mongo, and PM2.
My home website describes my Services, Portfolio and Blog.
See Home Website Overview for more details.
Digital Ocean, Ubuntu, Nginx, SSL certificates, PM2
Play Peg Solitaire. Drag and drop with helpful hints or let the game show you solutions.
See Peg Solitaire Overview for more details.
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.
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
RAD, Eclipse, Ant, Maven, Git, SourceTree
WebSphere, Apache, and Akamai.
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.
Application uses JEE, Java, Web Services and DB2 and is deployed to WebSphere.
The SPAs use the identical code base with different CSS, content, and catalogs.
Deployed using Akamai, Apache, and WebSphere.
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 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.
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.
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.
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.
Built a Client/Server Scrabble Game which is a Sockets, multi-threaded, graphical Java Swing app.
Node.js, Express.js, MongoDB/Mongoose, JWT, Passport, Mocha, Chai, REST APIs, Java, JEE
Visual Studio Code, Balsamiq, Webpack, Eslint, Git, Github, Heroku, Travis CI, Google API, Facebook API, Responsive/mobile-first-design, Agile, TDD, Npm, Unix
Digital Ocean, Ubuntu, Nginx, SSL, Unix Shell Scripting
Coursework focused on Java, JEE, Web Services, Databases, Internet Technologies, Systems Development and Conceptual Design.