CrumbWarden

Publication review in progress

A free, local-first browser extension that blocks known advertising and tracking requests, manages supported cookie consent dialogs, and keeps privacy controls within reach.

I built CrumbWarden as a privacy-first Manifest V3 extension for Chromium and Firefox. It bundles its blocking rules, gives users precise control over cookie choices, promotional popups, trusted and blocked sites, and protection settings, and keeps preferences and reports on the device. There are no accounts, developer analytics, telemetry, runtime list downloads, or browsing-history uploads. The public product page and privacy policy are live while the browser-store packages await review.

Key outcomes

  • Built version 1.0 distributions for Chromium and Firefox from one TypeScript source tree
  • Compiled bundled advertising and tracking domain rules for local request protection
  • Published a product page and privacy policy ahead of browser-store review

Highlights

  • Local-first settings, site rules, protection reports, and aggregate statistics
  • User-controlled cookie choices, popup handling, site trust, and protection pauses
  • Automated release checks covering types, linting, unit tests, builds, packages, and Chromium behavior

Tech Stack

TypeScriptBrowser Extension APIsManifest V3WebExtensionsHTML/CSSViteVitestPlaywright
Product PageChrome: Publication Review in ProgressFirefox: Publication Review in Progress

StackApply

Free beta live for Chromium and Firefox

A local-first browser extension that scans job application pages, identifies likely profile fields, and lets applicants review high-confidence matches before autofilling.

I built StackApply as a real cross-browser product, not an automatic application bot: it supports multi-step application workflows, reports fields that were filled, need review, or were blocked, stores applicant data locally, and never submits an application. One TypeScript codebase produces separate Manifest V3 builds for Chromium browsers and Firefox, with automated and manual release QA. A paid-feature architecture using Stripe-hosted checkout and signed entitlements is in development while the public Free Beta remains deliberately locked to free features.

Key outcomes

  • Released version 0.9 as a Free Beta through the Chrome Web Store and Firefox Add-ons
  • Built confidence-based detection and guarded autofill that favors review over incorrect data entry
  • Kept applicant profiles, work history, and education data in local browser storage

Highlights

  • Separate verified Chromium and Firefox distributions from one TypeScript source tree
  • User-controlled scanning, individual or bulk filling, and multi-page application support
  • Regression coverage for matching, storage, browser behavior, and release builds

Tech Stack

TypeScriptJavaScriptBrowser Extension APIsManifest V3WebExtensionsHTML/CSSViteVitestPlaywrightStripe architecture

Tabletop Campaign Archive

Live full-stack application

A production-deployed campaign platform for organizing interconnected characters, sessions, locations, lore, plot points, spells, and equipment.

I designed and shipped the Angular application, Express REST API, and normalized PostgreSQL model used to manage years of connected campaign data. Public visitors get a restricted read-only demo, while authenticated keepers use protected CRUD workflows; SQL-level visibility rules prevent restricted records from reaching unauthorized users.

Key outcomes

  • Deployed the frontend, API, and database through Cloudflare Workers, Render, and Neon
  • Modeled campaigns, sessions, characters, locations, lore, aliases, and many-to-many relationships
  • Implemented authenticated editor and restricted demo roles with signed sessions and protected routes

Highlights

  • Parameterized and transactional repository-layer queries with aggregated relationship data
  • Responsive search, filtering, relationship management, and explicit loading/error states
  • Backend, frontend, service, and end-to-end validation with Vitest and Playwright

Tech Stack

Angular 21TypeScriptRxJSNode.jsExpress 5PostgreSQLSCSSVitestPlaywrightCloudflare WorkersRenderNeon

Full Stack Innovations Quick Launch

Template previews live; self-service templates coming soon

A productized Angular website system with eight reusable designs and eight matching self-service editors for quickly configuring, validating, purchasing, and delivering customer sites.

I own the platform end to end: shared configuration patterns keep copy, branding, media, links, and SEO out of component markup; assisted-service and self-service workspaces support home services, appointments, photography, art, creator, streaming, and lightweight commerce use cases. Template previews are available now, with self-service templates coming soon. Local connected workflows cover saved projects, sanitized uploads, frozen revisions, Stripe sandbox checkout, entitlement-bound ZIP delivery, and purchase recovery without claiming that public self-service sales are live.

Key outcomes

  • Built 16 production site/editor builds around eight reusable customer-facing designs
  • Centralized customer content, brand colors, assets, links, and SEO in typed site configuration
  • Verified all eight local mock purchase, recovery, and exact-ZIP delivery flows

Highlights

  • Responsive editors with local drafts, validation, preview, and portable configuration files
  • Automated build, accessibility, responsive-layout, browser, and archive inspection across the collection
  • Stripe sandbox architecture for hosted checkout, verified webhooks, receipts, refunds, and private downloads

Tech Stack

Angular 21TypeScriptRxJSNode.jsPlaywrightStripe CheckoutGitHub ActionsHTML/CSS

Northstar Workforce Solutions Dashboard

Local case study with automated QA

A staffing and workforce-management dashboard built to demonstrate production-style Angular architecture and testable internal-tool workflows.

Northstar models how recruiting and operations teams manage openings, candidates, users, permissions, and hiring activity across tenants. I paired authenticated, role-aware CRUD workflows with an isolated seeded Playwright harness so automated tests exercise real user paths without changing local development data.

Key outcomes

  • Built authenticated routing, session expiry, password recovery, and role-based authorization
  • Created tested CRUD workflows for jobs, candidates, and admin-only user management
  • Added eight Playwright end-to-end scenarios backed by isolated, repeatable seed data

Highlights

  • Page objects, API fixtures, runtime data preparation, and feature-based test organization
  • Reusable RxJS services and typed Angular data access
  • Responsive Angular Material dashboard and internal-tool presentation

Tech Stack

Angular 21Angular MaterialTypeScriptRxJSSCSSjson-serverVitestPlaywright

Aginspire

Deployed and live at aginspire.org

A responsive Angular website delivered for an agriculture education nonprofit and deployed on the client's hosting.

I handled requirements, implementation, original on-site photography, client feedback, and deployment handoff. The single-page experience presents the organization's educational programs clearly across desktop and mobile devices.

Key outcomes

  • Delivered the client project from requirements gathering through deployment
  • Implemented responsive layouts for mobile, tablet, and desktop use
  • Iterated directly with the client on content, design, and functionality

Highlights

  • Accessible, audience-focused information architecture
  • Original photography captured during an on-site client visit
  • Client-managed hosting handoff

Tech Stack

AngularTypeScriptSCSSResponsive Web Development
Live SiteGitHub Repo (Private)

Built with React and TypeScript, with accessible design and static route rendering.