Tech is just a tool, but life matters.

I build AI and apps for everyday life.

I’m Vincent, an AI and software engineer in Auckland. I build apps for daily life, assistants that can use them, and tools for research — from the first idea through to working software.

3
apps on the
App Store
~30
people at a meetup
using my tool weekly
Open source
AI agent framework
published on PyPI
Open to applied AI & software engineering roles in New Zealand Try the Yumi preview ↗
A hand-drawn journey: a small sailboat on the water leaves a trail that rises past a sprout, a sun, a winding path and small app cards, up to a bright spark. Personal ideas. Research foundations. Working products.

It all starts with one agent.Yumi — the flagship ↓

012026 – now · The flagship · Yumi Nexus

Yumi — an assistant that can use your apps.

Ask Yumi to create a reminder in Mugi or save a word in Memori, and it uses the connected app’s tools to do it. I built the agent framework, user accounts, app integrations and mobile/web client — from the first request to a visible result.

yumi ① · the engineopen source · Apache-2.0
❯_

yumi-agent

An open-source framework that connects AI to software tools

Ask in everyday language.Let connected tools do the work.

I built the Python core that turns a request into tool calls and a checked response. This room is an illustrated example of the loop: plan, act, then check the result.

  • Choose a tool — route requests through Claude, Gemini, OpenAI or Ollama using native tool calling.
  • Check the response — use returned tool results to decide what to do next and what to tell the user.
  • Connect your code — register functions over WebSocket using multi-language SDKs; water_plants() illustrates a custom tool.
yumi ② · the architecturedesigned & built independently

The Yumi Stack

Reusable core → multi-user platform → connected apps

One core.Shared services for connected apps.

I separated the system into three layers so the same agent can serve different users, tools and applications.

  • L1 · Open-source core — yumi-agent provides tool calling and memory; developers can use it in their own projects.
  • L2 · Yumi Enterprise — adds isolated user data, usage limits and a React admin console. Built for multiple tenants; no external tenants yet.
  • L3 · Yumi Nexus — my deployment of L2, connecting the Yumi chat app to actions in Mugi and Memori.
yumi ③ · the identityYumi ID
🔑

Yumi ID

Shared sign-in for Yumi, Mugi and Memori

One account.Connected apps, with clear permissions.

I built Yumi ID so users can sign in across the connected apps and let Yumi work with the information each app exposes.

  • Shared account — one sign-in and one place to manage subscriptions.
  • Account boundaries — the server attaches the signed-in user’s identity to Mugi and Memori actions. The AI cannot choose which account to act on.
  • Limited context — each authorised app shares a capped, reference-only snapshot; permissions and tool confirmations control actions.
Yumi app icon One assistant.
Phone to browser.

Chat, review actions and return to past conversations.

iOSAndroidWeb
yumi ④ · the appFlutter · 10 languages

Yumi app

The mobile and web client for Yumi Nexus

Chat with your assistant.Review the actions it proposes.

I built the Flutter client with streaming replies, voice and searchable history, adapting the browser interface for a keyboard and a larger screen.

  • See the work — follow the reply and tool activity as they arrive; stop a response when needed.
  • Approve the action — inspect a tool request, then allow it once, always allow it, or decline.
  • Keep your place — navigation and window resizing preserve the conversation and draft.

Create a demo reminder or vocabulary card, review the action and inspect the result. No account needed. Already use Yumi? Open the web app ↗

Python · tool callingAPIs & SDKsPostgreSQL · tenant isolationOAuthDocker · Terraform

Built around real life.Products & experiments ↓

02Products & experiments

Small ideas. A place in real life.

Seven products, each built around a real need. A calmer day, a word remembered, a room brought together. Explore the work in use and the ideas still on my workbench.

01 — Out in the world

Small things, used in real life.

Four App Store releases and a tool used at weekly meetups.

Released · connected to Yumi

Mugi

Tasks, habits & mood diary

Product artwork & app screens · illustrative task

Plan the day. Leave room for life.

