Portfolio

My work

Here are more than thirty projects I have built over the years. Filter by platform or technology, and click any project to read the full story behind it.

No projects match this filter.

Spitfire Mobile Field

Spitfire Mangement, LLC and CECO Construction

Spitfire Mobile Field

Spitfire Management, LLC and CECO Construction wanted to bring their existing project management service to iPad and iPhone. I developed the mobile app to integrate with their existing API and MS Entra, customized to meet CECO’s requirements. The finished app allows file sharing, PDF and image viewing, photo upload, task collaboration, mapping, contacts, phone and email integration, mass file download, and even offline document creation with automatic synchronization.

  • Mobile
  • Xojo

TS-CHEM

McLane Environmental

TS-CHEM

TS-CHEM is a cross-platform application that was created for McLane Environmental, LLC using Xojo for Windows and Mac. It is a state-of-the-art chemical solute and contaminant analysis tool featuring 32 widely used analysis models, graphing, real-world satellite mapping, 3D export and more. For this application I worked closely with Dr. Charles McLane, incorporating the latest science, and developing industry-first techniques for comparing multiple chemical contaminant plumes in a single view. As such, it is one of the applications that I am most proud of, and I think of it as an exemplar of my work. Read the full case study.

▶ Watch video overview

  • Desktop
  • Xojo

TS-CHEM Activation

TS-CHEM Activation

TS-CHEM Activation is an automated solution for delivering activation codes to users after they purchase TS-CHEM. Using NextJS, FaunaDB and Vercel, the application listens for purchase notifications. It then stores that information in FaunaDB and sends an automated email to the purchaser via SendGrid. The purchaser can click a link in the email and enter the System ID found in TS-CHEM. Then, an activation file is cryptographically generated and emailed to the user as an attachment. Once they open the attached file in TS-CHEM their software is activated for a 1 year period.

  • Web
  • Xojo
  • Next.js
  • Vercel
  • FaunaDB
  • Node.js
  • JavaScript

IviaSAT

HpA Engineering

IviaSAT

IviaSAT was developed for HpA Engineering & Consulting using Xojo for Windows and Mac. This application, used for installation of large turbines, was created in Xojo for Windows and Mac. It includes a custom file format for projects, charts, graphics, geometry, and trigonometry, and incorporates ChartDirector and DynaPDF plugins. It also contains a cryptographic registration system with key generator.

  • Desktop
  • Xojo

Scanner Drivers in Xojo

Scanned Inc.

Scanner Drivers in Xojo

Scanned Inc. develop a line of portable document scanners called Doxie. Their scanners work with companion desktop scanning software made in Xojo by their in-house developers.

They received new USB scanner drivers for macOS (dylib) and Windows (DLL), and had a requirement to use those drivers from within their existing Xojo application. My job started as simply interfacing Xojo with those drivers using declares and structures, but eventually evolved into developing proof-of-concepts features. Some example are detecting hardware, scanner capabilities, read/write settings, set scan parameters, scanning, printing raw data and compressed images, detecting button presses, and developing more in-depth features like allowing multiple scan-frame selections on flatbed scaners and creating driver testing environments for the team to use internally.

This project is ongoing and many project details are confidential, so I have deliberately avoided showing screenshots of any actual software or API documentation.

  • Desktop
  • Xojo

HealthPriceCompare.com

HealthPriceCompare.com

When Jay Williamson approached me for a meeting at a local Starbucks about possibly developing a health application I was pleased to provide consultation about what technologies would eventually be involved, and even more pleased when, the next year, Jay selected me to complete the task. The web application, HealthPriceCompare.com, is an essential tool for the U.S. public. Anyone can enter their zip code, insurance provider and medical procedure name to compare prices at different hospitals within a given radius, potentially saving thousands of dollars.

Before truly starting on this project I provided some proof of concepts. We needed to ensure we could quickly search and provide geospatial results for healthcare providers in a radius around a zip code. We needed to compile a massive database of publicly available provider and insurance data, and we needed to plug it all into an easy to use google-map enabled website.

I am pleased to say that I was successful in developing all the required technology and algorithms, along with the website itself, and now HealthPriceCompare.com has launched in Texas, soon to be available throughout the U.S.

  • Web
  • MySQL
  • JavaScript
  • PHP

Easy Password Storage

Easy Password Storage

Easy Password Storage is a cross-platform application that was designed using Xojo for Windows and Mac, and Cordova PhoneGap/Javascript for iOS, Android and Windows Phone. It features 512-bit encryption and automatically sychronized passwords. For data storage the app uses SQLite for desktop and IndexedDB for mobile. All data is encrypted with 256-bit AES or 512-bit blowfish encryption and transferred to the cloud via SSL. Also included is local-wifi synchronization via SSLSocket. Communication between the app and online MySQL database is handled with ASP and JSON using a custom cloud API that I designed.

  • Desktop
  • Mobile
  • Xojo
  • Cordova
  • JavaScript

