Available for hire

I build things
that ship.

Senior full-stack engineer with deep expertise in Next.js, React Native, AI automation, and production systems. I turn complex problems into products people use.

10+ Years Shipping
110+ Projects Built
3 Platforms
Next.js React Native TypeScript AI Agents Rust Supabase Swift PostgreSQL Design Systems Turborepo Claude SDK Docker Next.js React Native TypeScript AI Agents Rust Supabase Swift PostgreSQL Design Systems Turborepo Claude SDK Docker
🏥
Industries
Healthcare, Fintech, Manufacturing, EdTech
🌐
Reach
Shipped to 3 continents, 4 app stores
Stack Range
Web, Mobile, Native iOS, AI, Rust

Case Studies

01–05
01
B2B Platform

B2B Product Platform

Rebuilt a manufacturer's legacy site into a modern bilingual B2B platform with 450+ product catalog, admin dashboard with row-level security, and quote-request workflows.

Next.js 15 Supabase TypeScript shadcn/ui Design System Modular Design CMS Playwright i18n
450+Products
EN/ZHBilingual
RLSSecurity
E2ETested
client-project.com/products
EN 中文
Products About Contact
Industrial Solutions
Engineered for
Safety & Compliance
ISO certified manufacturer serving commercial and industrial markets for 30+ years.
View Catalog Request Quote
Featured Products Filter ▾
💡
LED Module A
PRD-EX-2400
🔌
Control Unit
PRD-CU-1800
Power System
PRD-PS-5000
02
Healthcare Mobile

ClinicApp

Cross-platform mobile app for clinic management with offline-first data sync, push notifications, crash reporting, and E2E testing — built for environments where connectivity is unreliable.

React Native TypeScript Firebase MobX Detox E2E Storybook
iOS+AndroidPlatforms
OfflineFirst
HIPAAReady
9:41 ●●●● WiFi
Good morning, Dr. Chen
Dashboard
👥
24
Patients today
🕒
8
Upcoming
Synced 2 min ago · 3 pending
Next Patients
JW
James Wong
Follow-up · 10:30 AM
Scheduled
SL
Sarah Lee
New patient · 11:00 AM
Waiting
03
AI Automation

Looper

Enterprise-grade autonomous agent platform. Orchestrates AI agents with cron scheduling, persistent memory, browser automation, and multi-channel notifications — all monitored through a real-time WebSocket dashboard.

Turborepo TypeScript Hono Playwright Claude SDK WebSocket Telegram
51+Tests
LiveDashboard
24/7Autonomous
localhost:3000/dashboard
🔎
📊
Agent Swarm 3 active
🤖
Code Reviewer
Reviewing PR #142 · 3 files
🔎
Log Monitor
Scanning prod errors · last 1h
🌐
Web Scraper
Collecting pricing data · 12 sites
14:32:01 Code Reviewer completed PR #141
14:32:15 Dispatching Log Monitor (cron: */5)
14:33:02 Web Scraper: rate limited on site 7
14:33:08 Retrying with backoff...
04
Media Platform

SoundByte

Full-stack audio clip platform: native iOS app (Swift) with iMessage extension, Express backend with S3 storage, waveform editor with FFmpeg processing, and Meilisearch-powered instant discovery.

Swift Express.js MongoDB AWS S3 FFmpeg Meilisearch
7Repos
SwiftNative iOS
CI/CDFastlane
architecture · soundbyte ecosystem
System Architecture
📱
iOS App
Swift · UIKit
💬
iMessage Ext
Messages Framework
🌐
Submit Portal
Next.js · Wavesurfer
API Server
Express · JWT · Winston
🗃
MongoDB
GridFS · Mongoose
☁️
AWS S3
Audio storage
🔍
Meilisearch
Instant discovery
05
EdTech Product

CodeQuest

A gamified interview prep platform inspired by Duolingo — for senior engineers. Live coding in Monaco Editor, AI-powered feedback, spaced repetition, streaks, and a skill progression system.

Next.js Prisma Auth.js Monaco Editor Claude API shadcn/ui
28wkRoadmap
$250KMRR Target
AIFeedback
codequest.dev/challenge/system-design-lru
Challenge
Hard
Design an LRU Cache
Implement a data structure that follows the Least Recently Used eviction policy with O(1) get and put operations.
Level 14 2,450 / 3,800 XP
🔥 12 day streak
solution.ts
class LRUCache<K, V> {
  private map = new Map<K, V>();

  constructor(
    private capacity: number
  ) {}

  get(key: K): V | undefined {
    const val = this.map.get(key);
    if (val !== undefined) {
      this.map.delete(key);
      this.map.set(key, val);
    }
    return val;
  }
}
Claude: Good approach using Map ordering. Consider adding a put() method that handles eviction when capacity is exceeded. The generic types are a nice touch.

From Brief to Production

💬
01
Discover
Understand your problem, users, and constraints. Define success criteria upfront.
🛠
02
Architect
Design the system, choose the right stack, and plan for scale from day one.
03
Build
Ship in iterative sprints with working demos. No vanishing acts — you see progress weekly.
🔎
04
Test
E2E tests, accessibility audits, performance benchmarks. I don't ship what I haven't verified.
🚀
05
Ship
Deploy to production with CI/CD, monitoring, and documentation. Clean handoff guaranteed.

What I Work With

Frontend
  • Next.js 15 (App Router, RSC)
  • React 19 / React Native
  • TypeScript (strict)
  • Tailwind CSS / shadcn/ui
  • Framer Motion
Backend
  • Node.js / Express / Hono
  • Python / FastAPI
  • Rust / Axum
  • GraphQL / REST APIs
  • WebSocket / SSE
Data
  • PostgreSQL / Supabase
  • MongoDB / Redis
  • Prisma / Drizzle ORM
  • pgvector / ChromaDB
  • Meilisearch / Algolia
AI & Automation
  • Claude / OpenAI / Ollama
  • LangChain / LangGraph
  • Agent orchestration
  • Playwright automation
  • MCP servers
Mobile
  • React Native / Expo
  • Swift / UIKit
  • Firebase suite
  • Fastlane CI/CD
  • Detox E2E testing
Infrastructure
  • Vercel / AWS (S3, Lambda)
  • Docker / Docker Compose
  • Turborepo monorepos
  • GitHub Actions CI/CD
  • Playwright / Vitest
Design & CMS
  • Design systems / tokens
  • Modular component architecture
  • Payload CMS / Strapi
  • Storybook documentation
  • Figma to code workflows
Practices
  • TDD / BDD
  • Accessibility (WCAG 2.1)
  • Performance optimization
  • Agile / Kanban
  • Code review & mentoring

Insights

Latest thinking
Mar 2026

Why I Built an Agent Swarm to Analyze 111 Projects

Using parallel Claude Code sub-agents to audit an entire portfolio in minutes. What I learned about orchestration, context windows, and letting AI agents do the boring work.

Feb 2026

Offline-First Mobile: Lessons from Building a Healthcare App

What happens when your users lose connectivity mid-patient record? How I designed sync queues, conflict resolution, and graceful degradation for a real clinic environment.

Jan 2026

The Case for Rust in Your Trading Stack

I rewrote our order execution engine from Node.js to Rust. The latency dropped 40x. Here's when Rust makes sense for fintech — and when it's overkill.

View all posts →
2 slots open · Available now

Let's build
something great.

Tell me about your project. I typically respond within 24 hours.

— or connect —