Creative Technologist

Building software that solves real problems

I design and build applications — from enterprise platforms to personal productivity tools to community infrastructure. Each project combines technical implementation with an understanding of how people actually work, learn, and connect.

These aren't side projects. They're production systems serving real users.

Productivity & Business Applications

Tools that help organizations and individuals work smarter

Task LMS — Enterprise Learning Management System

Built in 5 days.

A full-featured LMS for corporate training, supporting both internal employees and external partners.

The Challenge: CFO balked at the LMS vendor renewal. Instead of negotiating, I built a replacement.

Key Features:

  • SCORM 1.2 & 2004 compliance
  • Microsoft 365 and Google SSO
  • Role-based access (Admin, Instructor, Employee, Partner)
  • Quiz system with 8 question types
  • Automated certificate generation with public verification
  • Learning tracks for structured skill development
  • Bulk CSV import for users and enrollments
Next.js 14 Express.js PostgreSQL Prisma TypeScript

Scale: Designed for up to 10,000 users

TaskQueue — Cross-Platform Task Management

Philosophy: One task at a time. No exceptions.

A productivity app built around constraints. Most task managers let you accumulate hundreds of tasks you'll never complete. TaskQueue forces focus by limiting you to a single active task.

Platforms:

iOS (Production v1.5.0) Android (Dev v1.0.0) Web (Production v0.1.0)

Key Features:

  • Timer with countdown/count-up modes
  • Playlists (task queues) with completion rewards
  • Repeating tasks (daily, weekly, monthly, custom)
  • Projects with color coding
  • Team collaboration with shared projects
  • Cloud sync with conflict resolution

Tech Stack:

Swift / SwiftUI / SwiftData Kotlin / Jetpack Compose / Room Next.js 14 / PostgreSQL / Prisma

Budget Tracker — Personal Finance Application

A personal finance tool for tracking transactions, managing budgets, and setting financial goals.

Key Features:

  • Transaction management (income, expenses, transfers)
  • Hierarchical categories with parent/child relationships
  • Multiple account types (checking, savings, credit, investment, retirement)
  • Financial goals (savings targets, debt payoff, trip funds)
  • Dashboard with spending charts and budget progress
  • Receipt OCR capture for quick entry
  • CSV import for bulk transactions
Next.js 16 PostgreSQL Prisma Zustand Recharts Tesseract.js

JSJ Dashboard System — Customs Brokerage Analytics

Real-time visibility into customs operations by processing data from three CBP (Customs and Border Protection) systems.

Data Sources:

  • ABI (Automated Broker Interface) — Import entries
  • AES (Automated Export System) — Export declarations
  • DIS (Document Image System) — Document submissions

Dashboards:

  • ABI Dashboard — Import entry tracking, search, daily breakdown
  • AES Dashboard — Export tracking, country distribution
  • DIS Dashboard — Document submissions by port and filer
  • Status Dashboard — HOLD/RELEASE tracking, clearance times
  • Commodities Dashboard — Schedule B breakdown
  • Entry Lookup — Cross-system entry search

Tools Suite:

  • Tariff Stacking Wizard — Interactive decision trees for 2026 tariff programs (Section 232, IEEPA)
  • HTS Lookup — Search 35,720 tariff codes with duty rates
  • Client Data Tool — Customer data management (154MB+ data)
  • CBP Unstacking Matrix — Determines which tariff programs can coexist

Technical Architecture:

  • Automated daily sync (Windows 6AM → Linux 6:15AM)
  • Fixed-width EDI parsing for CBP formats
  • XML parsing for DIS documents
  • JSON data storage with monthly aggregation
  • Python parsers: ABI (81KB), AES (55KB), DIS (50KB)
  • Incremental updates — only processes new date folders
Python 3.9 HTML/JavaScript Pervasive SQL JSON/XML Bitnami LAMP

CRM System — Enterprise Customer Relationship Management

A custom CRM for a 150-person customs brokerage firm, managing 227,000+ message records with role-based access control and Microsoft 365 integration.

Background: Originally built to replace a legacy IBM AS400 system. The company later evaluated Salesforce and HubSpot replacements — but couldn't find anything that fit as well. That decision has saved over $1 million in licensing costs.

Core Features:

  • Entity Management — Companies and contacts with full CRUD
  • Message System — Communication logging (227k+ records)
  • Role-Based Access — User, Manager, SuperAdmin, Sales, Corporate
  • Impersonation System — SuperAdmin preview with audit logging
  • Three-tier Message Filtering — Active/Orphaned/Archive
  • Reports Module — Message activity with date filtering
  • Export to Excel — Entity and message exports
  • User Theming — Per-user theme selection

Modernization Work (with Claude):

  • Database layer modernization (PDO with prepared statements)
  • Unified search component with type-ahead
  • Tailwind CSS + Alpine.js UI refresh
  • RESTful API layer for AJAX operations
  • Microsoft 365 OAuth integration
  • Multi-environment detection (Prod, Staging, Internal, Dev)
  • Enhanced security (CSRF protection)
  • Automated deployment scripts for Bitnami server
