Projects

A selection of software development and DevSecOps projects showcasing expertise in cloud security, federal compliance, and modern application development.

SaaS Products

Multi-tenant and hosted products, built end to end from idea to production infrastructure.

Spirely

Live
Churches — kids check-in & family management staff, admins

A multi-tenant SaaS for church kids' check-in and family management, syncing bidirectionally with Planning Center Online. A separate marketing/trial site provisions new church tenants into the platform through a server-to-server API, and an earlier self-hosted single-tenant version still exists as the original engine the SaaS was rebuilt from.

Ruby on Rails 7.2ReactTypeScriptVitePostgreSQLSidekiqRedisRodauthOry HydraTailwind CSS v4
Architecture & patterns: Multi-tenant (host-header tenant resolution) · Decoupled marketing site bridged via signed API · Passwordless auth · Background-job PCO sync
Hosting: Railway (Docker), Cloudflare DNS, GitHub push-to-deploy

Kidspire

Live
Churches wanting self-hosted, open-source ministry software

A self-hostable children's ministry portal — passwordless family profiles, child management, event registration, and bidirectional Planning Center Online sync — distributed both as a standalone Rails app and as a mountable Rails Engine gem. It's the flagship, MIT-licensed product of 5stones Software, an open-source church-software brand built around a shared "Inspire" framework.

Ruby on Rails 7.2ReactViteTypeScriptTailwind CSS v4PostgreSQLSidekiqRedisRodauth
Architecture & patterns: Mountable Rails Engine (namespaced schema) · AES-256-GCM encrypted OAuth tokens at rest · Designed as first module of a shared family-data framework
Hosting: Railway (separate web + Sidekiq worker services); marketing site on GitHub Pages

ChurchCred

Live
Churches — admins gamifying member engagement

A church credentialing and membership gamification platform that syncs member and check-in data from Planning Center Online, then awards points and badges members redeem in an admin-configurable merch store. Live in pilot use with a partner church.

Ruby on Rails (API)ReactViteTypeScriptSidekiqRedisPostgreSQLBlueprinter
Architecture & patterns: Decoupled Rails API + SPA · Per-org encrypted PCO OAuth credentials (multi-tenant) · Background-job sync · Serializer/Blueprint pattern
Hosting: Railway (web + worker processes, managed Postgres/Redis); Kamal-compatible Docker path; GitHub Actions CI (Brakeman, RuboCop, tests)

Errands Run

In Development
Consumers requesting errands, gig-economy runners, delegate reviewers

A gig-economy marketplace for outsourcing errands (rides, groceries, tasks) built around a delegate-approval workflow — every request passes through a delegate's review before a runner can fulfill it. Ships a web dashboard alongside native iOS and Android apps, with production stand-up currently in progress.

Node.jsExpressTypeScriptPrismaNext.js 16React 19NextAuthKeycloakPostgreSQLRedisSocket.ioSwift (iOS)Kotlin/Jetpack Compose (Android)
Architecture & patterns: Microservices behind path-based routing · Delegate-approval state machine · Shared cross-app types package · Docker Compose for local dev
Hosting: Railway (per-service deployment), Docker

Smartsby

In Development
Non-engineer small-business owners and founders

A gamified "Labs" platform that teaches non-engineers real business skills while they build the actual software their business needs — starting with an ad-strategy lab and a build lab. The marketing site and auth foundation are built; the interactive lab engine (modules, levels, XP) is the next phase.

Ruby on Rails 8Hotwire (Turbo + Stimulus)Tailwind CSS v4PostgreSQLSolid Queue/Cache
Architecture & patterns: Config-driven landing-page generation · Design system ported from a JS prototype into server-rendered Hotwire · TOTP 2FA
Hosting: Kamal → shared Hetzner VPS

AuthorScribe

In Development
Content creators, podcasters, and speakers with an audio/video archive

Upload podcasts, sermons, interviews, or documents, and AuthorScribe transcribes them, organizes them into folders and tags, and lets you chat with your entire archive using retrieval-augmented generation with cited answers.

