Contact EN 中文

Skills

Abilities, not projects. Select any ability to see the work that proves it. Levels are my own rating against the rules below, and every level links to its evidence.

How levels are set

  • Foundation (level 5 of 5)

    Meets Proven, other systems or other people’s work depend on it, and it is public (open repo) or a written method reused across projects.

  • Proven (level 4 of 5)

    At least 2 pieces of my own work in real use, plus at least 1 measured result (tests, eval numbers, migration counts or audit findings).

  • In use (level 3 of 5)

    At least 1 piece of my own work in real use, designed and delivered by me.

  • Built (level 2 of 5)

    A working prototype or proof of concept with tests or a written design; no real users yet.

  • Learning

    Started, but not live yet or deliberately not switched on.

  • Real use means live, in use inside the organisation, in pilot, or open source and in use. Work I only co-maintain is listed but never counts.
  • Self-reported: when the only evidence is my own résumé, the level stops at In use and the ability is tagged.
  • Where my AI page rates the same skill, the lower of the two ratings is used, so the pages never disagree.

Ability tree

Platform engineering is the base everything else grows from. Six branches, one row per ability.

Platform engineering (multi-tenant backend) Foundation (level 5 of 5)

Platform engineering (multi-tenant backend)

Foundation (level 5 of 5)
What I can do
I design and run the multi-tenant backend that other sites and tools are built on.
Why this level
Meets Proven (3 sites and tools in real use, 2,600+ tests); other people’s sites depend on it and the code is public.

Evidence

  • drust Open source

    drust, my Rust backend: open source on GitHub, 2,600+ tests, runs 6 Tzu Chi sites and tools in use.

  • Tzu Chi Annual Report Live

    Live annual-report site: editors sign in through drust and the dashboard writes to it directly.

  • Sixty Impact Report Live

    Live report site; its pages, text chunks and images are stored on drust.

More evidence
  • Buddha Day Site Live Co-maintainer

    A site built by colleagues whose data layer I moved to drust. I co-maintain it, so it is listed but not counted.

Web front-end I build the sites people actually visit.
  1. Public websites Public websites, static and hybrid Proven (level 4 of 5)

    Public websites, static and hybrid

    Proven (level 4 of 5)
    What I can do
    I build and ship public websites, from zero-build pages to static sites with a gated draft preview.
    Why this level
    3 live sites, all built by me; measured by 515 Vitest tests (annual report) and 32 test files (main site).

    Evidence

    • Tzu Chi Portal Migration Live

      The Tzu Chi Foundation’s main website, moved from Joomla to static Lit pages; live, with 32 test files.

    • Journey to Enlightenment Live

      I built the live site for the Harvard CAMLab × Tzu Chi exhibition: 11 pages from one Figma file, 0 build steps.

    • Tzu Chi Annual Report Live

      Live annual-report site, static pages plus a gated live-draft preview; 515 Vitest tests.

  2. Web Components Web Components (Lit) Proven (level 4 of 5)

    Web Components (Lit)

    Proven (level 4 of 5)
    What I can do
    I build interfaces as Lit web components, including server-rendered ones on a live site.
    Why this level
    3 pieces of work in real use; measured: TypeScript errors cut from 22 to 0 on the 60th-anniversary site.

    Evidence

  3. Complex browser layout Complex layout in the browser (vertical Chinese, pagination, page-flip) In use (level 3 of 5)

    Complex layout in the browser (vertical Chinese, pagination, page-flip)

    In use (level 3 of 5)
    What I can do
    I make the browser do print-like layout: vertical Chinese, automatic pagination, a realistic page-flip.
    Why this level
    1 piece of work in real use (MasterSlides, 74 tests); the page-flip reader is still a prototype.

    Evidence

    • MasterSlides Open source

      Public repo in use at the foundation: Google Docs become vertical Chinese slides that the browser paginates; 74 tests.

    • pages Prototype

      PDF reader with a realistic page-flip, on my own fork of StPageFlip. A prototype, so not counted.

