Summary
Full-stack engineer. 4 production systems across AI, commerce, and
enterprise banking. Sole operator on all deployed systems: deployment,
monitoring, incident response. No ops team. TypeScript-dominant.
Open-source tooling. Scope limited to what's needed; cost kept low.
Currently freelancing for 3 paying SMB clients. Built an LLM agent that
takes print orders through Telegram (Mastra AI, tool-calling, persistent
memory). Built a sales order pipeline for a 24-user distribution team
(grammY, PostgreSQL, automated reporting). Built a computer-vision
photobooth deployed at live events (Stable Diffusion, InsightFace, Vue 3).
Built a PWA for a heritage restaurant (React, Supabase, service worker).
Previously spent 18 months at OCBC Bank on OpenBanking APIs.
AI tooling reduced the cost of custom software. One engineer now delivers
what previously required a team. Small businesses lack access to
purpose-built software because existing solutions are too expensive or too
generic. He builds in that gap. Focuses on keeping deployed products
operational over starting new ones.
Experience
Sales Executive & Technical Consultant
JustifyPrint · May 2025 – Present
Print shop with no prior tech infrastructure. Built an LLM-powered
Telegram bot (Mastra AI, tool-calling agents) that handles product
inquiries, calculates pricing, and captures orders. Also rebuilt the
company website with analytics tracking.
Freelance Software Engineer
Self-employed · Dec 2024 – Present
3 paying clients. Delivered a Telegram-based order management system
(24–26 daily users, PostgreSQL, role-based access, CRON reports), an AI
photobooth for live events, and a restaurant PWA. Sole operator on all
systems: CI/CD, monitoring, on-call, infrastructure.
API Developer, Digital Channels & OpenBanking
OCBC Bank · Apr 2023 – Sep 2024
OpenBanking API development. Owned the partner onboarding pipeline: spec
review, implementation, regression testing, production release. Managed
change tickets through banking-grade release gates. Zero rollback
incidents. Mentored Ignite apprentices on an internal portal (React,
Spring).
IGNITE Apprenticeship, OpenBanking & Partnerships
OCBC Bank · Mar 2022 – Mar 2023
Built a Node.js CLI that parses Postman collections, auto-generates
assertion tests, and renders results on a dashboard. Replaced manual QA
for the team's API regression suite. Won Rookie of the Year. Taught
JavaScript to secondary school students via Code@OCBC.
IoT Lock Technician
SG Bike · Nov 2018 – Aug 2020
Shared-mobility startup. Trained 3 interns, wrote the team's first
troubleshooting documentation. Reverse-engineered a competitor's lock
firmware acquired through M&A (no keys provided) to integrate into fleet
operations.
Hackathons
SuperAI · Jun 2025 | AngelHack · May 2024
SuperAI Next 2025: full-stack TypeScript submission, 24-hour build.
AngelHack 2024: placed 29th of 200 teams (top 15%).
Projects
JustifyPrint: AI Sales Agent
Justifyprint · 2025 – Present · Production
Tool-calling LLM agent that sells printing services through Telegram.
Queries live product catalogs, calculates pricing with paper/size
multipliers, saves order drafts, processes confirmations. Runs 24/7.
Conversation memory with token-aware context management.
Tekong Seafood Restaurant: Digital Storefront
tekong-seafood-restaurant · 2024 – Present · Production
PWA for a 35-year restaurant in Singapore. Menu digitized from
spreadsheets into searchable, mobile-first format. Embedded media
(YouTube, TikTok), seasonal promotional banners, Supabase-backed
customer data, offline-first service worker.
Sales Consolidator: Order Pipeline
uncle-james-giam · 2025 – Present · Production (24–26 daily users)
Replaced manual spreadsheet workflow with a structured order pipeline.
Salespersons submit orders via Telegram. PostgreSQL as source of truth.
Role-based admin flows, CRON-triggered daily summaries, custom ESLint
rules enforcing bot command consistency. Zero data loss since launch.
Events AI Photobooth: Generative Portraits
client-kendrick · 2026 – Present · Deployed at live events
Kiosk-based AI portrait generator. Three-service architecture: Vue 3
touch-screen frontend, Fastify session API with PostgreSQL, Python
FastAPI service running IP-Adapter-FaceID-PlusV2 on CUDA (InsightFace
face embedding + Stable Diffusion 1.5). User selects gender and
hairstyle; pipeline generates stylized portrait. Dockerized for portable
deployment to any venue with a GPU.