Projects
Products and open source, one engineer.
Each one is designed, built, deployed and supported by me. Below: what it does, how it is put together, and the engineering decisions I would defend in a design review.
InsightForge
LiveEmail delivery observability that runs entirely inside the customer’s own Azure subscription. Bounce tracking, header inspection and per-message flight tracking for Postmark, with Azure Communication Services and SendGrid support.
Architecture
- Webhooks
- Ingestor (fast-ack)
- Queue
- Processing
- Table Storage
- API
- React dashboard
Engineering highlights
- Zero call-home design: customer tokens and event data never leave their tenant.
- Fast-ack ingestion decoupled from processing through queues, so webhook bursts never drop events.
- Pluggable token adapters let new provider auth models ship without touching the ingest path.
- Nightly Janitor rolls hot data (configurable 30–180 days) into Blob Cool archive for compliance.
- One-click Marketplace install: Bicep provisions everything and a bootstrap job registers webhooks and backfills.
Stack
- .NET 10
- Azure Functions
- Table Storage
- Key Vault
- Bicep
- React
- Static Web Apps
- Entra ID
BulkForge
LiveCompliance-first bulk email orchestration. A hosted control plane coordinates jobs while a customer-deployed agent does the sending, so delivery credentials stay in the customer’s tenant.
Architecture
- Dashboard
- Engine API (control plane)
- Customer agent polls
- Postmark / ACS / SendGrid
Engineering highlights
- Hybrid architecture: SaaS convenience with the security posture of a self-hosted product.
- Pull-based agent means no inbound firewall holes in the customer’s network.
- Per-recipient audit trail for every send.
- Delivery channel is a configuration choice, selected at Marketplace install.
- Terraform and ARM templates for repeatable deployment.
Stack
- .NET
- Next.js
- Terraform
- ARM
- Azure Marketplace
- Entra ID
- SQL Server
Vigil
LiveAzure Key Vault expiry monitor. It warns before secrets, certificates and keys expire, and deploys entirely inside the customer’s subscription. Free tier available.
Architecture
- Scheduled function
- Key Vault inventory
- Expiry evaluation
- Alerts
Engineering highlights
- Solves a real outage cause: silent credential expiry.
- Runs in the customer’s subscription, so there are no secrets to hand over.
- Licensing and free tier built in from day one.
- Documented runbooks for recovery and custom email domains.
Stack
- .NET
- Azure Functions
- Key Vault
- Static Web Apps
Dad Is Dead
LiveDigital legacy planning for individuals: secure document storage, custodian management, proof-of-life check-ins and death notification workflows.
Architecture
- Next.js app
- Auth gateway (OIDC)
- REST API
- Daily timer
- Queue
- Worker
Engineering highlights
- Swappable identity provider (Entra ID or Keycloak) behind one interface.
- Short-lived JWTs (15 min) with refresh tokens in HttpOnly cookies.
- Proof-of-life engine: a timer function enqueues checks and a background worker processes them.
- Account deletion and hard-delete sweeps designed in for privacy.
- Terraform infrastructure and GitHub Actions pipelines.
Stack
- ASP.NET Core
- Next.js 15
- React 19
- Azure Functions
- Terraform
- GitHub Actions
Claude Agent SDLC Toolkit
Open sourceAn MIT-licensed set of Claude Code agent roles for running a software team with hard release gates. I extracted it from the workflow I use to build and ship my own products. Version 0.1, newly published.
Architecture
- Orchestrator
- Engineering manager
- Backend and frontend engineers
- QA and security review
- QA and product sign-off
- Production
Engineering highlights
- Seven role definitions: orchestrator, engineering manager, backend and frontend engineers, QA, security reviewer and architect.
- The engineering manager never writes code. It decomposes work and verifies results, which keeps planning and implementation separate.
- Production is blocked until independent QA and product reviews both return APPROVED, and any P0 failure (security, data loss) blocks a release outright.
- Stack-agnostic rules, with .NET and Next.js implementations included, plus a release-validation playbook.
- Candid about its limits: the README says it has not been run end to end outside my own setup.
Stack
- Claude Code
- Agent definitions
- Markdown
- .NET
- Next.js
QueryCompass
In progressA Kanban pipeline for writers tracking literary-agent query submissions. It replaces the usual spreadsheet with a visual board that tracks status, requirements and exclusivity deadlines.
Architecture
- React client
- Keycloak auth
- .NET API
- Hangfire jobs
- SQL Server
Engineering highlights
- CI fails the build if the EF Core model drifts from its migrations.
- Containerized local stack that boots in one command, with migrations applied on startup.
- Background jobs on Hangfire; AI-assisted features through the Claude API.
Stack
- .NET
- EF Core
- Hangfire
- Keycloak
- React
- Docker