Backend & data APIs, databases and the pipelines between them.
  1. Backend services & APIs Backend services & APIs Proven (level 4 of 5)

    Backend services & APIs

    Proven (level 4 of 5)
    What I can do
    I build API servers in Rust and TypeScript and keep them covered by tests.
    Why this level
    3 pieces of work in real use; measured by 2,600+ tests on drust.

    Evidence

    • drust Open source

      Rust (axum) backend with a REST API and an MCP endpoint per tenant; 2,600+ tests.

    • Tzu Chi Weekly AI pipeline In use · internal

      Fastify worker that runs the 11-step import for every weekly issue.

    • Tzu Chi 60th Anniversary Site Live Co-author

      Hono and PostgreSQL backend for the live 60th-anniversary site, co-authored.

  2. PostgreSQL & database testing PostgreSQL & database testing In use (level 3 of 5)

    PostgreSQL & database testing

    In use (level 3 of 5)
    What I can do
    I design Postgres schemas with row-level security and test them inside the database.
    Why this level
    2 pieces of work in real use, but the measured database results (7,137 pgTAP assertions, 38 migrations) come from staging and a POC. Rises to Proven when Digital Archive goes live.

    Evidence

    • Tzu Chi Weekly AI pipeline In use · internal

      Self-hosted Supabase (Postgres) holds every weekly issue; in use.

    • legit Pilot

      Supabase with pgvector and pg_trgm behind law and template search; internal pilot.

    • Digital Archive 1.5 Staging

      About 2.0M records; 7,137 pgTAP assertions green in a full run. Still on staging, so not counted yet.

    More evidence
    • Identity Platform Proof of concept

      38 SQL migrations with sign-in hooks written in Postgres. A POC, so not counted.

  3. Site & data migration Site & data migration Proven (level 4 of 5)

    Site & data migration

    Proven (level 4 of 5)
    What I can do
    I move live sites and large datasets to new systems without breaking links or losing records.
    Why this level
    2 live migrations; measured: 222 redirect rules kept, 2,674 articles converted with 0 errors (prototype run), about 2.0M records moved (staging).

    Evidence

    • Tzu Chi Portal Migration Live

      The main website moved off Joomla with 222 redirect rules kept at the edge.

    • July Auspicious Month Live

      Yearly campaign site moved from server rendering to a static export that reads from drust; live.

    • Ghost Article Migration Prototype

      2,674 Ghost articles converted to import-ready JSON, 0 errors in the final run. A prototype, so not counted.

    More evidence
    • Digital Archive 1.5 Staging

      About 2.0M records moved from PHP and Solr to self-hosted Supabase. Still on staging, so not counted.

  4. Auth & access control Auth & access control Proven (level 4 of 5)

    Auth & access control

    Proven (level 4 of 5)
    What I can do
    I build sign-in and permission layers that fail closed: nothing opens unless a rule allows it.
    Why this level
    2 pieces of work in real use (drust, the annual report); measured by the drust security retest (0 Critical, 0 High). The identity platform is a POC.

    Evidence

    • drust Open source

      Tenant isolation enforced inside SQL, plus row-level security; the write path never takes raw SQL.

    • Tzu Chi Annual Report Live

      Fail-closed draft gate: Google sign-in with an allowlist, and any failure sends you to the login page. Live.

    • Identity Platform Proof of concept

      Identity platform on OIDC with sign-in hooks in Postgres; after a ban, a token stays valid up to 15 minutes. A POC, so not counted.

  5. Data pipelines & realtime Data pipelines & realtime Proven (level 4 of 5)

    Data pipelines & realtime

    Proven (level 4 of 5)
    What I can do
    I build import pipelines and push their progress to the people using them, live.
    Why this level
    3 pieces of work in real use; measured: 682 InDesign stories parsed, an 11-step import streamed live.

    Evidence

    • Tzu Chi Weekly AI pipeline In use · internal

      11-step import; every step is streamed live to editors over Supabase Realtime.

    • MasterSlides Open source

      A phone remote pages the slides over a per-room realtime channel on drust.

    • Sixty Impact Report Live

      682 InDesign stories parsed from one print file into a website and a search index.

