
Applied ML / AI Engineer
I build ML systems that ship, not just notebooks that demo.
Training a model that works once isn't the hard part anymore. Keeping it working once real users hit it, when the data turns messy or the load spikes, is where I actually spend my time: serving it, watching what it does in production, catching problems before someone else has to point them out. I picked up that habit at AI Singapore's AIAP, building a GenAI video generation platform for a global FMCG company on Azure GPU infrastructure and owning the MLOps around it — CI/CD, observability, evaluation. I've kept it up since, building and running AI/ML systems of my own, backend to frontend.
- Live Projects
- 5
- Certified
- AIAP
How I build
I start from the failure modes, not the demo: what breaks when the input is messy, the latency budget is tight, or the model is wrong with confidence. Systems get built in thin, observable slices — one pipeline stage, one endpoint, one dashboard at a time — so every layer ships with the logging and guardrails it needs to be trusted in production, not just in a notebook.
Stack
- LanguagesPython · TypeScript · JavaScript
- AI/MLPyTorch · Hugging Face · ComfyUI · LightGBM · Docling · YOLOv8 · MediaPipe · SAM2 · OpenCV · scikit-learn
- LLM & APIsReplicate · LiteLLM · OpenAI · Gemini · Langfuse · vLLM · RAG · BM25
- FrontendReact · Next.js · Tailwind · Shadcn · MaterialUI · Vite · Streamlit · Gradio
- BackendFastAPI · Node.js · Express · REST APIs · Pydantic · SQLAlchemy
- DatabasesPostgreSQL · pgvector · Supabase · SQLite · MongoDB
- Infrastructure & ToolsDocker · MLflow · Hydra · Optuna · GitLab CI/CD · GitHub Pages/Actions · Kubernetes · Helm · Prometheus · Grafana · Railway · Microsoft Azure · Google Cloud Platform · Cloudflare
Projects
DocExtract
LiveDocument field-extraction with rule-based validation, benchmarked against the public ICDAR 2019 SROIE dataset.
- Python
- Gemini Vision
- Docling
- Rule Engine
- ICDAR SROIE
GoFetch
LiveRAG built from scratch: hybrid search, cross-encoder re-ranking, and streaming answers with inline citations.
- Hybrid Search
- Cross-Encoder
- Streaming
RocketML
LiveAn NLP model-serving platform with real monitoring: FastAPI, Docker, CI to GHCR, MLflow tracking, Prometheus/Grafana, Helm on Kubernetes.
- Python
- FastAPI
- Docker
- scikit-learn
- GitHub Actions
- MLflow
- Prometheus
- Grafana
- Kubernetes
- Helm
GotParking
LiveA parking-forecast model for Singapore that has to beat a real baseline before it's allowed to ship.
- Python
- TypeScript
- React
- LightGBM
- Supabase
- Cloudflare Workers
- GitHub Actions
- Vercel
Cineloops
LiveImage-to-video pipeline with SAM2 segmentation and Gemini prompt refinement, gated by a bring-your-own-key Replicate flow so visitors cover their own generation cost.
- Python
- FastAPI
- Next.js
- SAM2
- Replicate
- Gemini
- Cloud Run
- Cloudflare R2
- BYOK
Experience
- Mar 2026 — Present
AI Engineer — Independent Projects
Building and maintaining 5 AI/ML systems in production, covering document extraction, forecasting, retrieval, video generation, and model serving — the projects on this site.
- Sep 2025 — Mar 2026
Associate AI Engineer — AI Singapore (AIAP)
Delivered a GenAI video generation platform for a global FMCG company as part of AISG's 100E programme, placing in the top third of projects. Built a custom video generation workflow on Azure A100 GPUs — ComfyUI nodes for image decomposition, multi-provider video generation behind one interface, per-job workflow selection threaded through the database, API, and routing layers — then containerized 5 services across a 4-node GPU cluster with CI/CD. Established human ground truth for the evaluation suite by coordinating batch experiments and annotating 380 videos, benchmarked against VBench and VQA metrics.
- Jun 2011 — Apr 2024
Private Tutor — Self-Employed
Taught Mathematics one-on-one for 13 years. Every student needed a different way into the same idea, good practice for making complex things click.