Reminders, goals, habits and a mood diary in one calm place. Keep what you did alongside how the day actually felt.

Ask Yumi to add a task, check off a habit, then make a little space for how the day felt. Progress can be a tick, a count or a percentage; the diary is there when you want it.

Available on the App Store · Yumi can create tasks

Explore Mugi ↗

Flutter · Firebase · recurring reminders · connected to Yumi

Released · connected to Yumi

Memori

AI vocabulary cards & review

Product artwork & app screens

Catch words in the wild.

Save a word from a menu, a conversation or a film. Turn it into a useful card, then revisit it in a short review.

AI helps with meanings, pronunciation and examples, and every detail stays editable. Short reviews adapt to what you remember, without a growing queue of overdue cards.

Available on the App Store · ten learning languages

Explore Memori ↗

AI-assisted vocabulary cards · adaptive reviews · connected to Yumi

Released · App Store

SaKi

An augmented-reality walking game

Product artwork & real gameplay

Make a path. Play it back.

Record a real walking route, turn around and follow its glowing trail. Collect surprises and find your way back to the line.

It started as a personal gift. Your movement makes the course; sound, vibration and the trail in the camera view guide you back through the world around you.

Released on the App Store · built from a personal gift

Explore SaKi ↗

SwiftUI · ARKit · RealityKit · spatial audio and haptics

Released on the App Store

Tsukimi

iPhone & iPad

Actual app screens · illustrated sending sequence

A little of you. On their Home Screen.

Draw a note, add a photo and send a finished image to one person. A small shared space for everyday affection.

Your draft stays on your device until you choose to send it. The finished picture appears in your person’s frame and Home Screen widget. For version 1.1.0, I built an AI editor that keeps a local history so you can revisit earlier edits. I also built nearby pairing: both people opt in and bring compatible iPhones close. Version 1.1.0 has been submitted for App Review.

Available on the App Store for iPhone and iPad

View on the App Store ↗

SwiftUI · PencilKit · WidgetKit · Nearby Interaction · OpenAI image editing

In weekly use

Meetup Seater

Auckland Japanese–English exchange

A new round. A new conversation.

Table 1Table 2Table 3JPENJPENJPENJPENJPENJPEN
JapaneseEnglish
Illustrative seating · 12 participants

Less arranging. More connecting.

A seating tool that balances languages and reduces repeated conversation partners at a local language exchange.

People check in on their phones; the organiser starts each conversation round and gets the table assignments. I balanced language mix and table capacity, with extra weight against repeating the last round’s partners, so more people get a chance to talk.

Used weekly by an organiser for around 30 participants

Open Meetup Seater ↗

Python · Streamlit · language balance and fewer repeated pairings

02 — Taking shape

On my workbench.

New ideas, built around something personal.

In development

Joysemble

Flutter · iOS, Android & web

Illustrated Word Mystery round · sample words

Everyone gets to play.

Games for people in the same room. The app handles roles and turns while each player chooses their interface language.

Pass one phone around or join a connected room. In Word Mystery, players give clues about secret words and vote for whoever seems to have a different one. The group still chooses a shared spoken language.

Word Mystery · Antidote at Dawn

Explore Joysemble ↗

Flutter · private player views · shared-phone and connected-room play

Private preview

Loci

iPhone & Mac

Actual app screens · fictional records

Make room for your next chapter.

Keep applications, interviews and the right résumé together. Save the next step even when you’re offline.

A role, an interview note, the résumé you sent: each stays with its opportunity. I chose local saving so a lost connection does not interrupt your work. When devices change the same field differently, both versions stay available for you to resolve; unrelated edits can merge.

Private preview · tests cover offline edits, restarts and conflicting changes

Explore Loci ↗

Flutter · local saves · synchronisation and versioned attachments

But the instinct began in research.Research foundations ↓

03Research · retrieval & reinforcement learning

Decisions grounded in evidence and feedback.