AI engineering AI systems that cite, verify and keep data in-house.
  1. Retrieval with citations (RAG) Retrieval with citations (RAG) Proven (level 4 of 5)

    Retrieval with citations (RAG)

    Proven (level 4 of 5)
    What I can do
    I build retrieval that has to cite its source: law clauses, page numbers, archive records.
    Why this level
    2 pieces of work in real use, with measured hit@1 (0.821 and 0.949). Matches my own AI rating for Retrieval.

    Evidence

    • legit Pilot

      Contract-review retrieval: hit@1 0.821 on 56 clauses and 0.949 on 39 template queries. Internal pilot.

    • Sixty Impact Report Live

      Local multimodal RAG over a print report; the answer model is told to cite every claim by page.

    • Digital Archive 1.5 Staging

      Text, semantic and image search, with an assistant that checks its own citations. Still on staging, so not counted.

  2. AI agents & tool use AI agents & tool use (Claude Agent SDK, MCP) Proven (level 4 of 5)

    AI agents & tool use (Claude Agent SDK, MCP)

    Proven (level 4 of 5)
    What I can do
    I build agents on the Claude Agent SDK and MCP, where the model judges and code holds the evidence.
    Why this level
    3 pieces of work in real use; measured: run-to-run agreement 56% → 81% on the golden set. Matches my own AI rating for Agents.

    Evidence

    • Tzu Chi Weekly AI pipeline In use · internal

      The Claude Agent SDK parses and rewrites each weekly issue, with tools disabled; in use.

    • legit Pilot

      Contract-review agent that shows each tool call; run-to-run agreement rose from 56% to 81%.

    • drust Open source

      A native MCP endpoint per tenant, with 76 tools an AI agent can call.

    More evidence
    • WebForge Prototype

      Chat-to-commit website editor on the Agent SDK, working prototype in 3 days. Not counted.

    • Invoice Agent Prototype

      Agent SDK and Playwright MCP agent that collects vendor invoices. A prototype, so not counted.

  3. LLM evaluation LLM evaluation & quality gates In use (level 3 of 5)

    LLM evaluation & quality gates

    In use (level 3 of 5)
    What I can do
    I measure AI output against fixed sets before I trust it, and I keep the numbers that look bad.
    Why this level
    1 piece of work in real use; the test sets are still small. Matches my own AI rating for Evaluation.

    Evidence

    • legit Pilot

      Golden set of 10 real cases from the legal office; case-type accuracy is still 44%, and I report it.

    • iPAS Adaptive Mock Exam Prototype

      1,794 generated practice questions passed a blind check by a second model. A prototype, so not counted.

    • Voice Collection QA Loop Proof of concept

      Every generated sentence is transcribed back and scored by character error rate. A POC, so not counted.

  4. Self-hosted models Self-hosted models (data stays in-house) In use (level 3 of 5)

    Self-hosted models (data stays in-house)

    In use (level 3 of 5)
    What I can do
    I run self-hosted open models so sensitive text never leaves the organisation.
    Why this level
    The rubric would allow Proven (2 pieces of work in real use), but the level is capped at my own AI rating for Local models.

    Evidence

    • Sixty Impact Report Live

      Chat, vision, embedding and rerank all on self-hosted Qwen3; no external AI API.

    • legit Pilot

      Every AI call goes through the foundation’s own model gateway.

    • Live Subtitles Prototype

      Translation sped up from about 24 s per sentence by turning model thinking off. A prototype, so not counted.

  5. Speech (ASR & TTS) Speech: ASR & TTS Built (level 2 of 5)

    Speech: ASR & TTS

    Built (level 2 of 5)
    What I can do
    I build speech pipelines end to end: recognition, live captions and text-to-speech.
    Why this level
    The rubric would allow In use (the text-to-speech step runs in production), but the level is capped at my own AI rating for Voice & speech.

    Evidence

    • Live Subtitles Prototype

      Chinese speech to English subtitles, broadcast live to every device in the room; working in 2 days. A prototype.

    • Voice Collection QA Loop Proof of concept

      Voice enrollment where speech recognition checks every recorded sentence (error threshold 0.10). A POC.

    • Tzu Chi Weekly AI pipeline In use · internal

      Text-to-speech audio for every article of the weekly issue, inside an internal production pipeline.

