Selected work

A short list, on purpose. Each is a system I designed and built end to end, written up as a case study.

Systems

2026 · TypeScript, Next.js 15, React 19, Sanitylive · source private

SiteLaunch RVA

My web studio for Richmond small businesses. Sites go live two weeks after kickoff, sold as a one-time build or with $0 down on a monthly care plan. I set the packages and prices after surveying what Richmond competitors charge and include, then rebuilt the site around them.

One source of truth for pricing: every package, price and term lives in one typed module. It renders the packages page and the contact form, and it also generates the schema.org offers and /llms.txt, so what people, search engines and AI tools read can’t drift apart. AI-search ready: a robots.txt that names the AI crawlers it allows, LocalBusiness structured data, and a sitemap that pulls blog posts from Sanity. Motion that stays cheap: a page-enter transition, a header that condenses on scroll, and a reading-progress bar that writes straight to the DOM from requestAnimationFrame. All of it switches off under prefers-reduced-motion.

  • TypeScript
  • Next.js
  • React
  • Tailwind CSS
  • Sanity
  • schema.org
  • Vercel
2026 · TypeScript, Next.js 16, React 19, Postgreslive — sign-in required · source private

LifeDash

A personal dashboard — multi-board kanban, mood and wellness, nutrition, habits, long-term notes — built as a single Next.js app on Vercel. The brief I set myself: a Trello-style board for one person that feels instant, survives bad Wi-Fi, and keeps the data private.

Offline-first: the browser is the source of truth and the UI never waits on the network; state syncs to one API route that encrypts it (AES-256-GCM) before it touches Neon Postgres. Never lose an edit: versioned sync with optimistic concurrency — the server writes only if the version matches, otherwise the client merges per-entity by updatedAt with tombstones and retries. Testable by construction: a pure domain layer (types, Zod schemas, reducers) with no React or browser dependencies, feature modules that never import server code, and CI that runs typecheck → lint → unit with coverage thresholds → build → Playwright end-to-end on every PR. Light/dark theme, mobile layout, and an interview-style system design doc with diagrams.

  • TypeScript
  • Next.js
  • React
  • NextAuth
  • Neon Postgres
  • Zod
  • dnd-kit
  • Vitest
  • Playwright
  • GitHub Actions
  • Vercel
2026 · Python, multi-agent LLM, WebSocketsprivate — write-up on request

EdgeSeeker

An automated trading system for Kalshi prediction markets that runs two strategies side by side. A news-driven pipeline watches 50+ RSS feeds and a dozen Telegram channels, matches stories to open markets, and routes them through a five-agent LLM swarm (Claude, Gemini, GPT) that returns structured trade signals. A separate latency-arbitrage engine sits on Coinbase and Kalshi WebSockets and acts on crypto moves before the market maker reprices.

The interesting engineering is in the guardrails: every market is bucketed by certainty with its own sizing and exit rules; daily spend limits, per-event exposure caps, and drawdown circuit breakers sit in front of execution; and the whole thing is documented as a runbook, an architecture doc, and SQL analytics so it can be operated — and audited — by someone who didn't write it.

  • Python
  • asyncio
  • Anthropic API
  • multi-provider LLM routing
  • Redis
  • SQLite/Postgres
  • Telegram Bot API
2026 · TypeScript, Next.js 15, agentsprivate — write-up on request

Site-launch pipeline

A turnkey pipeline for producing small-business websites at agency scale. Shared packages — Zod content schemas per vertical, an SEO kit (schema.org, Open Graph, sitemaps), an accessibility-first component kit, and CMS config generators — feed per-vertical Next.js templates. A CLI scaffolds a new site; an audit script runs Lighthouse; agents fill content against the schemas. The demo site ships at Lighthouse 99/100/100/100.

Designed around Architecture Decision Records, runbooks, and playbooks from day one, because the point of the system is that it runs without the original author in the loop.

  • TypeScript
  • Next.js
  • Zod
  • pnpm workspaces
  • Lighthouse
  • agent workflows