The wider collection

Things made
along the way.

Useful tools, team builds, weekend experiments, and a few things that started with “what if.” Here’s the work, with its context still attached.

27 selected projectsTake the scenic route ↗

AI & data

10
ResearchAgent demo showing a revised answer, cited fictional evidence, and a simulated spending budget.

ResearchAgent

September–October 2026

Search free sources first, then decide whether another piece of evidence is worth buying. This team demo tracks budgets, checks delivery proofs, and handles challenges and refunds with a synthetic corpus and testnet or simulated payments.

Presented on the main stage at AI Tinkerers Singapore, 10 October 2026. Top three Cloud Run demos; earlier SingHacks finalist.

Team project · main-stage presentation

02 / Python + DuckDB

talktoit

2026

Turn an Apple Health export into a database you can ask questions of. A streaming importer feeds DuckDB, dashboards, and natural-language queries, with local defaults and explicit opt-in remote modes.

The unglamorous importer became the interesting problem.

Self-hostable application

03 / TypeScript + Bun

YALD

2026

A read-only view of coding-agent usage, from local logs to portable reports. Explore tokens, cache use, and API list-price estimates while keeping missing measurements visible.

An estimate is useful when you can see its limits.

v0.1.0 GitHub preview

04 / Python + NumPy

Plotline

October 2026

How much of a forest map does a screening decision actually need? A geospatial prototype stores the facts a defined rule uses, then compares compact and original answers through reproducible checks and an inspection UI.

Keep the decision. Measure what was left behind.

Measured hackathon prototype

05 / Python + Neo4j

StyleMind

April–May 2026

Fashion recommendations with some memory of your taste. Conversation becomes a structured persona, which guides graph and vector retrieval before the assistant puts an outfit together.

Preferences have relationships, not just keywords.

Working prototype

06 / Python + Airwallex

Handoff

September 2026

Before an invoice becomes a draft, check it against the contract, accepted delivery, and prior billing. A team finance demo surfaces conflicts, asks for approval, and reads back the Airwallex sandbox result.

A known-error demo, with the evidence left in view.

Team hackathon prototype

07 / Go + MCP

MandateFlow

August–September 2026

An agent's permission should depend on where its information came from. Contributed the Go provenance and authorization gateway, policy checks, and demo hardening to this team build on the supplied Agent Launchpad starter.

A tool call needs a reason you can trace.

Team hackathon proof of concept

08 / Python + FastAPI

Show Me Your Agents

August 2026

A learning event becomes a bounded diagnostic job, then a mastery proposal with supporting evidence. This early tutoring slice keeps a human tutor in charge of reviewing the proposal.

A proposal can be useful without becoming a verdict.

Early vertical slice

09 / Python + BM25

Payment & incident investigations

September 2026

Two authored submissions to the Julius Baer challenge: payment investigation with retrieval tools, and deterministic incident correlation with quoted evidence and calibrated uncertainty. Built within the organizer's starter, with the submission still unmerged.

A useful answer should show why it might be wrong.

Submitted · unmerged
Detect-T's published camera demo comparing the original camera feed with a mirrored pose-keypoint overlay.

Fitback / Detect-T

2024–2025

The public camera-guidance proof of concept behind the team Fitback chapter. Pose feedback and capture run in the browser, while an older model runtime lives in a worker so incompatible TensorFlow versions can coexist.

One camera flow, two model runtimes.

Historical component prototype

Products & systems

09
Screenshot Declutterer's Keep, Unsorted, and Trash columns, populated with synthetic demo screenshots and cleanup suggestions.

Screenshot Declutterer

2026

Give screenshot clutter a review board: keep, rename, compare duplicates, or queue for Trash. Undo and a final confirmation keep cleanup deliberate; optional on-device naming helps find things again.

Built around the moment before you press delete.

Source-run macOS app

02 / TypeScript + React Native

Rewind

2026

Small moments, saved for later together. This team-built time capsule collects contributions over a cycle and reveals them as a group, growing from a device-only experiment into a connected mobile prototype.

Some things are better when they are not instant.

Active team prototype

03 / Python + PostgreSQL

FlickPond

2026

From an uploaded video to playable MP4 and HLS. A Team 17 course platform separates media access from asynchronous processing, with bounded workers and recorded AWS runs that retain missed and unmeasured targets.

