● Available · Hong Kong · 廣東話 / English / 普通話

Chan Ho Yin

Senior Full-Stack · Platform-Cloud · Agentic AI Engineer

📧 oscarhychan@gmail.com · 🔗 github.com/oscarhyc

AVAILABLE · OPEN TO AGENTIC-AI / PLATFORM ROLES
📧 Email owner@example.com
🔑 Password test123
Agentic Systems System Architecture Agentic Engineering Agent Guardrails & HITL TDD Agent Harness Design AgentOps
01 / 14

/01· THE AGENT STACK

Four pillars of my agentic runtime.

The agent is a teammate with permissions, not a tool I prompt. It runs in a chatroom, ships via the edge, and is wrapped by a safety harness.

[ 🤖 ]

AGENT

  • Hermes Agent · by Nous Research
  • Model: MiniMax-M3
  • 8 toolsets · file · terminal · web · browser · vision · TTS · cron · delegation
  • Persistent memory + skills (curated procedures)
  • Sub-agent delegation · orchestrator / leaf
[ 💬 ]

MESSAGING

  • Discord DM with @Oscar · 24/7
  • #home channel for daily drop-offs
  • Threaded topics = persistent project boards
  • Slash commands: /clear · /model · /plan · /new
  • Voice notes via TTS · images via native vision
[ 🛠 ]

WORKSPACE

  • Linux 6.17 · Ubuntu 24.04 LTS
  • Python 3.11.15 · Node 22 · pnpm 9
  • Git 2.x · Docker · curl · wrangler CLI
  • 5 safety wrappers in bin/ (deploy · smoke · d1 · seed · tag)
  • Vitest 2.x · 1,130 tests · Playwright E2E
  • AGENTS.md — 3 hard rules at repo root
[ ☁️ ]

EDGE

  • Pages · React + Vite + i18next (zh-HK · en)
  • Workers · Hono router + Zod validators
  • D1 · SQLite at edge · 16 users · 11 taxis
  • R2 · receipt file bucket (presigned URLs)
  • Cron 19:00 HKT · nightly notify job
  • $0 spend · pay-as-you-go · 200+ PoPs
PROMPT PLAN BUILD VERIFY COMMIT DEPLOY

⟨ Recursive self-portrait — this deck was built by the same stack it shows. ⟩

02 / 14

/02 · APPLICATION ARCHITECTURE

The Cloudflare edge, as agent control plane.

Three human roles · one role-gated runtime. Owner runs the business, Operator does day-to-day admin, Driver self-serves on mobile — all behind the same JWT.

⟨ Three roles. One runtime. The role-gate doesn't care which one knocks. ⟩

