From prompt
to production.

I’m James Hong, an AI-native developer in Singapore. I design agents, wire them to real data with MCP, and ship them end to end.

  • Agentic engineeringOrchestrating coding agents

    Sonata and Cassette, below.

  • Shipping 0 to 13 apps, end to end

    Each one below, from first commit to release.

  • MCP designAgents read and act on real data

    A text-to-SQL MCP server over company data.

  • Decision modelsSmart if-statements, Jev-style

    Automated assessments by answering policy questions as yes or no, instead of RAG.

Selected work

Sonata

Foreign-model subagents for Claude Code.

Claude Code’s subagents always run on Claude. Sonata gives it subagents that run on GPT, DeepSeek, GLM, Kimi or any model you can reach, called through the ordinary Agent tool with the same tools and permission modes.

A local router ranks models per tier and falls back to the next one when a model fails. Open source on npm, in public beta.

TypeScriptnpmClaude Code
The Sonata documentation site: “Foreign-model subagents for Claude Code” with Get started and View on GitHub buttons. Sonata’s terminal view ranking 66 models for the code-complex tier, top six shown with intelligence and cost per task.
The docs site, and the tier ranking in sonata agents.

Cassette

Record a workflow once. Replay it cheaply.

Programming by demonstration for coding agents. You show a workflow once; Cassette writes a tape that replays deterministically and only calls an LLM for judgement steps or when something breaks, then writes the fix back into the tape.

PythonAgents
# replay the bundled tape, no LLM involved
$ cassette validate examples/system-checks
$ cassette run examples/system-checks --param who=Ada
  each step: deterministic
  escalations: 0

AI Customer Support

A RAG assistant for support, planning and markets.

Three assistants in one app: customer support, a financial planner and a stock analyst. OpenAI and Gemini answer with context retrieved from a Milvus vector database. React on the front, Node.js and Firebase behind.

ReactNode.jsRAG
  1. React chat client
  2. Node.js + Firebase auth and sessions
  3. Milvus retrieves matching documents
  4. OpenAI / Gemini answer with that context

Federated learning on a microcontroller

My final-year project: a model that trains on a chip with 64 KB of RAM.

Federated learning keeps data on the device and sends only model updates. Flower, PySyft and TensorFlow Federated are too heavy for a board with no operating system, so I wrote my own C++ client: 457.5 kB, against 401.2 MB for the Python one.

It trains a small CNN on MNIST one sample at a time on an Arduino Nano 33 BLE Sense, with in-place layers and a 20-byte chunked serial protocol for FedAvg rounds with a Python server. NTU, 2025.

C++ArduinoFederated learning
An Arduino Nano on a breadboard, plugged into a laptop whose terminal logs each training sample and its loss.

Choosing the model: MNIST accuracy after 50 simulated rounds

CNN
96.7%
ANN
96.3%
MobileNet
85.9%

On the Arduino: the CNN’s test accuracy per epoch

67% 79% Epoch 1 10
The prototype trains over USB serial while the server logs each sample’s loss. The CNN won on accuracy and convergence, and is smaller than the ANN.

Earlier projects

Experience

  1. Nov 2025 – now

    People Tech Analyst

    Advance Intelligence Group

    Moved automation scripts from cron to Apache Airflow, with a bot that reports failures. Built an MCP server that answers natural-language questions with SQL. Led Python and Lark Base tools end to end, from user research and PRD to UAT.

  2. May – Aug 2024

    Product management intern

    SeaMoney, financial services

    Ran gap assessments against DPTM and ISO 27001, contributed to the multi-country ISO 27001 manual, and set up the team’s Confluence.

Earlier roles

  • Business development internSungreenH2, 2023–2024
  • Identity and access internAzqore SA, 2022–2023
  • Digital trust internKPMG, 2022
  • Finance administratorNippon Paint, 2020–2021

Education

  • BEng Computer Engineering and BBus BusinessNanyang Technological University, 2021–2025, on a full ASEAN Undergraduate Scholarship

Recognition

  • NTU Product Club, Judge’s ChoiceA schedule optimiser that cut course planning from 2 hours to 2 minutes
  • Singapore Business Case Competition 2023Semi-finalist: AI for crop yields in Nigeria
  • NTU Port63 Challenge 2023Finalist: cutting and reselling hotel buffet surplus

About

I’m Hong Zhi Hao, James to most people. I graduated from Nanyang Technological University in 2025 with a double degree in computer engineering and business.

I build with coding agents every day, and I build tools for building with them. Sonata lets Claude Code hand work to other models; Cassette replays a workflow without paying an LLM for every step.

At Advance Intelligence Group I put the same habits to work on internal tools: Airflow pipelines, Lark automations and an MCP server over real data.

Outside work I volunteer for access to healthcare and education.

Portrait of James Hong.

Let’s build
something.

Open to roles, collaborations and a good conversation about agents.