Infrastructure & security I deploy, host and harden what I build.
  1. CI/CD & edge deployment CI/CD & edge deployment (GitLab CI, Cloudflare) Proven (level 4 of 5)

    CI/CD & edge deployment (GitLab CI, Cloudflare)

    Proven (level 4 of 5)
    What I can do
    I wire builds, checks and deploys so a saved change reaches the live site on its own.
    Why this level
    3 live sites; measured: 222 redirect rules kept at the edge, 3 build assertions before every annual-report deploy.

    Evidence

  2. Containers & self-hosting Containers & self-hosting In use (level 3 of 5)

    Containers & self-hosting

    In use (level 3 of 5)
    What I can do
    I package services in Docker and self-host the stacks they need.
    Why this level
    2 pieces of work in use, but no measured result specific to hosting, so not Proven.

    Evidence

    • Tzu Chi Weekly AI pipeline In use · internal

      A self-hosted Supabase stack behind a single Kong gateway, run in Docker.

    • drust Open source

      Shipped as a multi-architecture Docker image.

    • Digital Archive 1.5 Staging

      Public site and admin run as a staging copy on Sealos. Not counted.

  3. Security practice Security practice In use (level 3 of 5)

    Security practice

    In use (level 3 of 5)
    What I can do
    I test my own systems for security holes, fix what is found and write it down.
    Why this level
    2 pieces of work in real use, but the assessments were self-commissioned with no third party, so not Proven.

    Evidence

    • drust Open source

      Two AI-run assessments of my own instance: 1 High found and fixed; the retest on v1.41.3 found 0 Critical, 0 High, 1 Medium, 2 Low.

    • Tzu Chi Weekly AI pipeline In use · internal

      A written security audit against ISO 27001 and OWASP.

    • Identity Platform Proof of concept

      Staff status taken from Google’s signed domain claim, not an email string. A POC, so not counted.

Engineering practice How I ship: AI-native, spec-first, tested.
  1. AI-native development AI-native development (spec → plan → implement → review, Claude Code) Foundation (level 5 of 5)

    AI-native development (spec → plan → implement → review, Claude Code)

    Foundation (level 5 of 5)
    What I can do
    I ship with Claude Code on a written loop: spec, plan, implement test by test, then review.
    Why this level
    A written method reused across all my main work and visible in a public repo. Matches my own AI rating for AI-native development.

    Evidence

    More evidence
    • MasterSlides Open source

      8 design specs, each paired with a plan, in a public repo.

  2. Automated testing Automated testing Proven (level 4 of 5)

    Automated testing

    Proven (level 4 of 5)
    What I can do
    I keep systems honest with automated tests, from units to the database.
    Why this level
    3 pieces of work in real use, each with a stated test count.

    Evidence

  3. Multi-model review Multi-model review workflows In use (level 3 of 5)

    Multi-model review workflows

    In use (level 3 of 5)
    What I can do
    I have one model check another model’s work before it ships.
    Why this level
    Only legit is in real use; the other review work is on staging or a POC.

    Evidence

    • legit Pilot

      Built on a spec → plan → implement → review loop, with every ruling kept in a decision log; internal pilot.

    • Digital Archive 1.5 Staging

      Codex wrote the database migrations; Claude planned each batch and checked every migration against the live database. Staging, so not counted.

    • Identity Platform Proof of concept

      Security review loop on the identity-platform plans. A POC, so not counted.

Leadership & product I run the work, not only write it.
  1. Team lead & delivery Team lead & delivery In use (level 3 of 5) self-reported (résumé)

    Team lead & delivery

    In use (level 3 of 5) self-reported (résumé)
    What I can do
    I lead a team and run projects from requirements to launch.
    Why this level
    The lead role rests on my résumé only, so the level is capped at In use.

    Evidence

    • Résumé From my résumé timeline

      IT Lead at the Tzu Chi Foundation since 2023-07, leading a team of 5–8 (from my résumé).

    • Tzu Chi Portal Migration Live

      Delivered the main-website migration; live.

    • Tzu Chi Annual Report Live

      Delivered the annual-report site and its staff-editable CMS; live.

  2. Turning staff needs into tools Turning staff needs into tools Proven (level 4 of 5)

    Turning staff needs into tools

    Proven (level 4 of 5)
    What I can do
    I turn what colleagues need into tools they use without an engineer in the loop.
    Why this level
    3 pieces of work in real use; measured: run-to-run agreement 56% → 81% on the legal office’s golden set.

    Evidence

    • Tzu Chi Annual Report Live

      Staff edit the report themselves in a CMS; a saved change goes live in about 2 minutes by design.

    • Tzu Chi Weekly AI pipeline In use · internal

      Editors review and publish each weekly issue from their own dashboard.

    • legit Pilot

      The legal office supplied the golden set; agreement rose from 56% to 81%.

  3. Teaching AI to non-engineers Teaching AI to non-engineers Built (level 2 of 5)

    Teaching AI to non-engineers

    Built (level 2 of 5)
    What I can do
    I help colleagues who don’t write code start using AI on their own.
    Why this level
    The course is built, but its delivery is not documented. Matches my own AI rating for Teaching.

    Evidence

    • Claude for non-engineers Beyond work

      A 2-hour Claude course for office, writing and planning staff: 8 chapter videos, 60 scenes.

    • Tzu Chi Video Kit Beyond work

      A kit that lets non-technical colleagues ask Claude for on-brand videos in plain language.

    • Résumé From my résumé timeline

      User guides and best-practice notes for colleagues (from my résumé).

