Justin Hall

Avatar

Hi, I'm Justin.

I'm a software developer with an affinity for the web, dedicated to crafting great user experiences with proven technologies like React, Node.js, and SQL.

While I've used a wide variety of different languages, tools, and frameworks, my current favorites include: TypeScript, Remix/React Router, Tailwind CSS, Prisma, XState, Vite, Vitest, Playwright, ESLint, Prettier, Docker, and Git.

Check out some of my work:

A screenshot of the drinks.fyi home page displaying a list of cocktails

drinks.fyi

Progressive Web App to showcase your favorite cocktails. Powered by a Contentful headless CMS.

ReactReact RouterTailwindContentfulMiniSearch

[ source ]
A picture of the statechart that drives core functionality of the StatVol application

StatVol

Statechart-driven static web application to replace a critical HR business process that was lost during a vended software transition.

ReactReact RouterXStateBootstrapAzure SQLDocker

A screenshot of a GraphQL Playground instance showing the schema documentation for the Master Provider Index API

Master Provider Index API

Custom-built GraphQL API to expose detailed information for all in-network locations and care providers in the Saint Alphonsus Health System.

GraphQLApolloNode.jsNGINXSequelizeMicrosoft SQL

A screenshot of the OfferCalc web application

OfferCalc

Human Resources application for calculating initial offers to new hires based on a variety of contributing factors fed in from multiple external systems. Features a powerful but intuitive user interface.

ReactBootstrapWebSocketsHTTP APIMicrosoft SQL

A screenshot of the hibp web site

hibp

A library providing an unofficial TypeScript SDK for the Have I been pwned? service. Available on the server (Node.js) and in the browser.

TypeScriptesbuild

[ source ]
A screenshot of a terminal displaying output from a pwned command

pwned

A command-line tool for querying the Have I been pwned? service. Explore breach data, search for your email address, or check if your favorite password has been exposed.

Node.jsyargs

[ source ]
A screenshot of the pwned app displaying the analysis of an example password

Password Lense

Certain characters in passwords (โ€˜Oโ€™ and โ€˜0โ€™, โ€˜Iโ€™ and โ€˜lโ€™, etc.) can be hard to identify when you need to type them in (and copy-paste is unavailable). Password Lense is a small web application that provides a quick and secure way to get a more informative view of your password.

ReactXStateTailwindVite

[ source ]
A screenshot of the WashUp! web application

WashUp!

Azure-native web application to replace a vended solution for tracking proper hand hygiene in a healthcare setting.

ReactReact RouterBootstrapAzure SQLDocker

A screenshot of the Meetup Raffle app landing page

meetup-raffle

Progressive Web App and underlying AWS Lambda function for selecting a raffle winner at a Meetup event.

ReactReact RouterTailwindMock Service Workeresbuild

[ source ]
A screenshot of the Snack playground for the react-native-responsive-image-view library

RNRIV

React Native custom hook and render-prop component for scaling an Image within the parent View.

React Native

[ source ]
A screenshot of the Saint Alphonsus app, framed in a mobile device

Saint Alphonsus Mobile App

Cross-platform mobile app for locating in-network care providers and facilities within the Saint Alphonsus Health System.

React NativeExpoGraphQLApolloAlgolia

A stock image of generic, minified JavaScript code

URL Shortener

HTTP API and administrative front-end (for submissions and analytics) designed to shorten long URLs using a custom, branded short domain.

ExpressMongoDBPassportDocker

A blurred screenshot of the Saint Alphonsus intranet landing page

SharePoint 2013 Intranet

A highly customized intranet platform and communication tool supporting approximately 10,000 users built upon SharePoint 2013.

SharePoint 2013C#ASP.NETRESTJavaScript