ReactViteTypeScriptSupabase (Postgres + pgvector)Cloudflare R2Vitest
Architecture & patterns: Ingest → transcribe → embed → RAG-chat pipeline · Serverless edge functions per pipeline stage
Hosting: Vercel (frontend), Supabase (data + functions), Cloudflare R2 (storage)

Personal Tools & Utilities

Smaller, single-purpose apps built to solve a specific personal workflow problem — several running in daily use.

CredTracker

Live
Individual certified professionals (CISSP, PMP, Security+, etc.)

A personal certification-management dashboard: progress rings, a log of completed and scheduled CE credits, per-certification domain/category breadth tracking, submission-ready text for CE portals, and recommendations on where to focus next.

Ruby on Rails 8.1HotwirePostgreSQL 16TOTP 2FA
Architecture & patterns: Polymorphic jsonb-rules certification model (new cert types need no migration) · Shared-VPS companion-app convention
Hosting: Kamal → shared Hetzner VPS

Triage

Live
Individual professionals managing email-driven tasks

A mobile-first task triage inbox — starred emails arrive as tasks you triage with one of three actions: Ignore, Snooze (auto-resurfaces at 6am/5pm), or Schedule (pushed to Todoist, then placed on the calendar by Reclaim). Includes sender/company auto-classification.

Ruby on Rails 8.1HotwirePostgreSQL 16Fastmail JMAPTodoist API
Architecture & patterns: Three-action triage state machine · Idempotent JMAP ingest · Sender-to-company mapping
Hosting: Kamal → shared Hetzner VPS (the original app the shared-VPS convention was built around)

Clear Keto Life

Live
Individuals on a self-directed clean-keto challenge

A mobile-first dashboard for a keto challenge — tracks daily macros, hydration and electrolytes, a rotating supplement stack, weekly meal-prep checklists, and a five-phase progress timeline with mood/energy check-ins and earnable badges.

TanStack StartReact 19Drizzle ORMPostgreSQLBetter AuthBun
Architecture & patterns: Single integration-seam hook for all screens · Optimistic UI with cache rollback · Idempotent upserts
Hosting: Railway

Job Hunter Compass Navigator

In Development
Individual job seekers

Tracks and organizes job applications with CSV import and Notion sync. Automatically health-checks saved job URLs and archives postings that have gone dead, and uses AI to generate personalized recommendations based on a configurable profile.

ReactTypeScriptViteSupabaseClerkOpenAI APINotion API
Architecture & patterns: BFF-style serverless functions for scheduled/bulk operations · Zustand state management
Hosting: Supabase (Postgres + Edge Functions); built on the Lovable platform

Apex

Prototype
Individual security/PM professionals (CISSP, PMP)

A dashboard for tracking Continuing Professional Education credits against CISSP and PMP renewal cycles — visualizes domain coverage, credit splits, and PMP Talent Triangle balance.

TanStack StartReact 19Tailwind CSS v4Recharts
Architecture & patterns: File-based routing · SPA-with-SSR shell
Hosting: Configured for Cloudflare, not yet deployed

Email Lakehouse

In Development
Personal — data engineering/ML learning project

Ingests 15+ years and roughly 104,000 emails into a local DuckDB + Parquet lakehouse through a bronze/silver/gold pipeline. An LLM classifies unread mail, and a feedback-corpus builder joins those classifications against real outcomes to build training data for Triage.

PythonDuckDBApache ParquetFastmail JMAP APIAnthropic API
Architecture & patterns: Medallion (bronze/silver/gold) lakehouse architecture · Local-first with a documented zero-rewrite path to cloud (S3/BigQuery/Snowflake)
Hosting: Local-only; feeds a companion API on triage.rest

Client Work

Contract and freelance builds for outside businesses.

Graceful Living

Live
Small business — marketing/lead-gen for aging-in-place technology products

Marketing and lead-generation site for senior-focused technology products, featuring an interactive AI voice-assistant demo that captures visitor emails, a blog, and an admin dashboard with analytics and CRM sync.

ReactViteTypeScriptSupabaseClerkGemini API
Architecture & patterns: Webhook-driven auth-to-database sync · Serverless edge functions · CRM integration
Hosting: Lovable platform + Supabase

Gulf Coast Vows Studio (Alpha Weddings)