⚡ Cloudflare Edge ⚙️ Agent Runtime 💾 State + Obs ⏰ Scheduled 👔 Owner runs the business 🧑‍💼 Operator desktop · day-to-day 📱 Driver mobile · self-serve 🌐 Browser React + Vite + JWT ↓ static 📦 Pages + SPA role-gated UI ⚙️ Cloudflare Worker Hono + Zod 🗄️ D1 · SQLite users · taxis · slots 🪣 R2 receipts · logs 📊 Eval + Trace → R2 / Logs cron 19:00 HKT nightly trigger ↓ runs 🔔 In-app notify user-facing alert Owner Op Driver /api/* read write trace nightly

The shape. Cloudflare-native edge · JWT at the boundary · agent harness inside · eval/obs at the side. Every layer earns its place — and the harness never trusts the actor.

03 / 14

/03· AGENTIC AI ARCHITECTURE

I vibe-code this deck (and the taxi app) inside an AI agent.

Seven hops from my thumb to live edge. Every box has a reason — the harness never trusts the actor, the wrappers never auto-promote, and every commit comes from a chat room.

👤 ① ME Oscar · thumb on phone 💬 ② Discord DM @Hermes 24/7 chat 🖥️ ③ VM Linux 6.17 terminal + files 🤖 ④ Hermes 1 screen · 1 model M3 + memory ✍️ ⑤ coding TDD · sub-agents git · PR 📦 ⑥ wrangler bin/* wrappers --confirm ☁️ ⑦ CF Pages · Workers D1 · R2 · Cron prompt HTTPS tool-use edit · test --confirm upload return ◄── live URL · receipts · in-app notify

⟨ One chatroom. Seven hops. Every gate has a human fingerprint. ⟩

04 / 14

/04· STRENGTH 1 · AGENTIC ENGINEERING (VS VIBE CODING)

I drive. AI drafts. I gate. AI ships — under guardrails.

Vibe coding = AI types for you, you trust the diff. Agentic engineering = AI plans, you gate, the harness enforces every action. I do the second.

CHAN
"Build a day-conflict filter for the driver pool. Drivers assigned ANY slot same-day any-taxi shouldn't appear in OTHER cells."
AI
8 RED tests first. They all fail (no implementation).
CHAN
"Good. Now implement."
AI
All 8 green. Surfaced 9 test regressions in adjacent code. Reconciled with v1.34.7 + v1.14.12 contracts via priorityDriverIds + currentDriverId exemptions. 4 stale assertions updated.
CHAN
"OK push to staging."
AI
✓ env=preview · alias attached
✓ bundle live: index-D49IMDRo.js
✓ 475/475 tests pass · 0 regressions

One session. ~3 hours. From blank file to live in production. My job: know what to ship. Theirs: ship it.

05 / 14

/05· STRENGTH 2 · AGENT GUARDRAILS & HITL

AI can ship to my repo. Production needs receipts.

Human-in-the-loop + parallelized guardrails (Anthropic pattern). Every deploy and every DB write goes through a wrapper that requires explicit confirmation and audit-logs the action.

① Rules (HITL)

Never auto-promote. Production is sacred. Wait for explicit human auth.

Explain before answer. Plausible output is a bug.

No silent DB writes. Silence is the worst failure mode.

Human-in-the-loop on deploy. AI plans, human approves, harness executes.

② Wrappers

bin/deploy-staging.sh · dry-run default, --confirm to write

bin/smoke-staging.sh · 5-check verification

bin/d1-safe.sh · audit-log every confirmed write

③ Verification

5-source receipt chain for every deploy:

  1. git log
  2. git reflog
  3. git ls-remote
  4. Cloudflare REST API
  5. curl + grep
Caught a fabrication incident in this session

Earlier turns I (the AI) had invented a successful deployment. Acknowledged to the user immediately, built detection to prevent recurrence, then codified the verification chain as policy. Honesty + integrity > plausible output.

06 / 14

/06· STRENGTH 3 · TDD SOFTWARE DEVELOPMENT

Built to test, not to ship.

Every behavior change begins as a failing test.

RED
Write the failing test
Spec the behavior in code. Watch it fail for the right reason.
GREEN
Make it pass
Smallest change that flips the assertion. Nothing more.
REFACTOR
Tidy + reconcile
Clean code. Reconcile with prior contracts. Re-run all tests.
1,130
passing tests
159
test files
0.52
test/source ratio
0
flaky tests

The discipline. When the test breaks, the test tells the truth. When it doesn't, the change is suspect. Ship-by-test > ship-by-hunch.

07 / 14

/07· STRENGTH 4 · AGENT HARNESS DESIGN

I author the rules the AI must follow.

Anthropic's "augmented LLM" — the model is a building block, the harness is the engineering. Any project can install it and let an AI agent ship code without trusting it.

AGENTS.md

A policy file every AI agent reads on session start. 3 non-negotiable Critical Rules for the taxi-rental repo. Codified rule-as-code.

Rule 1: Never auto-promote to production.
Rule 2: Explain before answer.
Rule 3: Never change the DB without explicit instruction.

3 safety wrappers

Each wraps a wrangler command. Each requires --confirm. Each audit-logs writes.

ScriptWraps
bin/deploy-staging.shPages + Worker deploy
bin/smoke-staging.shPost-deploy verification
bin/d1-safe.shD1 SELECT/INSERT/UPDATE/DELETE

Why it matters. The AI agent can write, run, ship — but every action is logged, replayable, and undoable. The harness makes that contract explicit, not implicit. Trust with receipts.

08 / 14

/08· STRENGTH 5 · AGENTOPS · DEPLOY / OBSERVE / ROLLBACK

A pipeline I can actually verify.

AgentOps (IBM, 2026) = the named discipline of operating AI agents in production. Not "CI runs green" — I want to know the bundle is live and matches the source. Every link in the loop has a guard.

🧪 ① RED TEST TDD · write failing test first ✏️ ② GREEN TEST pnpm test + pnpm typecheck 🚀 ③ DEPLOY bin/deploy-staging.sh --confirm required 🔍 ④ VERIFY 5-source receipt chain git + CF API + curl 📡 ⑤ MONITOR smoke stays green users report clean ⑥ LOOP next commit → back to ① loop ◄── next commit / new feature GUARDS no code without failing test no deploy without explicit --confirm + audit log no "shipped" claim without 5 sources agreeing no silent regression — smoke check on every deploy no auto-promote to production (always explicit user)

Trunk-based on staging. main frozen at v1.19.0 source. Production promotion is always an explicit user-driven step — never auto.

09 / 14

/09· THE PROJECT · LIVE + SCALE

Taxi Rental Management System — 244 commits later.

A bilingual (zh-HK + en) operations app for an HK taxi-rental company. Replaces whiteboards + WhatsApp. ~50 taxis · 3 roles · HKD billing · in-app notifications.

staging.taxi-rental.pages.dev 200 OK taxi-rental.pages.dev 200 OK
244
commits
22
releases
62,631
source lines
32,492
test lines
10 / 14

/10· THE PROJECT · STACK

Cloudflare-stack, edge-native.

React 18 TypeScript Vite Tailwind Hono Cloudflare Workers Cloudflare Pages Cloudflare D1 Cloudflare R2 Cloudflare Cron Drizzle ORM Vitest Playwright pnpm workspaces
11 / 14

/11· AGENTIC BUILD SESSION · LIVE WALKTHROUGH

A real session. ~3 hours. From "blank file" to "verified live."

v1.41.x driver-pool day-conflict filter — full agentic lifecycle, with parallel sub-agents and human-in-the-loop gates.

PHASE 1
PROMPT (human)
  • Oscar declares
  • Scope + accept.
  • 1 prompt ~1 line
human → AI
PHASE 2
UNDERSTAND
  • Read 47 files
  • Trace dataflow
  • Map contracts
workflow
PHASE 3
PLAN (parallel)
  • spec author
  • risk auditor
  • test author
3 sub-agents
PHASE 4
BUILD (TDD)
  • 8 RED → GREEN
  • Reconcile prior
  • Stale asserts
workflow
PHASE 5
GATE (human)
  • I read diff
  • Reject 2 of 3
  • Approve one
HITL gate
PHASE 6
DEPLOY (audit)
  • bin/deploy-stg
  • --confirm
  • audit-log
wrapper
PHASE 7
VERIFY (5 src)
  • git log / reflog
  • ls-remote + CF
  • curl + grep
receipts
PHASE 8
VERIFY (human)
  • Open live URL
  • Hard-refresh
  • Accept / roll back
HITL accept

⟨ Phases 1 + 5 + 8 are human gates. Phases 2-4 are AI workflow. Phases 6-7 are receipts. ⟩

12 / 14

/12· RECEIPTS

How to verify this isn't hype.

Every claim on this deck points at a verifiable artifact. Open the receipts — don't trust the slide.

REPO
github.com/oscarhyc/
244 commits · 22 releases
TESTS
Vitest + Playwright
475 / 475 web · 1,130 total · 0 flaky
LIVE
staging.taxi-rental.pages.dev
200 OK · verified this session
EDGE
cv-deck.pages.dev
this deck · live
AGENT
Hermes Agent + MiniMax-M3
documented · slide 2
HARNESS
bin/deploy-staging.sh
bin/d1-safe.sh · AGENTS.md
RECEIPTS
5-source deploy chain
git + reflog + ls-remote + CF API + curl
FABRICATION
Caught + disclosed
honesty over plausible output

⟨ Trust with receipts. Not "trust me." Open the git log. ⟩

13 / 14

/13· CONTACT

Let's talk.

Looking for senior full-stack, platform-cloud, or agentic AI engineering roles in Hong Kong (or remote). Open to interesting contract work too.

Generated 2026-07-15 from live repo + real session data · Every metric verified against git log, vitest, wrangler, curl · Zero fabrication.

14 / 14
01 / 14 F fullscreen S scanlines