ScoreGeek

ScoreGeek

ScoreGeek is a cross-platform mobile app developed with Cordova and Javascript for scoring boardgames. It uses a custom scoring plugin API that I developed which allows users to create and share their own game plugins, making it easy to track scores for any boardgame. It connects to BoardGameGeek.com to download game data and images. Stats, charts and achievements are also included. The app allows a group of users to sync their games between devices automatically using a cloud API that I developed.

  • Mobile
  • Mobile
  • Cordova
  • JavaScript

App License Manager

Scanned Inc. (Superiorware)

App License Manager

After completing work on the hardware drivers for Scanned Inc., I developed a software license management system for their Superiorware brand of applications.

Using NextJS, FaunaDB and Vercel I created a system that would allow existing users to enter their email address. If an order exists for that email, they will receive a link via email to access and manage their license codes.

Additionally, I created a backend licence code admin system. Protected with Next JS Iron Session to allow for different admin levels of access, the system allows wildcard search of customer records and license code management.

This work is ongoing, and some information is confidential, so I have deliberately only shown a screenshot of the main customer-facing license activation page.

  • Next.js
  • Vercel
  • Node.js
  • FaunaDB

Brewer's Hops

BrewersHops

Brewer's Hops

Brewer’s Hops is a data-centered beer brewing app that was created with Appcelerator for iPhone and iPad. I updated the app from an older version of Appcelerator to a new one, and added new sections to the app, which involved navigation updates, GPS and map APIs, and formatting the app properly for both standard and high definition versions.

  • Mobile
  • Appcelerator
  • JavaScript

CalorieGoals

CalorieGoals

CalorieGoals was developed with Cordova and Javascript. It communicates with the USDA nutrition database, as well as custom exercise databases, to allow users to track their food, calories, nutrition, exercise, and take selfies over time that show their progress. Users can also enter custom foods and share them with the community via the cloud, automatically showing up when other users search for the same food. Options like combining foods into recipes, snapping a reminder photo of your meal, and a list of frequently eaten foods allow for easy food logging.

  • Mobile
  • Cordova
  • JavaScript

CalorieGoals Cloud

CalorieGoals Cloud

The CalorieGoals Cloud is a database system that allows users to search the USDA food database, an exercise database of metabolic rates (MET), and custom foods and exercises data. To achieve this I reformatted the USDA data used it to create a new MySQL database. This is a very large data set, so I designed a search function that starts with the least processor-intensive search, only moving to more intensive search techniques if an adequate number of results has not been found. For both food and exercises, methods were created for users to add custom items which would become available for other users to search and use.

  • Data / API

Crazy Coloring Book

Crazy Coloring Book

Crazy Coloring Book was created in Xojo for Windows and Mac OS X. It uses a large collection of line drawings and some intensive algorithms to find the edges of drawings, allowing almost any picture to be colored. Users can also use stamps and have the app play music while they work. This app was intended for kids but found quite a large adult audience. Despite its childish appearance there was some sophisticated graphics programming required for this app.

  • Desktop
  • Xojo

Dynamic Purchase

Dynamic AS (Norway)

Dynamic Purchase

Dynamic Purchase is a Xojo Web App created by Dynamic AS in Norway to assist with proposal comparison and selection. When their lead developer left, they approached me about taking over development and maintenance responsibilities. This involved fixing some existing bugs, and migrating the application to Xojo Cloud hosting to save the company significant hosting fees. Working internationally with the team at Dynamic AS, and ensuring that Dynamic Purchase works properly in both English and Norwegian, has been an outstanding experience. Because this is an ongoing project, and the information contained in the application is confidential, I have used screenshots taken from the Dynamic Purchase website instead of actual applicaiton screenshots.

  • Web
  • Xojo

Easy File Hider

Easy File Hider

Easy Flie Hider was created with Xojo for Windows and Mac OS X. It has several different options for hiding files from the operating system by marking them as hidden, renaming them, and moving them to a secure location that is not indexed by the OS. Because Mac OS X uses sandboxing, this entails creating Security Scoped Bookbarks which allows the app to work with files outside of the sandbox. The app can quickly hide or show files using hotkeys for easy access.

  • Desktop
  • Xojo

Easy Password Cloud

Easy Password Cloud

