Skip to content

Projects

I've worked on a lot of projects over the years!

Markers and name tags on a table

Fuzzy Name-Matching

Business problem: A major U.S. bank needed to regularly match marketing mail recipients with new account holders.

Solution: I wrote a Java program to classify potential name matches into 1 of 30 different categories and create auditable, human-readable outputs for analysts. The program processed data sets in under 5 seconds, with 99.6% accuracy, which was a huge improvement over the previous 15-hour, manual work and review process.

Work Project

JavaMavenApache Commons Java Libraries

Weather website screenshot showing a weather warning, temperature map, and multi-day forecast

Weather Site

I made a weather site that displays an interactive weather map and a 7-day forecast for any U.S. city. City to lat-long coordinate resolution and current weather conditions are retrieved from the OpenWeatherMap API, future forecast data comes from the National Weather Service, and the interactive map is powered by the Windy map forecast API.

Personal Project

JavaScriptjQueryHTMLSCSSBootstrapwebpackOpenWeatherMap APINational Weather Service APIWindy API

Check it out on GitHub!

Stacked bar chart above two USA heat maps

FEMA Disaster Data Visualization

I made a step-by-step guide to teach people how to create data visualizations in Python! The guide shows readers how to group, graph, and plot their data with the pandas, geopandas, and Bokeh libraries.

Personal Project

PythonpandasgeopandasBokeh

Check it out on GitHub!

Network of light beams in front of city buildings at night

Browser-Based Tool for Generating Complex SQL Queries

Business problem: Our banking clients regularly send mail to the same people multiple times per year, so it can be difficult to determine which marketing campaign led someone to open an account. Since only one campaign can take credit for an account opening, any ambiguity needs to be sorted out. The existing approach was slow because it required analysts to manually write hundreds of SQL queries to analyze a single campaign.

Solution: I created a tool that identifies duplicate records across different data sets, generates a VBA module that routes accounts to the correct campaigns, and generates a color-coded table that highlights data entry errors. This saves over 1,000 employee hours each year by eliminating the need to work across dozens of Microsoft Access databases.

Work Project

JavaScriptjQueryHTMLCSSVBASQL

Line of LED arrows pointing to the right

ETL (Extract-Transform-Load) Applications for Processing Large Data Sets

Business problem: We receive terabytes of raw data from vendors and clients each year and need an efficient way to standardize, trim, and enhance that data. Non-technical analysts also need to be able to perform processing operations with minimal training.

Solution: I replaced our Access and SPSS workflows with simpler Java and Python-based file processing tools. These tools save over 4,000 employee hours each year and only require around 15 minutes of training to learn. The tools also generate accompanying reports that help analysts detect errors in the original, raw data.

Work Project

JavaPythonpandas

Screenshot of the home page of jonathanohanlon.com

jonathanohanlon.com

I made a portfolio website, and you’re looking at it right now! It's a static site that I built with webpack and EJS templates, and it's hosted on GitHub Pages. Thanks, GitHub!

Personal Project

JavaScriptHTMLSCSSBootstrapwebpackEJS

Check it out on GitHub!

Colorful books on a shelf

Express Local Library

I made an MVC library catalog app using Express and MongoDB! It's based on a tutorial from Mozilla that shows how to create an online book management system. I extended the tutorial with some custom search functionality, and made other enhancements here and there.

Personal Project

JavaScriptExpressMongoDBMongoosePugHTMLCSS

Check it out on GitHub!

Photo gallery app with pictures of European cities

Ionic/Capacitor Feature Demo

This is an Ionic/Capacitor progressive web app (PWA) that shows off a few Capacitor APIs, including: Storage, Filesystem, Camera, and Local Notifications. The app allows you to fire time-delayed notifications at different notification levels and also allows you to take photos and view them in a gallery display. The project can be built as an iOS app, Android app, or regular web browser app!

Personal Project

JavaScriptIonic FrameworkCapacitorReact

Check it out on GitHub!

Person using a credit card with a handheld card reader

Marketing Campaign Response Visualization

Business problem: Our banking clients wanted to determine how the geographical distribution of their physical locations corresponded to the locations of customers who recently opened new accounts.

Solution: I created a Python program that renders customer and branch locations on an interactive map, displaying data at variable zoom levels and breaking down account types (credit card, loan, etc.).

Work Project

PythonpandasgeopandasBokeh

Globe with North America in focus

Competitive Landscape Heat Map

Business problem: Our banking clients wanted to better understand the competitive landscape in certain regions before establishing new physical locations.

Solution: Using FDIC bank branch data and U.S. Census Bureau geospatial data, I created a tool that generates bank branch concentration heat maps within a designated market area, at both ZIP-3 and ZIP-5 levels.

Work Project

PythonpandasgeopandasBokeh

Gameplay screenshot of the game Hotdog Hawk

Hotdog Hawk

I made a game in Java using the libGDX development framework! In this game, you play as a bird who blasts his way past weaponized warblers, malicious mallards, and endless explosions... all in pursuit of hotdogs!

Personal Project

JavalibGDXGradleAdobe Photoshop

Split screenshot with a pet adoption site on top and an interactive pet game on the bottom

Frontend Masters Tutorial Projects

As an exercise in React and modern JavaScript development, I took a couple of Frontend Masters courses and created a Pet Adoption app and a JavaScript Virtual Pet Game!

Personal Project

JavaScriptReactHTMLCSS

Check out the Pet Adoption app on GitHub!

Check out the Virtual Pet Game on GitHub!