Zoe Ying Full-stack engineer Available
Senior full-stack engineer / TypeScript · Node

I build production AI products, and the agentic infrastructure under them.

Ten-plus years across React/TypeScript front ends and Node/PostgreSQL back ends. Solo SaaS live on the App Store. Two MCP servers deployed and live in claude.ai Connectors. I own the whole stack, from the data model to the box it runs on.

Location
Montreal, QC · Canada
Availability
Canada remote · Montreal hybrid
Experience
10+ years · since June 2015
01

What I do

Operating model
01

Own the whole stack

Data model, product surface, deployment, and the infrastructure it runs on. One person accountable end to end, no hand-off seams.

02

Both ends of the barbell

I ship products real users touch and build the agentic-AI systems underneath them. Most engineers do one, not both.

03

The smallest durable system

Scope down what to build, then keep it cheap to run and easy to maintain. Satisfait Là runs for under ~$100/month.

04

Agentic-first workflow

Claude Code and Cursor as daily drivers. Codebases structured for agent consumption, context files and tool schemas, parallel AI-assisted development.

02

Selected work

2015 — 2026
01

Satisfait Là

Solo SaaS · Live on the App Store

Scheduling SaaS built end to end: a client booking UI, a native iOS app, Stripe payments, transactional email, and admin endpoints. Every piece of production plumbing owned alone.

  • Built the Stripe payment flow end to end, from checkout through confirmation into booking state.
  • The schedule engine is a layered, composable pipeline: weekly recurring rules, then date overrides and blackouts, subtract existing bookings, apply min-notice and slot-granularity constraints. New rule types extend it without a rewrite.
  • Solo on all of it, Stripe, auth, Resend, Cloudflare D1/R2/Workers. The iOS client is native SwiftUI.

Built AI-native with real engineering discipline: Claude Design for interface, Claude Code for implementation, structured agent context, code review, and an e2e test gate. This is AI-agent-driven development plus product-scoping judgment, not a shipped ML feature.

Stack
TypeScript/TanStack (Start + Query)/React/Cloudflare Workers/PostgreSQL/Swift & SwiftUI/Stripe/Resend
02

badbills-mcp

MCP server · Live in claude.ai Connectors

A Model Context Protocol server that lets Claude answer natural-language questions against a private PostgreSQL database behind real auth, e.g. "who owes me" over a personal ledger.

  • OAuth 2.1 end to end, dynamic client registration, PKCE, cookie sessions. I implemented it rather than lean on a managed provider, keeping full control of credentials and exactly what the model can reach.
  • Scoped the model to a read-only DB role: it can read, but cannot write, drop, or reach other schemas, so a prompt-injection attempt has nothing to exfiltrate or mutate.
  • Deployed on a personal Proxmox homelab behind a Cloudflare Tunnel as an OpenRC service.
Stack
TypeScript/Model Context Protocol SDK/OAuth 2.1/PostgreSQL/Cloudflare Tunnel/Proxmox & LXC
03

qa-master-mcp

MCP server · agent-eval loop

An MCP server that gives an agent a hands-free end-to-end browser: navigate, click, type, screenshot, and assert against a live app.

  • Passes solid, reusable scripts to the browser-control layer (Chrome DevTools Protocol) rather than narrating each step, a deliberately token-efficient design.
  • Runs as the agent-eval loop for Satisfait Là: drives real user flows and verifies behavior, closing the retry loop on AI-generated UI changes before they ship.
  • Complements deterministic Playwright e2e (the PR gate) with the human, visual, and UX checks code assertions miss, returning screenshots as evidence. Built around layered, maintained context documents the agent runs against.
Stack
TypeScript/Model Context Protocol SDK/Chrome DevTools Protocol/Proxmox & LXC
04

Airgraft

Web IoT R&D · 2021–2025

Web R&D on connected hardware: in-browser tooling for partners, and Bluetooth-connected web apps talking to physical devices.

  • Built an in-browser batch QR scanner so partners could scan a full tray of 50 pods at once from the web app. Codes were 15 mm × 15 mm under inconsistent lighting; ZXing couldn't read them, so I integrated OpenCV's pre-trained WeChat QR model to decode where the standard library failed.
  • Built Web Bluetooth apps with real-time device state and paired-device sessions, resolving vendor quirks at the protocol level so behavior matched across Chrome, iOS WebView, and Android WebView.
  • Built and maintained the Airgraft Merch store on Shopify (Liquid theme/template system).

The QR work integrated a pre-trained model into the pipeline — I didn't train anything, and I don't claim a decode rate. The honest ceiling: reading the full tray where ZXing failed.

Stack
TypeScript/Web Bluetooth API/OpenCV (WeChat QR)/Shopify Liquid
05

Webistry

Forward-deployed · 2025–2026

An embedded engagement inside a large US enterprise client's own team and infrastructure, working directly with their engineers to take a migration from a vague spec to a production pipeline.

  • Built the front end and migration pipeline for an LLM-driven ~700 MiB data migration from WordPress (Gutenberg blocks) to Contentful: ~150 Gutenberg block types mapped into ~50 Contentful content models, defined as the migration progressed.
  • The source was too irregular for a rigid deterministic script, so I routed the ambiguous mappings through an LLM path with schema validation.
  • Built a version-control layer over populated data (compare, roll back, re-import without losing reviewer work), a state machine over import steps, and a human-in-the-loop QA review tool that turned reviewer notes into approvable correction actions.
Stack
TypeScript & JavaScript/OpenAI + Gemini APIs/Contentful (GraphQL)
06

Open-source

Public · github.com/zoexx

Tooling I've open-sourced around agentic development and self-hosted infrastructure.

  • end-to-end-review-skills — Agent Skills for layer-by-layer code review in Claude Code (frontend, backend, database, security) with an orchestrator that merges them into one report.
  • homelab-cloud-browser — a self-hosted Chrome DevTools Protocol browser endpoint on a Proxmox LXC: headless Chromium plus an auth proxy, a drop-in browser backend for agent tooling.
03

Stack

Languages → Infra
Languages
TypeScriptJavaScriptPHPPython (scripting)
Frontend
ReactNext.jsTanStackVueTailwindModern CSSStorybook
Backend & data
Node.jsExpressLaravelPostgreSQLMySQLMongoDBRedisSupabaseRESTGraphQLWebSocketMQTT
AI & agentic
Model Context ProtocolTool / function callingLLM pipeline orchestrationClaude / OpenAI / Gemini APIsClaude Code & CursorOAuth 2.1 + scoped-role agent security
Infra & deploy
Cloudflare (Workers, Pages, D1, R2, Tunnel, Hyperdrive)AWS (EC2, S3, Cognito, Lambda)DockerProxmox / LXCGitHub ActionsCircleCIJenkins
Mobile
Native SwiftUI (iOS)WebView hybrid (iOS / Android)
Testing
PlaywrightCypressVitestJestAppiumBrowserStackJMeterSentry
Payments & e-commerce
Stripe (production)Shopify (Liquid + Storefront / Admin API)
04

Experience

Unbroken since 2015
2025 — 2026
Senior Frontend Developer (contract)
Webistry inc.
Montreal
2021 — 2025
Web IoT R&D Software Engineer
Airgraft inc.
Montreal
2019 — 2021
Software Engineer
Pearl Studio inc. & Airgraft inc.
Remote
2018 — 2019
Senior Front-End Engineer & Project Lead
FUZAMEI Technology
2016 — 2018
Front-End Developer
Angel Align Technology
2015 — 2016
Front-End Developer
Hao Yi Ju Technology

Unbroken history since June 2015 — 10+ years.