My Portfolio

Westlake Royal Building Products

About

Westlake Royal Building Products is one of the many brands of Westlake, a global diversified industrial company, focused on products for home building and remodeling. My big accomplishment on this project was creating something that the client said they had never seen before with one of the other developers — A product navigator that would guide you along one of 3 paths, and after asking a series of questions, present you with product recommendations. You can read more about the product navigator on the Technical Details tab.

Technical Details

Building Westlake Royal Building Products was very much a team effort, from the Client team to the graphics designers to the developers.This site was built on Drupal 11 and makes use of Apache Solr as the search backend. The design leverages paragraphs to create custom blocks that content editors can use to create the page layout desired. Most of the pages on the site were built that way

Read more  

Building Westlake Royal Building Products was very much a team effort, from the Client team to the graphics designers to the developers.This site was built on Drupal 11 and makes use of Apache Solr as the search backend. The design leverages paragraphs to create custom blocks that content editors can use to create the page layout desired. Most of the pages on the site were built that way. My big accomplishment for this project was the creation of the Product Navigator with one other developer, which the client says they've never seen before. Designing a JSON linked list, we were able to create a way to define a path to explore, and the questions to ask. The questions could come from various different sources: fixed text, taxonomy term or even an api call. It is fully traversable — a customer could go back page by page and change a selection, and they would then be taken down a different path. This project is where I first started using genAI to increase my efficiency.

Close

WRBP Front Page
Product Navigator start page
Product Navigator question
Product Navigator Recommendations
Design Tool

Our Travel Home

About

The idea for Our Travel Home started when my wife and I returned from our trip to Iceland in 2016. Based on our attempts to sound out Icelandic place names, we decided to call it "Murdered the language with an axe". We even went as far as registering the domain name, but we never did anything with it, and we let the registration lapse. In April of 2024, we took a cruise that included observing the total solar eclipse on April 8th, and came back with a renewed determination to create a travel blog.

Technical Details

Building Our Travel Home was an interesting journey. Upgrading from Drupal 9 to Drupal 10 was a pretty straightforward task, but when I went to upgrade to Drupal 11, I discovered that the base theme that I had been using was not Drupal 11 ready. The project seemed not to have been updated in a while, so I forked the theme and made the changes needed so it could be used with Drupal 11.

Read more  

Building Our Travel Home was an interesting journey. Upgrading from Drupal 9 to Drupal 10 was a pretty straightforward task, but when I went to upgrade to Drupal 11, I discovered that the base theme that I had been using was not Drupal 11 ready. The project seemed not to have been updated in a while, so I forked the theme and made the changes needed so it could be used with Drupal 11. It started as only do what was needed to make it so I could install it, but I think I've become a theme maintainer, because I've updated my forked copy to the latest versions of Bootstrap and Font Awesome 7 Free.

The site makes use of jQuery, Flexslider and Font Awesome 7 Pro instead of the free version in the base theme.

Close

OTH Main page
Merida blog post
OTH Dave
About Our Travel Home, and Thor!

MEDUSA

About

MEDUSA is the membership management system for The Royal Manticoran Navy: The Official Honor Harrington Fan Association, a world wide 501(c)7 non-profit fan organization with 7,000+ members. It was, and is, a dramatic improvement over the original management website, which was held together with bailing wire, bubblegum, and duct tape. Originally, I was the second developer on the project, but very quickly became the only one. The last time I checked, I wrote about 95% of the site, but that percentage is coming down since a second developer has joined the project.

Technical Details

MEDUSA was built using Laravel 5.7 and MongoDB. Bootstrap, Font Awesome and jQuery were used for the UI components; for tabular information, DataTables was used. To round out the UI, the rcswitcher jQuery plugin gave the checkboxes a nice improvement. All of the CSS was maintained using SCSS which was compiled and minified by webpack. Webpack was also used to combine and minify all of the javascript used on the site.

Read more  

MEDUSA was built using Laravel 5.7 and MongoDB. Bootstrap, Font Awesome and jQuery were used for the UI components; for tabular information, DataTables was used. To round out the UI, the rcswitcher jQuery plugin gave the checkboxes a nice improvement. All of the CSS was maintained using SCSS which was compiled and minified by webpack. Webpack was also used to combine and minify all of the javascript used on the site.

It's not the best PHP I've written, but almost 10 years later, it's still being used, and it's constantly having small features and improvements added. I plan to refactor it to use the most up to date version of Laravel and PHP using modern design patterns. This has already been started by the second developer who joined the project a few short years after the initial launch.

Close

Medusa login screen
Member service record in Medusa
Members ribbon rack
Members academic record
Promotion Points
Chapter listing

Trucks-API

About

The Trucks-API project was originally a demo project to showcase my software development skills. To quote the challenge that prompted this project

Our team loves to eat. They are also a team that loves variety, so they also like to discover new places to eat. In fact, we have a particular affection for food trucks. One of the great things about Food Trucks in San Francisco is that the city releases a list of them as open data.

Using the latest open data from the city of San Francisco, the Trucks-API project exposes a simple public facing api that can be queried by location/address, type of cuisine or name. It will return a JSON response, suitable for use in other applications.

Technical Details

The goal for this demo was to make it fully self contained and standalone. The only requirement was to have a reasonably modern version of Docker installed. For this project, besides Docker, I used Laravel 11, Ubuntu Linux 24.04, PHP 8.3, MariaDB, Redis, Nginx, Composer and PHPStorm. It requires very little setup – clone the repository, create a .env file, and then run docker compose up. The full details on what happens with the containers start is in the README.mdin the repository. Once the container has started, there will be three API endpoints configured.

Trucks API