Passwords are particularly sensitive, so to accomplish the goal of allowing users to synchronize passwords over the internet I knew I had to create a “blind” cloud server that could not see any unencrypted user data. Using ASP for device to database communication, and JSON for data formatting, I created a MySQL database that works entirely with encrypted data. All encryption is done on the user’s device, never sharing their encryption key, before being stored anonymously in the database. When the user downloads the encrypted data to a device with their key installed it is decrypted and displayed on their device. That means that no one, not even me or my hosting company, can access any user passwords.

  • Data / API

FileCapsule

FileCapsule

FileCapsule is a cross-platform application created in Xojo that allows users to securely transfer files. A proprietary file-format called a canister (.cnstr) was developed to encapsulate both encrypted data and unencrypted recipeient information. 1024-bit public and private key encryption is used for the utmost security. Development also included PHP and database work to store user’s public keys and contact information, allowing users to create canister files that can only be decrypted by particular recipients.

  • Desktop
  • Data / API
  • Xojo
  • PHP

IP Notification

IP Notification

IP Notification was created with Xojo for Windows and Mac OS X. It constantly monitors the computer’s internal IP address by polling the network adapter, and monitors the wide area network’s external address by querying a script hosted on my website which returns the remote host address. When a change is detected, the application can notify the user by composing an email which is sent either through my servers, presets for Gmail and other popular servers, or through a custom email server. It can also send data to a user’s website via querystring (for storing in a database or sending other types of notifications) or launch an external application with the IP address sent as a querystring.

  • Desktop
  • Xojo

IviaSAT Bluetooth

HpA Engineering

IviaSAT Bluetooth

IviaSAT is software that I created for IviaTech which assists in alignment of vertical hydroelectric turbines. Proper installation requires readings from proximity probes and inclinometers. This helper app continuously monitors bluetooth connections from those devices and translates them into a format readable by IviaSAT, allowing the IviaSAT user to have a constant stream of real-time readings to assist in turbine installation.

  • Desktop
  • Xojo

MRC Compounding Desktop

MRC Polymers

MRC Compounding Desktop

After completing the MRC Inventory system, which allowed mobile, desktop and web access to a plastic inventory system using barcode scanning, I was hired to make a similar system that followed that inventory through the mixing, testing, storage and shipping process. This required an overview of all product coming from silos, through different states of blending and testing, loading into warehouses and eventual shipment. The system includes detailed reports and a date based warning system to keep all deliveries timely.

To protect the confidential data of MRC Polymers, fake data was used in the screenshot below.

  • Desktop
  • Xojo

MRC Compounding Mobile

MRC Polymers

MRC Compounding Mobile

This mobile app is used to scan the barcode of each plastics product as it moves from the silo, to blending, to testing, into the warehouse and finally through shipping. Barcode scans ensure there is no human error when moving products, and allow up-to-the-minute tracking records for all products, which are fed into a central database and displayed on the desktop app for management.

To protect the confidential data of MRC Polymers, fake data was used in the screenshot below.

  • Mobile
  • Cordova
  • JavaScript

MRC Inventory - Cloud & API

MRC Polymers

MRC Inventory - Cloud & API

A cloud database system developed with MySQL and PHP which allows employees to submit inventory changes remotely using the MRC Mobile App, update the database using the MRC Desktop App, and push live updates to management through the MRC Web App. The system also produces produces reports and automates some administrative tasks.

  • Web
  • Data / API
  • MySQL
  • PHP

MRC Inventory - Desktop

MRC Polymers

MRC Inventory - Desktop

A desktop application developed for MRC Polymers to connect to their inventory database and perform administrative tasks such as adding new silos, adjusting inventory, and generating reports. It was also designed to be displayed on a large monitor where employees can quickly view real-time inventory information, similar to a flight monitor in an airport.

To protect the confidential data of MRC Polymers, fake data was used in the screenshot below.

  • Desktop
  • Xojo

MRC Inventory - Mobile

MRC Polymers

MRC Inventory - Mobile

A mobile application for Android and iOS which allows MRC Polymers employees to scan a bar code on a silo housing plastics, enter an amount of plastic to upload or withdraw, and submit to a master database. This allows real-time tracking of inventory by management, allowing them to view current inventory statistics.

To protect the confidential data of MRC Polymers, fake data was used in the screenshot below.

  • Mobile
  • Cordova
  • JavaScript
  • MySQL
  • PHP

MRC Inventory - Web

MRC Polymers

MRC Inventory - Web

A mobile-ready web application developed for MRC Polymers management to view read-only data from their inventory database. This allows any employee with the password to view a live update of inventory status from mobile devices and browsers.

To protect the confidential data of MRC Polymers, fake data was used in the screenshot below.

  • Mobile
  • Web
  • JavaScript
  • PHP

PartyVote: Costume

PartyVote: Costume