CiteSeek, my Master’s research, finds papers relevant to a claim and shows source passages for review. Ship RL, my undergraduate thesis, trains a simulated ship to follow a route and avoid collisions. Both pair an implementation with measured evaluation.

research ① · master’s researchUniversity of Auckland
❝❞

CiteSeek

“Credit Where Credit Is Due” — a research citation assistant

Select a claim in a paper.Find the source. Inspect the evidence.

I built a research assistant that finds papers relevant to a claim and shows the source passages for review. Readers can inspect the evidence behind an AI-generated judgement.

  • Search scholarly sources — generate queries for arXiv, Semantic Scholar and OpenAlex; deduplicate and rank with embeddings.
  • Follow reference chains — expand the candidate pool through citations, then rank papers for the selected claim.
  • Make judgements inspectable — label support, partial support, background or unrelated; accept a quote only when it appears verbatim in the retrieved paper.

Compared with keyword search: I evaluated nine pipelines on 28 curated machine-learning claims. The strongest retrieved a labelled relevant paper in the top five for 27 of 28 claims, versus 9 of 28 with BM25 (Hit@5: 0.964 vs 0.321). This small benchmark measures paper retrieval, not whether a passage proves the claim.

Working with an existing system: I exposed eight MCP tools and integrated CiteSeek into my supervisor’s AI system without changing its source code.

View CiteSeek on GitHub ↗ Python · FastAPI · React · eight-tool MCP integration
research ② · BEng thesisTianjin University · 2023
⛵

Ship RL

Reinforcement learning for simulated ship navigation

Keep the ship on course.Learn to avoid other vessels.

For my undergraduate thesis, I built a ship simulator and a learning controller. Across 5,000 training episodes in an 8 km simulated environment, the controller practised navigation with maritime collision rules built into its rewards.

  • Model the vessel — 4-DOF MMG physics: surge, sway, yaw and roll, with hull inertia and rudder lag (±35°, 5°/s).
  • Encode the rules — shape rewards for COLREGs head-on, crossing and overtaking encounters.
  • Train the controller — implement Soft Actor-Critic in PyTorch, with one steering decision every six seconds; compare shaped and sparse rewards.

95% collision avoidance in simulation after approximately 4,000 training episodes. The animation illustrates the navigation and training process.

SAC & TD3 · PyTorch · pygame environment · MATLAB MMG model
Retrieval evaluation · RAGPyTorch · Soft Actor-CriticPhysics simulationReward design · ablation studies

Different systems. One pattern.The loop behind the work ↓

04The pattern behind the work

How I take an idea through to working software.

Start with a useful problem. Make the system understandable. Test the parts that can fail. Keep improving it after people begin using it. These habits connect my product work and research.

How I turn an idea into working software

Start with the person using it, build a complete path through the product, then test what happens. These projects show that process in practice.

01 · Connected systems

Make the whole flow work.

Yumi connects a conversation to actions in Mugi and Memori. I built the agent, account permissions, app interfaces and deployment, then added tests and execution traces to inspect failures.

System designTool integrationTesting
02 · Product delivery

Make it useful in everyday life.

Mugi, Memori, SaKi and Tsukimi reached the App Store. Meetup is used weekly. Loci is in private preview and Joysemble is in development.

Product designMobile & webRelease & iteration

03 · Evaluation

check the evidence
CiteSeek
Compare retrieval methods and inspect source passages.
Ship RL
Compare reward designs in a physics simulation.
What this means on a team

I bring experience across product, application code and infrastructure. I can follow a problem across those boundaries and explain the decisions in plain language.

Every loop starts with a real person.Let's talk ↓

Based in Auckland · open to opportunities

Let’s build something useful.

Open to applied AI and software engineering roles in New Zealand.

Auckland-based · 3-year open NZ Post Study Work Visa
English · Mandarin · Japanese (JLPT N2)

I enjoy taking an idea from a person’s need to working software. Outside code, I’m at language meetups, learning to fly or on a motorbike. I’ve also helped new students settle into university through UniGuide.

Download my CV (PDF · 3 pages) ↓