● Available · Hong Kong · 廣東話 / English / 普通話
Senior Full-Stack · Platform-Cloud · Agentic AI Engineer
📧 [your email here] · 📱 [your phone here] · 🔗 github.com/oscarhyc
AVAILABLE · OPEN TO AGENTIC-AI / PLATFORM ROLES/01· THE AGENT STACK
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.
/clear · /model · /plan · /newbin/ (deploy · smoke · d1 · seed · tag)AGENTS.md — 3 hard rules at repo root⟨ Recursive self-portrait — this deck was built by the same stack it shows. ⟩
/02 · AGENTIC ARCHITECTURE
One live production topology. Two actors — the operator (human) and Hermes (AI) — share the same role-gated runtime.
⟨ Same runtime. Two actors. The role-gate doesn't care which one knocks. ⟩
┌──── Operator (human) ────┐ ┌──── Hermes AI Agent ──────┐
│ prompts in Discord │ │ executes via tool-use │
└─────────┬────────────────┘ └──────────┬───────────────┘
│ prompt │ tool-call
▼ ▼
┌──── Browser (React + Vite) ────────────────────────────┐
│ Login → JWT → role-aware UI (zh-HK + en) │
└─────┬──────────────┬────────────────────────┬─────────┘
HTTPS /api/* static
▼ ▼ │
┌─────┬────────┐ ┌─────┬────────────────┐
│ Pages + SPA │ │ Agent Worker │ ← Hermes runtime
│ │ │ Tool Executor │ ← MCP-style catalog
│ │ │ Hono + Zod │
└─────┬────────┘ └─────┬────────────────┘
│ /api/*────────────┤
▼ role-gate
┌─────────┬──────────────┐
│ Agent Harness │
│ Tools + Memory + Eval │
│ + RBAC (augmented LLM) │
└────┬──────────┬─────────┘
│ SELECT │ write
▼ ▼
┌────────────┬───────────┐ ┌─────┬──────┐ ┌──────────────┐
│ D1 (SQLite) │ │ R2 │ logs │ │ Eval & Obs │
│ users(16) · taxis(11) │ │ │ audit│ ←── │ trace traces │
│ rental_slots(N) │ │ │ recip│ │ to R2/Logs │
└────────────┬───────────┘ └────────────┘ └──────────────┘
│
cron 19:00 HKT daily
│
▼
┌────────────────────┐
│ scheduled task │
│ (in-app notify) │
└────────────────────┘
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· HOW I WORK · AI-NATIVE TOOLCHAIN
This presentation was built by the same stack it describes. Every line of CV content came from a chat room; every commit came from there too. Recursive self-portrait.
bin/ (deploy · smoke · d1 · seed · tag)/04· STRENGTH 1 · SYSTEM ARCHITECTURE
One live production topology — where every box has a reason, and every request passes through a role gate.
⟨ Same runtime. Two actors. The role-gate doesn't care which one knocks. ⟩
┌───── Operator + Hermes AI Agent (React + Vite) ───┐
│ Login → JWT → role-aware UI (zh-HK + en) │
└─────┬──────────────┬────────────────────────┬───┘
HTTPS /api/* static
▼ ▼ │
┌─────┬─────┐ ┌────┬──────────┐
│ Pages + SPA │ Worker │
│ │ │ (Hono) │
│ │ │ │
└─────┬─────┘ └────┬──────────┘
│ /api/*───────┤
▼ role-gate
┌───────────┬─────────┐
│ RBAC middleware │
│ owner · operator │
│ driver │
└────┬───────────┬────┘
│ SELECT │ write
▼ ▼
┌─────────────┬───────────┐ ┌─────┬─────┐
│ D1 (SQLite) │ │ R2 (files)│
│ users(16) │ │ receipts │
│ taxis(11) │ └───────────┘
└─────────────┬───────────┘
│
cron 19:00 HKT daily
│
▼
┌──────────┬──────────┐
│ scheduled task │
│ (in-app notify) │
└─────────────────────┘
The shape. Cloudflare-native edge · JWT at the boundary · agent harness inside · RBAC + R2 attached at the side. Every layer earns its place — and the harness never trusts the actor.
/05· STRENGTH 2 · AGENTIC ENGINEERING (VS VIBE CODING)
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.
priorityDriverIds + currentDriverId exemptions. 4 stale assertions updated.One session. ~3 hours. From blank file to live in production. My job: know what to ship. Theirs: ship it.
/06· STRENGTH 3 · AGENT GUARDRAILS & HITL
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.
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.
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
5-source receipt chain for every deploy:
git loggit refloggit ls-remotecurl + grepEarlier 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.
/07· STRENGTH 4 · TDD SOFTWARE DEVELOPMENT
Every behavior change begins as a failing test.
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.
/08· STRENGTH 5 · AGENT HARNESS DESIGN
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.mdA 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.
Each wraps a wrangler command. Each requires --confirm. Each audit-logs writes.
| Script | Wraps |
|---|---|
| bin/deploy-staging.sh | Pages + Worker deploy |
| bin/smoke-staging.sh | Post-deploy verification |
| bin/d1-safe.sh | D1 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.
/09· STRENGTH 6 · AGENTOPS · DEPLOY / OBSERVE / ROLLBACK
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.
┌────────── write code ────────┐
│ RED test first (TDD) │
└────────────┬─────────────────┘
▼
┌────────── green the test ─────┐
│ pnpm test → pnpm typecheck │
└────────────┬─────────────────┘
▼
┌────── deploy to staging ──────┐
│ 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
Trunk-based on staging. main frozen at v1.19.0 source. Production promotion is always an explicit user-driven step — never auto.
/10· THE PROJECT · LIVE + SCALE
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/11· THE PROJECT · STACK
/12· AGENTIC BUILD SESSION · LIVE WALKTHROUGH
v1.41.x driver-pool day-conflict filter — full agentic lifecycle, with parallel sub-agents and human-in-the-loop gates.
⟨ Phases 1-3 are workflows. Phase 4 is where the human redirects. Phases 5-6 are receipts. ⟩
/10· HERO HIGHLIGHT
Driver-picker modal showed drivers already assigned same-day other-taxi as pickable. Users had to deselect manually. The old filter was per-taxi — should have been per-day.
Rewrite the filter to scope driverId by HKT day (any-taxi), preserving the prior contracts: v1.34.7 same-taxi grey behaviour + v1.14.12 reassign-current preservation.
Greenfield TDD. 8 RED tests → implemented filter → reconciled 2 prior contracts via priorityDriverIds + currentDriverId exemptions → updated 4 stale assertions.
475 / 475 web tests pass. Zero regressions. Driver-picker modal hard-hides busy drivers. Production deployed as v1.41.3.
Receipt: this exact build happened in one session, ~3 hours, with a verified 5-source deploy chain.
/11· 3 MORE WINS
status='left'S. Operators needed to remove ex-employees. T. Preserve audit trail, no schema migration. A. Backend DELETE → status='left'; frontend buttons hidden-for-self. R. Operator can't accidentally delete themselves.
S. Build output had worker-prod instead of worker. T. Login would 405 (POST hits Pages host). A. Smoke check caught it pre-prod. R. Fixed in same release with regression test. Zero users impacted.
S. Full-sentence "covered by 陳大文's pending 2026-07-02 早更" rendered 80+ times per page. T. Terse without losing info. A. Collapse to ⏰ 待編配 chip; full info in title=. R. Page weight ↓, readability ↑.
/14· FRAMEWORKS I WORK IN
These are the canonical patterns I implement in my work — from the canonical sources that defined them.
| Framework | Source | Where it lives in my work |
|---|---|---|
| Workflows vs Agents | Anthropic, "Building Effective Agents" (Dec 2024) | Slide 13 — phases 1-3 are workflows; phase 4 is where the agent redirects itself |
| Augmented LLM (model + tools + memory + retrieval) |
Anthropic, same article | Slide 9 — the agent harness is the augmented LLM |
| Agent Loop (prompt → tool → observe → repeat) |
Cursor · Hermes · Claude Code · Aider | Slide 2 — Hermes persistent state + memory |
| Sub-Agent Delegation (orchestrator / leaf pattern) |
LangGraph · AutoGen · Hermes delegate_task | Slide 13 phase 2 — 3 parallel sub-agents (spec / risk / test) |
| MCP — Model Context Protocol | Anthropic, MCP announcement (2024) | Slide 3 — the Agent Worker / Tool Executor is an MCP-style catalog |
| AgentOps (deploy / observe / rollback) |
IBM, "What is agentic engineering?" (Feb 2026) | Slide 10 — the 5-source receipt chain IS AgentOps |
| Agent Eval Harness | Anthropic evaluator-optimizer · IBM agent evaluation | Slide 8 — TDD as the eval harness; tests are golden traces |
| Parallelized Guardrails | Anthropic, "Building Effective Agents" | Slide 7 — HITL on deploy + audit log = guardrails |
| Agentic RAG | IBM, "What is agentic RAG?" | Future: my agent will query past sessions before acting |
| Recursive Self-Portrait (the deck proves the agent) |
This deck · slide 2 line 52 | Built by the same stack it shows — strongest agentic test |
Anthropic · IBM · LangChain · MCP · Hermes docs — all read, none reinvented.
/16· RECEIPTS
Every claim on this deck points at a verifiable artifact. Open the receipts — don't trust the slide.
⟨ Trust with receipts. Not "trust me." Open the git log. ⟩
/17· CONTACT
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.