PHP MySQL/MariaDB Microsoft OAuth Tailwind CSS Alpine.js Bitnami LAMP

Community & Events Platforms

Technology that brings people together

OnStage Savannah — Live Entertainment Platform

A community events calendar and artist directory for Savannah, Georgia, powered by the Savannah Performance Alliance.

The Vision: Savannah's performing arts scene was fragmented — no central place to find what's happening. OnStage Savannah aggregates events from theaters, venues, and independent artists into one searchable platform.

Key Features:

  • Public events calendar with category filtering
  • Venue directory with maps and social links
  • Artist directory with bios and upcoming performances
  • Artist portal for event submission
  • Admin panel with full CRUD operations
  • Block-based page builder (18+ modular components)
  • Event scrapers for automated imports
Next.js 16 React 19 Sanity CMS NextAuth.js Tailwind CSS Leaflet

TEDxSavannah Speaker Review System

Built in approximately 24 hours.

A full-stack application for TEDxSavannah committee members to review, vote on, and discuss speaker applications.

The Problem: The committee was using spreadsheets and email chains. Applications got lost. Votes were inconsistent. The process was chaos.

Key Features:

  • Voting system (0-3 scale: Definitely, Intrigued, Meh, Not Interested)
  • Threaded comments on applications
  • Reviewer progress tracking with leaderboard
  • CSV import/export
  • Email notifications (welcome, reminders)
  • Application status workflow
Next.js 15 TypeScript Sanity CMS NextAuth.js SendGrid

Creative Tools

Software for performers and artists

CabaretPlayer — macOS Audio Player for Live Performance

A native macOS audio player designed specifically for cabaret performances, musical theatre, and live shows.

The Problem: Standard music players aren't built for live performance. You need rock-solid reliability, easy navigation under stage lights, and features like pause markers and lyrics sync that iTunes will never have.

Key Features:

  • Playlist management with drag-and-drop reordering
  • Pause/intermission track markers
  • Lock mode to prevent accidental changes during shows
  • Waveform display with scrubbing
  • Volume normalization across tracks
  • Gapless playback
  • Synchronized karaoke/lyrics system
  • Character parts with color coding (EMCEE, SALLY, etc.)
  • Full-screen lyrics display
  • LRC file import for timestamped lyrics
Swift SwiftUI AVFoundation

Supported Formats: MP3, M4A, WAV, AIFF, AAC, FLAC

Eastwind — Node-Based Motion Graphics Editor

GPU-accelerated compositing for macOS

A motion graphics editor for macOS, designed for clean workflows and real-time GPU-accelerated performance. Similar to After Effects or Nuke but with a modern Swift/Metal architecture.

The Vision: Professional motion graphics tools are expensive and complex. Eastwind brings node-based compositing to macOS with native performance and an intuitive interface.

Node Types:

  • Source: Image, Video, Text, Solid, Shape
  • Transform: Position, Scale, Rotation, Crop
  • Composite: Blend modes, Merge, Mask
  • Output: Composition output, Precomps

Key Features:

  • Visual node graph with draggable connections
  • Keyframe animation with easing curves
  • Metal GPU rendering with texture caching
  • Real-time preview with playback controls
  • MP4 export via AVFoundation
  • Topological sort for render order
Swift 5.9+ SwiftUI Metal AVFoundation

Status: MVP in development — core node editor, solid rendering, and preview working

Summary Statistics

8
Production Apps
5
Platforms
5
Languages
4
Databases

Web, iOS, Android, macOS, Windows  |  TypeScript, Swift, Kotlin, Python, PHP  |  PostgreSQL, SQLite, MySQL, Sanity CMS

Technology Expertise

Frontend

Next.js (14, 15, 16), React 19, SwiftUI, Jetpack Compose, Tailwind CSS

Backend

Express.js, Node.js, Python, PHP

Databases

PostgreSQL, SQLite (Room, SwiftData), MySQL/MariaDB, Sanity CMS

Authentication

NextAuth.js, Microsoft 365 OAuth, Google OAuth, JWT

Mobile

iOS (Swift, SwiftUI, SwiftData), Android (Kotlin, Jetpack Compose, Room)

DevOps

Vercel, Bitnami LAMP, SCP/SSH deployment, Cron scheduling

Philosophy

Build, Don't Buy (When It Makes Sense)

Off-the-shelf software works for generic problems. But when your workflow is specific, when you understand the domain deeply, when the existing tools don't quite fit — sometimes building is faster, cheaper, and better.

Task LMS took 5 days. The TEDxSavannah app took 24 hours. The CRM has saved over $1 million.

Constraints Drive Quality

TaskQueue's one-task-at-a-time rule isn't a limitation — it's the entire point. CabaretPlayer's lock mode exists because performers need it. Good software often comes from saying no to features, not adding them.

Creative + Technical = Better Solutions

Creativity without technical understanding produces ideas that can't be built. Technical skill without creative thinking produces solutions nobody wants to use.

The combination creates technology that's both buildable and valuable.

Let's Build Something

Whether you need a custom application, a platform for your community, or a creative approach to a technical challenge — let's talk.