About Me

Writing software since 2004, from enterprise systems to native Apple apps.

Background

Enterprise apps, SaaS products, and e-commerce sites, mostly on .NET and Node.js. I usually own a project from planning through launch, then stay on to keep it running.

Security & Maintenance

I build security in from the start: locked dependency versions, strict content security policies, and encryption for customer data. I also keep the code plain enough that whoever maintains it next can follow it.

Technical Focus

  • Developer Tools & SaaS

    Multi-tenant SaaS products with subscription billing, and open-source tools including an accessibility scan engine and Umami analytics dashboards.

  • Full-Stack & Distributed Systems

    React, TanStack, Next, Vue, Nuxt, Node.js, C#/.NET. Background job queues and event streams that keep up when traffic spikes.

  • Native Apple Apps

    Swift 6 and SwiftUI across iPhone, iPad, Mac, and Apple Watch. Widgets, complications, menu bar extras, StoreKit. Four on the App Store, more in the pipeline.

Certifications

Current certifications in web accessibility and enterprise CMS.

Introduction to Web Accessibility

W3C, through edX (W3Cx WAI0.1x)

Umbraco Master

Umbraco HQ

Sitecore 10 .NET Developer Certification

Sitecore

Technical Skills

What I work with and what I've gotten good at.

Backend Development

  • .NET & C#

    Enterprise APIs and background services, including financial systems that handle live transactions.

  • Microservices

    Splitting monoliths into services that scale on their own, connected through API gateways and message queues.

  • ASP.NET MVC & Web API

    REST APIs and auth on the Microsoft stack, going back to the .NET Framework days.

  • Node.js & Express

    My default for new projects: APIs, serverless functions, and server-side rendering.

  • BullMQ & Job Queue Processing

    Redis-backed job queues. BullMQ runs AccessHawk's scan queue, scheduled scans included, and SereneReader's background processing.

  • Server-Sent Events (SSE)

    Server-to-client streaming for live updates. Simpler than WebSockets when you only need one-way data.

  • GraphQL & REST

    I usually reach for REST, but GraphQL makes sense when clients need flexible queries.

Frontend Development

  • React, TanStack, Next, Vue, Nuxt

    React and Vue both. TanStack Start powers this site. SPAs, dashboards, e-commerce, static sites.

  • TypeScript & JavaScript

    TypeScript everywhere now. The type safety catches bugs before they ship.

  • CSS & SCSS

    Responsive layouts, design systems, and component styling. I own how the result looks as well as the markup behind it.

  • CSS Frameworks

    Tailwind for most projects. Bootstrap, DaisyUI, Shadcn when they fit better.

  • Accessibility (WCAG 2.1/2.2)

    ARIA, keyboard navigation, and screen reader support, backed by a W3C accessibility certification. I built AccessHawk and its open-source scan engine, A11yHawk.

  • Internationalization (i18n)

    SereneReader ships in 13 languages with complete message coverage. Per-locale plural rules, date and currency formatting, and localized URL routing with browser language detection.

  • Vite & Modern Build Tooling

    Vite on new work, Webpack on the enterprise codebases that still run it. Bundle splitting, tree shaking, build performance.

Apple Platform Development

  • Swift 6 & SwiftUI

    Four apps on the App Store across iPhone, iPad, Mac, and Apple Watch, each built from one shared Swift codebase. Strict concurrency on from the first commit.

  • SwiftData & Offline-First Sync

    Write to the local store, queue the mutation, and replay it when the network comes back, so the app keeps working offline.

  • WidgetKit & watchOS

    Home-screen and lock-screen widgets, Watch apps, and complications, planned around the limited timeline refresh budget.

  • StoreKit 2

    In-app purchase and entitlement handling, including universal purchase so one transaction covers iOS, macOS, and watchOS.

  • Xcode Cloud & App Review

    Automated builds and TestFlight uploads. I've been through review on iOS, macOS, and watchOS, metadata rejections included.

Database & Cloud

  • SQL Server & MySQL

    Schema design, stored procedures, and query tuning as tables grow.

  • MongoDB & Redis

    MongoDB for document storage, Redis for caching and queues. Use both daily.

  • Supabase

    PostgreSQL with a nice API layer. Good for projects that need auth and real-time without building it yourself.

  • Microsoft Azure

    App Services, Functions, Storage, DevOps. Most of my enterprise work runs on Azure.

  • AWS & Cloud Architecture

    EC2, S3, Lambda. I work in both AWS and Azure and pick based on what the project and the team already run.

  • Railway

    Runs the production deployments for my own products. Git push to deploy, with managed Postgres, Redis, and cron.

Platform & Tooling

  • Docker & DevOps

    Docker for local dev and production. GitHub Actions and Azure Pipelines for CI/CD. Kubernetes when the project needs it.

  • Playwright Browser Automation

    Headless browser automation for screenshots, accessibility scanning, and testing. Powers the crawler in AccessHawk.

  • Turborepo & Monorepo Architecture

    Turborepo with pnpm workspaces for shared packages and cached builds.

  • Cloudflare Security & CDN

    WAF rules, caching, and DNS in front of every project I run.

  • Enterprise CMS

    Umbraco Master Certified, Sitecore 10 Developer Certified. Years of enterprise CMS work, headless and traditional.

AI & Automation

  • Model Context Protocol (MCP)

    MCP servers and proxy tools that let AI agents talk to existing systems. I've built integrations for Azure DevOps, databases, and internal APIs.

  • LLM Integration

    Claude API, OpenRouter, and GPT. I route routine steps to cheaper models and save the expensive ones for the hard parts.

  • Workflow Automation

    n8n workflows that connect AI agents to existing systems and data, so repetitive tasks run on their own.

Other Expertise

  • ElasticSearch
  • OAuth/JWT
  • IIS & Apache
  • PowerShell Automation
  • Octopus Deploy
  • Performance Optimization
  • Test-Driven Development
  • SEO Best Practices
  • Agile / Scrum

What I've Built

Products I built and still run in production.

View All Projects
AccessHawk website screenshot

AccessHawk

  • Web Application

Automated WCAG scanning with Lighthouse and an AI review. Each issue is boxed on a screenshot with a suggested fix, in an interface built for low-vision and keyboard users.

  • Nuxt 4
  • TypeScript
  • MongoDB
  • Redis
  • BullMQ
SereneReader website screenshot

SereneReader

  • Web Application

A real-time reading platform with live updates over SSE, native clients on four Apple platforms, and complete localization into 13 languages.

  • Nuxt 4
  • TypeScript
  • i18n (13 locales)
  • Swift
  • SwiftUI
SPConnector website screenshot

SPConnector

  • Web Application

Multi-tenant print routing for e-commerce fulfillment. Real-time WebSocket delivery, AES-256-GCM encryption, and a load-balanced order queue.

  • Vue.js
  • Express.js
  • MongoDB
  • Redis
  • Polar.sh

Contact

Drop me a line. I read everything and reply within one business day.

Required fields are marked “(required)”.