Data Scientist & AI Engineer

Forecasting demand across millions of series.

Agents, pipelines and the systems around them.

Then it becomes something you can hold.

  1. Threads of light drift through a dark printer chamber
  2. The threads gather into one line that turns orange inside a forecast band

    Forecasting demand across millions of series.

  3. Close up, the line is an engineered lattice over the build plate

    Agents, pipelines and the systems around them.

  4. The lattice becomes molten filament feeding a nozzle that prints a ring

    Then it becomes something you can hold.

  5. A translucent lamp shade half printed, layer by layer
  6. The finished shade, unlit
  7. The shade switched on, glowing amber

; Data Scientist & AI Engineer

I turn noisy data into systems people actually use.

I build forecasting engines and AI agents for apparel and CPG brands, and I 3D-print things after hours.

  • 15%more accurate demand forecasts than the legacy method, across millions of series
  • 20%ROI lift from a promotion-effectiveness model built on 30M transactions
  • 40–50%faster answers from company data through a secure local LLM agent
  • 40%lower dashboard latency on a real-time IoT pipeline

MS, Applied Artificial Intelligence · Stevens Institute of Technology · 2023BEng, Computer Engineering · Hong Kong University of Science and Technology · 2020

; layer 01 · work

Work

Since 2017: forecasting, real-time data, trading systems and full-stack product work. Client work is described by industry, not by name.

  1. 2023 – nowData Scientist · ApteanForecasting and promotion analytics for apparel and CPG brands, plus private LLM agents over company data.
    • Built a multi-model demand forecasting engine (HWES, ARIMA, XGBoost, LSTM) over millions of time series, with lagged demand, holidays, weather, stockouts and price signals. Accuracy improved 15% over the legacy method.
    • Designed a promotion-effectiveness framework that measures price and cross-elasticity across 30M transactions, with forecast baselines for uplift. Promotional ROI improved 20%.
    • Shipped a secure local LLM agent (Ollama, Qdrant, LangChain, MCP) that answers questions over databases and documents in plain language, cutting query time by 40–50%.

    PythonstatsmodelsXGBoostLSTMLangChainMCPOllamaQdrant

  2. 2022Data Engineer Intern · Energy OgreReal-time IoT pipeline for high-frequency sensor data.
    • Built ingestion, transformation and storage on AWS with Kafka (MSK), Lambda and S3.
    • Wrote .NET Kafka microservices with TimescaleDB consumers, cutting dashboard latency by 40%.

    KafkaAWS.NETTimescaleDB

  3. 2020 – 21Full-Stack Developer · The University of Hong KongLed a peer-review and assessment platform for the dental faculty, from scoping to deployment.
    • Vue/Nuxt front end, Node.js REST API and PostgreSQL for submissions, feedback and enrollment.
    • Wrote the technical spec and a year-long roadmap that kept stakeholders aligned through launch.

    VueNuxtNode.jsPostgreSQL

  4. 2019 – 20NLP Researcher · HKUSTFinal-year research on extracting relationships between named entities.
    • Custom pipeline with NER, sentiment and co-reference resolution; a BERT model with a tailored encoder.
    • Served on AWS SageMaker behind a REST API, with a React app that maps relationships in any article in real time.

    BERTNLTKSageMakerReact

  5. —Systems automation · Wells FargoAutomated banking systems and the processes around them.
  6. —Go Developer · High-frequency trading firmLow-latency systems in Go for a trading environment.
  7. 2017R&D Engineer Intern · Smart-wearables startupHot-word detection for voice AI on a smart ring.

; layer 02 · projects

Projects

Things I build on my own time, mostly around agents, data and the tools I use every day.

LG webOS · MCP server

TV Remote MCP

An MCP server that runs a 65" LG TV by conversation. It does everything a remote does, recommends what to watch, and handles the fiddly parts for you.

  • Full remote control through the LG webOS API, extended with my own functions.
  • Chains button presses into sequences for complex actions, like navigating deep into an app.
  • Types into apps with their native on-screen keyboard.
  • Takes voice commands, and recommends shows and films through conversation.

MCPLG webOS APIVoiceRecommender

  1. Something like Severance, but lighter.
  2. Three picks: Mythic Quest, Loot, or The Good Place. Mythic Quest is closest in tone.
  3. Play the first one.
  4. launch_app("netflix")
  5. keyboard.type("Mythic Quest")
  6. remote.sequence(["DOWN", "OK", "OK"])
  7. Playing Mythic Quest, season 1.

Example conversation. It replays when this card scrolls into view.

Early MCP · Postgres

SQL over MCP

Talk to a database and get the chart. Built while MCP was brand new: Postgres servers, a tool-using chat client and interactive visualisations.

  • MCP servers for PostgreSQL and SQLite, and a client with tool calling.
  • Context engineering through database comments and on-demand fetching.
  • Answers arrive with interactive charts.

PythonMCPPostgreSQLSQLite

Repository ↗

Wearables · ML

Gamified Exercise Classifier

Participants wear wristband trackers that stream positional data, and trained classifiers recognise movements such as star jumps and throws for a gamified workout.

  • Positional data from several wristbands per participant.
  • Classifier models that categorise each exercise movement.

PythonJupyterClassification

Repository ↗

Spotify API · Recommender

Music-Therapy Recommender

Music recommendation as a form of therapy. It builds a listener profile from song attributes such as valence and pitch, and recommends from there.

  • Song attributes such as valence and pitch from the Spotify API.
  • A listener profile that drives the recommendations.

Spotify APIRecommender

; layer 03 · stack

The stack, printed

Built from the bottom up: how data comes in, gets modelled, gets an interface and ships.

Forecasting and machine learning at the scale of millions of time series.

  • PythonAptean · Exercise classifier
  • statsmodelsAptean
  • XGBoostAptean
  • scikit-learnToolbox
  • PyTorchToolbox
  • TensorFlow · KerasToolbox
  • NLTKHKUST
  • BERTHKUST

; layer 04 · the lab

The Lab

After hours I design and print things: lamps, clocks, lightboxes, HueForge posters and custom coasters. My favourite material is translucent PLA with a light inside it.

Printer
Bambu Lab P1S
Nozzle
0.4 mm hardened steel
Favourite prints
Lamps and lightboxes
A translucent 3D-printed lamp shade glowing amber on a build plate
Forecast lampPLA · 0.2 mm layers · the profile is a demand curve
  1. 01Pleated lampLamp
  2. 02Ribbed lampLamp
  3. 03Wave lampLamp
  4. 04Stencil clockClock
  5. 05Good Vibes lightboxLightbox
  6. 06Knicks Finals posterHueForge
  7. 07Maze monogram coastersCoasters
  8. 08Puffer-jacket pen cupsDesk
  9. 09Controller standDesk
  10. 10Fantasy league trophyTrophy

; layer 05 · off-court

Off-court

Knicks fan and fantasy hoops regular. I printed our league's trophy, and a HueForge poster of the Knicks' Finals run.

Your turn. Drag back anywhere on the court and let go to shoot. Ten shots a game; anything from behind the dashed line is worth three.

Score 0Shot 1 / 10Best 0

; layer 06 · work with me

Want a site like this?

I design and build personal and product sites end to end: the story, the art direction, generated film, and the code that keeps it smooth.

  1. 01

    Story

    One idea the whole page carries, pitched as concepts before anything is built.

  2. 02

    Art direction

    Palette, type and a mark that belong to you, drawn from your own world.

  3. 03

    Film & motion

    Generated footage or pure-code motion, chosen to fit the budget.

  4. 04

    Build & ship

    Fast static site, measured for smooth scrolling, deployed where you want it.