Learning

Started, but not live yet or deliberately not switched on. Each one says why.

Stack index

Every tool named in my work, grouped. Open a group to see which work uses each one.

Languages TypeScript · Python · CSS · HTML · JavaScript · Rust · YAML
Rust
Used in: drust
YAML
Used in: Invoice Agent
Web Next.js · React · Lit · Astro · Tailwind CSS · FastAPI · PDF.js · Storybook · Vite · WebSocket · anime.js · axum · Canvas 2D · Chrome Extension (MV3) · Fastify · Flask · hls.js · Hono · LINE LIFF · marked · PWA · Redux Toolkit · StPageFlip · SVG · Web Push · zod
PDF.js
Used in: pages · flip7book
Storybook
Used in: tceditor · CIS UI Kit
WebSocket
Used in: WebForge · Live Subtitles
anime.js
Used in: Ink Animation Page
axum
Used in: drust
Canvas 2D
Used in: pages
Chrome Extension (MV3)
Used in: Exhibition Kiosk
Fastify
Used in: Tzu Chi Weekly AI pipeline
Flask
Used in: Sixty Impact Report
hls.js
Used in: Journey to Enlightenment
LINE LIFF
Used in: Tzu Chi Weekly PWA
marked
Used in: MasterSlides
PWA
Used in: Tzu Chi Weekly PWA
Redux Toolkit
Used in: Exhibition Kiosk
StPageFlip
Used in: pages
SVG
Used in: Ink Animation Page
Web Push
Used in: Tzu Chi Weekly PWA
zod
Used in: tceditor
Data drust · PostgreSQL · Supabase · OAuth / OIDC · pgroonga · pgTAP · pgvector · SQLite · sqlite-vec · Stripe
OAuth / OIDC
Used in: Identity Platform
pgroonga
Used in: Digital Archive 1.5
pgTAP
Used in: Digital Archive 1.5
pgvector
Used in: Digital Archive 1.5
SQLite
Used in: drust
sqlite-vec
Used in: drust
Stripe
Used in: flip7book
AI Qwen3 · Claude Agent SDK · MCP · OpenCC · Claude Code · gpt-oss-120b · pydantic-ai · PyMuPDF · VAD
Claude Agent SDK
Used in: Tzu Chi Weekly AI pipeline · WebForge · Invoice Agent
MCP
Used in: drust · Invoice Agent
Claude Code
Used in: Invoice Agent
gpt-oss-120b
Used in: iPAS Adaptive Mock Exam
pydantic-ai
Used in: legit
PyMuPDF
Used in: legit
VAD
Used in: Live Subtitles
Infra & testing Cloudflare · Docker · Vitest · GitLab CI · pytest · Turborepo · Bun · Deno · Envoy · node:test · Playwright · Rollup · simple-git · wasmtime · Web Test Runner
Turborepo
Used in: tceditor · CIS UI Kit
Bun
Used in: MasterSlides
Envoy
Used in: Identity Platform
node:test
Used in: Tzu Chi Portal Migration
Playwright
Used in: iPAS Adaptive Mock Exam
Rollup
Used in: pages
simple-git
Used in: WebForge
wasmtime
Used in: drust
Web Test Runner
Used in: CIS UI Kit