Resume.PhilipFulgham.com 1.2.0 is Live

May 16, 2019

As predicted, a follow-up to last month’s 1.1.0 release of my resume web app is now available. This was predominantly a cleanup release meant to address a handful of UX issues with the architecturally substantial 1.1.0 update. Here’s a quick rundown of what’s changed in 1.2.0.

Features

Loading Indicator

Loading indicator screenshot

Version 1.1.0 introduced a new back-end for the app that tends to load a little slower than the page layout, sometimes resulting in a short period where the layout appeared without data, and sometimes with system fonts, with no way to know if the page was done loading. In 1.2.0, an animated loading indicator has been added to make it much clearer when data or fonts are being loaded in the background.

Skill Zero State

Skill zero state screenshot

My goal is to keep my resume focused on the skills I want to advertise to potential employers. In a few cases, this means including skills that I don’t have any publicized projects to back up. This is generally because the skill has only been used in a professional setting under a non-disclosure agreement, or because what I’ve been using it for hasn’t been announced or launched yet. In any case, clicking on a skill with no projects to display now reveals a brief message to clarify that the lack of public projects under the skill is not a bug.

Special Zero State

Git zero state screenshot

There’s one skill on my list—Git—that doesn’t have projects attached to it simply because every project I do uses Git. Therefore, this skill now shows a special message indicating its very unique role in my toolkit.

Technology

Context

In 1.1.0, section components were largely responsible for loading any data required by their children. This caused data fetching to be spread across the app, despite the fact that all data is always loaded just once, on app load. With 1.2.0, I’ve consolidated the data fetching to be triggered by the App component itself, which then uses React Context to make the data available to the components that need it. This facilitates the loading indicator feature, which works by using Promise.all on the various Fetch API requests.

Function Components

Previous versions of the resume exclusively used class components, even when the components didn’t need to be stateful. A couple new components, as well as any existing components that were already stateless by design, have been refactored as function components in 1.2.0. This gave me an opportunity to practice using function components, plus test out some recent developments in that area of React.

Hooks

Thanks to a dependency update to React 16.8, the new Loader function component in 1.2.0 includes my first foray into React Hooks. The useRef and useEffect Hooks are employed to set up the loading indicator’s GreenSock animations. I found these patterns pretty slick to use, so I expect to be exploring them further in the near future.

Security Fixes

A few vulnerabilities in third-party dependencies had popped up lately, so the 1.2.0 release includes some dependency updates from the npm audit command. At the time of release, no further dependency vulnerabilities were detected by npm.

Next Up

The next update to this project will likely be around adding more context to the Skills section, as well as updating the left column to allow more jobs to fit on one page in the print layout.


Philip Fulgham is a software engineer who builds web applications. Visit this website's front page to learn more.