The difficult part starts when a worker stops halfway.

Team course platform

04 / Python + Bluetooth LE

HRM Live

2026

A Bluetooth heart-rate strap, a quiet number in the macOS menu bar, and a popover for zones and session history. Record a session and choose when to export its CSV or JSON.

A small desktop companion to a physical sensor.

v0.9.0 candidate · not notarized

05 / Python

applyd

October 2026

A local workbench for job-application bookkeeping: capture opportunities, spot duplicates, reuse sourced answers, and check a form before recording a confirmed submission.

Still early; the review step is already central.

Early prototype

06 / Raspberry Pi + AWS Textract

FindMyCar

December 2024

Find a parked car through a Raspberry Pi camera, AWS Textract OCR, MQTT updates, and a React dashboard. A course prototype connecting a physical capture device to a searchable parking view.

The camera is local; the OCR calls the cloud.

IoT course prototype

07 / Go + RPC

Booking the last seat

2024

An educational Raft-style booking simulation in Go, with RPC clients, elections, and log-replication logic. Its peers run in one process and share a seat map, making the boundaries of the experiment explicit.

A way to study agreement, one seat at a time.

Educational simulation
HealthMate project board with Android screens and its fitness-data flow.

HealthMate

2023

An early team Android app bringing meal logs, activity tracking, and social features into one place. Google Fitness and Maps integrations sit alongside local SQLite storage.

An early lesson in making several APIs feel like one app.

Historical team course project
InvoiceHub's early receipt-processing and application interface.

InvoiceHub

2023

A team retail-invoice application for uploading documents, managing invoice and payment pages, and keeping records in SQL. Contributed upload-server work within the wider course build.

Paperwork was an early reason to build a web app.

Historical team course project

Experiments

08
The Commons shared room, with a kopi cup, otters, and other creatures moving through an illustrated gathering space.

The Commons

October 2026

A room that grows its own inhabitants. Visitors wish for creatures on their phones, then watch them join a shared projected world after their generated behaviour is checked.

A kopi cup, an otter, and a room full of suggestions.

Makeathon demo · wound down

02 / TypeScript + ONNX Runtime Web

uno-dos-tres

October 2026

Point a phone at an Uno deck and let it follow the top card. Recognition runs in a browser worker on the phone, while detections and game events travel to a laptop dashboard.

A card game made a good excuse to try phone-side inference.

Local computer-vision demo

03 / Shell + ntfy

Agent Done Notifier

March 2026

A small reusable skill that sends a completion notification through ntfy when a coding agent finishes its task.

So the next step does not depend on watching a spinner.

Small utility
Sushi Shakedown gameplay with customer orders above a counter of fish, condiments, and preparation tools.

Sushi Shakedown

2025

Run a sushi bar through customer waves, layered food preparation, debt, and upgrades. Contributed background and NPC movement upstream, then substantially extended the team game's Unity fork.

The queue keeps moving while you are still making lunch.

Team game · extended fork
A solar panel prototype on a worktable, wired to light sensors, a breadboard, and an Arduino board.

Following the sun

Public notes · 2025

A documented solar-tracking hardware prototype using light-dependent resistors and servo-driven positioning. Public photos show the panel, sensor assembly, and Arduino wiring; the repository preserves the build notes rather than firmware or measured efficiency results.

A breadboard, a panel, and a very physical feedback loop.

Documented hardware prototype
Breakout's brick-framed main menu with Quick Game, Load Game, High Score, and Settings buttons.

Breakout in C

2024

A paddle, a ball, and the systems around them: collisions, screen states, sound, save files, and persistent high scores. A team-built SDL2 game with contributions to the main game flow and score handling.

Simple rules leave plenty of room for small details.

Completed course project
A bird-shaped model in the block-based 3D Angry Bird Space experiment.

3D Angry Bird Space

Earlier experiment

An OpenGL and C++ experiment in building a small world: cubes, collisions, and a physics engine. The surviving project image is part of the early portfolio archive.

The rules become much more interesting when you have to write them.

From the early project archive
The original Aircon Balance Bot project listing with its Python scripts.

Aircon Balance Bot

Earlier experiment

Python bots for checking university aircon balances through web scraping. A small automation for a task that deserved less attention.

Sometimes the useful project is the one that saves you another login.

From the early project archive