In Development
Small business — solo wedding officiant, Southwest Florida

A wedding officiant marketing site (ceremonies, packages, venues) plus a client portal for booking a date, e-signing and paying the application via Stripe and PandaDoc, uploading documents, and scheduling through Calendly.

React 18TypeScriptViteSupabaseStripeCalendlypdf-lib
Architecture & patterns: Public/portal route split · Serverless edge functions for webhooks, payments, and PDF generation
Hosting: Vercel + Supabase

Applied Integrated Technologies — Corporate Site

In Development
Small business — defense & intelligence services contractor

A rebuild of a compromised WordPress marketing site: capability pages for cybersecurity, engineering, intelligence, and critical-infrastructure services, plus careers and contact.

HTMLCSSVanilla JavaScript
Architecture & patterns: Static multi-page site · CSP via headers · Honeypot spam protection on the contact form
Hosting: Cloudflare Pages (Vercel-portable)

Government Client Engagements

Work performed for a federal government client in the aviation/enterprise-architecture space. Details below are described generically and omit agency- and program-identifying specifics per the engagement’s confidentiality terms.

Data Access SDK & Sync Tool

Live
Government client — federal aviation/systems-engineering sector

A Python SDK and CLI that authenticates against a government data-access API and syncs configured data classes into a local SQLite database for offline querying, with an export utility that flattens synced records into Markdown for use with AI research tools.

Python 3.9+SQLiterequests
Architecture & patterns: Schema-on-read (generic JSON records table) · Pip-installable CLI · SSL trust-store patch for a TLS-inspecting government proxy
Hosting: None — local CLI/library tool

Enterprise Architecture Dashboard Suite

Prototype
Government client — technical leadership, enterprise architecture / aviation sector

A suite of five interactive dashboards simulating enterprise-architecture governance tooling for a large technical program: program health/KPI tracking, a task workbench, an interface/dependency registry, a framework-comparison view, and an artifact approval workflow — built as a management-preview prototype ahead of real backend integration.

HTMLCSSVanilla JavaScript
Architecture & patterns: Audience-segmented dashboards · Mock-data layer with data-source provenance badges
Hosting: None — static preview, not deployed

Infrastructure, Automation & Code Samples

Self-hosted infrastructure, small productivity automations, and standalone code samples.

BizStack — Self-Hosted Business Infrastructure

In Development
Internal — own business operations backbone

A self-hosted business-operations stack — CRM, time tracking, workflow automation, project management, accounting (Bigcapital), marketing automation (Mautic), and product analytics (OpenPanel) — with each application isolated on its own hardened VPS and tied together over a private mesh network, plus a custom MCP server exposing a self-hosted CRM to AI tooling.

Docker / Docker ComposeCaddyCrowdSecPostgreSQLMySQL/MariaDBRedisClickHouseresticNode.js/TypeScriptPHP/Laravel
Architecture & patterns: Multi-VPS, one dedicated box per application tier (deliberately not monolithic, no Kubernetes) · Tailscale mesh VPN restricting admin UIs to private access · Encrypted offsite backups on systemd timers
Hosting: OVH (multiple VPS boxes), Railway, Tailscale, Cloudflare DNS, Backblaze B2

Automation & Integration Scripts

In Development
Personal productivity

A collection of small glue scripts automating personal workflows: allocating budget funds by rule in YNAB from a Google Calendar and Sheets, capturing starred emails into Notion and Sunsama, and syncing tasks between Notion and Sunsama.

Node.jsPythonNotion APIYNAB APIFastmail JMAP
Architecture & patterns: Small single-purpose scripts · Scheduled execution via GitHub Actions cron
Hosting: GitHub Actions (scheduled runs); local/manual for the rest

Drupal Custom Modules

Code Sample
Code sample — portfolio piece

Two custom Drupal modules: one blocks duplicate account registrations by email and sends the existing account a password-reset link; the other generates per-user, per-action encrypted verification tokens for email verification, account activation, and password reset.

PHPDrupal 9/10 module API
Architecture & patterns: Hook-based extension · Dependency-injected services · Encryption-with-hash-fallback strategy
Hosting: Not deployed — source code sample

Interested in seeing more or discussing a project?

Get in touch