This simple, but fun, Halloween app allows users to take selfies of the people at thier costume contest, and vote on the winner in multiple categories. It was created using Cordova, jQuery Mobile and Javascript for Android and iOS. The application is responsive and sizes itself properly for both phone and tablet use. It also uses the HTML5 canvas to superimpose award images over the winning photos.

  • Mobile
  • Cordova
  • JavaScript

PartyVote: Dress Up

PartyVote: Dress Up

I created this application for my two girls who loved to dress up, and made it free for other kids on Android and iOS. It allows kids to take pictures of themselves in their favorite outfits and vote on the best picture, winning an award. It was created using Cordova, jQuery Mobile and Javascript. The application is responsive and sizes itself properly for both phone and tablet use. It also uses the HTML5 canvas to superimpose award images over the winning photos, and contains parental controls to prevent children from filling up the device with photos (I learned the hard way that this was necessary, thanks to my own kids).

  • Mobile
  • Cordova
  • JavaScript

ProcedureWhys - Admin

ProcedureWhys - Admin

When Peter Fichter approached me with his idea for an aviation saftey app, which allowed pilots to easily move through a checklist of flight precautions with details about what the proper procedures are, and why they are important, I knew it was a great fit for Xojo.

Peter knew that he wanted the end product to be used on iPads in landscape mode, and that he wanted a Mac application which would allow him to edit a heirarchial list of aviation safety checklists and import procedural documents. This backend Mac app allows Peter to enter multiple checkists with image and PDF attachments that is fed into the mobile app before compilation. The iPad app reads the database that was exported from this Mac app, arranges all data in the proper form, and allows the user to easily navigate through important safety information all while remaining offline.

  • Desktop
  • Xojo

ProcedureWhys - iPad

ProcedureWhys - iPad

When Peter Fichter approached me with his idea for an aviation saftey app which allowed pilots to easily move through a checklist of flight precautions with details about what the proper procedures are, and why they are important, I knew it was a great fit for Xojo’s iOS capability.

Peter knew that he wanted the end product to be used on iPads in landscape mode, and that he wanted a Mac application which would allow him to edit a heirarchial list of aviation safety checklists and procedural documents. The result is a native iPad application which can be used on the runway without Wifi, with embedded PDF documents, images, and an easy-to-navigate, drill-down checklist created by Peter in the accompanying Mac app.

  • Mobile
  • Xojo

Quick File Renamer

Quick File Renamer

Quick File Renamer was developed with Xojo for Windows and Mac. It allows users to create a chain of actions that rename thousands of files in seconds. It can use file names, file dates, and even audio and photo metadata in the new name. It has the ability to search and replace names with RegEx. Before renaming, it provides a preview of all names and checks for potential conflicts with existing file names.

  • Desktop
  • Xojo

RebrandSoftware.com

RebrandSoftware.com

An e-commerce website for showcasing and selling my own apps. The website is built with HTML5, Javascript, Bootstrap and CSS. I maintain an app database with prices and links which automatically generates pages. To avoid overloading the database, page HTML is stored in local variables and updated once per day. Also uses a customer login system with hashed passwords, an automatic password remind/reset system, registration code management that allows users to switch their software to a new computer, and a shopping cart. Payment is handled via PayPal with Instant Payment Notification (IPN) to automatically process carts and deliver registration codes. Registration codes are automatically generated by SoftLocker (another web application that I developed) and delivered to the customer’s email address.

  • Web
  • Data / API

Remote Backup Magic

Remote Backup Magic

Remote Backup Magic is an automated backup application created with Xojo for Windows and Mac OS X. It allows users to create groups of important files and back them up automatically on a schedule. It can send files to local destinations, but its specialty is sending files to remote network, FTP and email destinations, providing greater security in the case of data loss. It can handle multiple locations per backup group, and can even perform incremental backups of only files changed since the most recent backup was made.

  • Desktop
  • Xojo

ShoreHire.net

ShoreHire

ShoreHire.net

This recruiting management system was created with PHP and MySQL, and allows ShoreHire to manage databases of employess, matching them based on search criteria. It also tracks job information and employment status. The admin front-end was created with PHP and HTML.

  • Web
  • Data / API

SoftLocker

SoftLocker

SoftLocker is a database that provides registration code locking to thousands of different software applications, and hundreds of thousands of users. It handles registration code generation, delivery, activation and potential remote deactivation in the event of a refund or return. Numerous front-ends exist for generating and managing codes using an API that I created. I even use SoftLocker to provide registration for all my own software products.

  • Data / API

VeganStats

VeganStats

VeganStats is an open-source React Native project for iOS and Android that was created as a free utility to highlight the environmental benefits of a vegan diet. It uses many built in React Native components such as AsyncStorage, Flatlist and TouchableHighlight, as well as plugins for native Push Notifications and app store ratings.

  • Mobile
  • React Native
  • JavaScript