JJ Teoh

Software Developer

AI Systems, Product Infrastructure & Full-Stack Platforms

Mechatronics engineer turned software developer. I build complex, reliable products — from AI trading copilots and embeddable feedback SDKs to edge sync engines, financial platforms, and compliance infrastructure.

AI Systems
SDKs & DevTools
Self-Hosted Products
Full-Stack Platforms
Infrastructure
Trading & Data Workflows

About

I started in mechatronics engineering — designing control systems and working with embedded hardware. That foundation in systems thinking shapes how I approach software: I think in terms of failure modes, data flow, and operational constraints, not just features and frameworks.

Distributed Systems

Building reliable data synchronization, offline-first architectures, and edge computing solutions that work in constrained environments.

Full-Stack Product Engineering

End-to-end application development from database design and API architecture to polished user interfaces and deployment pipelines.

Infrastructure & DevOps

Container orchestration, CI/CD pipelines, monitoring, and the operational tooling that keeps systems running in production.

Systems worth opening in an interview

Featured Projects

Complex, self-hosted builds with real integrations, typed backends, durable storage, and enough edge cases to show how I think through systems.

2

flagship builds

AI

agents + tools

OSS

SDK mindset

AI / Fintech Systems
Flagship

AI Trading Copilot

Self-hosted market research and trading workstation with broker tools, multi-agent analysis, and gated execution paths.

apps

Nuxt + FastAPI

agent roles

10-role pipeline

broker surface

market + account tools

runtime

Dockerized stack

  • Streams candlestick charts, tool calls, analyst reports, debate turns, risk reviews, and final decisions as structured NDJSON.
  • Wraps moomoo OpenD for watchlists, k-lines, paper portfolio reads, and gated order execution from a Python FastAPI service.
  • Persists chat, algo state, LangGraph checkpoints, and per-role reflections in a shared Postgres schema.
Nuxt
FastAPI
LangGraph
PostgreSQL

Problem

Retail trading workflows were scattered across broker terminals, watchlists, news tabs, portfolio trackers, and LLM chats with no shared context or audit trail.

Approach

Built a Dockerized Nuxt + FastAPI system where an AI chat can call broker tools, stream real market charts, mutate moomoo watchlists, read positions, and run a LangGraph TradingAgents research pipeline with analyst, debate, risk, and portfolio-manager roles persisted to Postgres.

Impact

Turns live market data, watchlists, portfolio state, news, and multi-agent research into one streaming interface with paper/live trading gates.

TypeScript
Nuxt
Vue
Nuxt UI
AI SDK
Python
FastAPI
LangGraph
TradingAgents
PostgreSQL
Drizzle
Docker
Moomoo OpenD
Playwright
Vitest
SDK / Full-Stack
Flagship

Repro — Feedback SDK & Triage Dashboard

Framework-agnostic feedback widget with annotated screenshots, session replay, diagnostics, and a self-hostable Nuxt dashboard.

deliverables

SDK + dashboard

capture window

30s replay

embed modes

script + ESM

hosting

self-hostable

  • Ships a host-isolated widget that works across vanilla JS, React, Vue, Svelte, Angular, Nuxt, and Next.js apps.
  • Collects annotated screenshots, DOM replay, console logs, network logs, cookies, and browser/system info automatically.
  • Includes a Nuxt triage dashboard, Chrome tester extension, project keys, origin allowlists, blob storage adapters, and GitHub issue sync.
Nuxt
Preact
TypeScript
PostgreSQL

More Systems Work

IoT Platform

Edge Device Sync Engine

Offline-first bidirectional sync between IoT field devices and cloud infrastructure.

Tauri
TypeScript
SQLite
ElectricSQL
Enterprise Platform

Hospitality Management Platform

Unified PMS, POS, and e-invoicing system for hotel operations.

Next.js
NestJS
Electron
PostgreSQL
Cross-Platform

Fitness Coaching Platform

Cross-platform coaching tool with web dashboard, mobile app, and native health integrations.

React
Expo
NestJS
PostgreSQL
Developer Tool

E-Invoicing Compliance SDK

Published npm SDK for Malaysian e-invoicing with digital signing and rate limiting.

TypeScript
Node.js
Vitest
AI / Full-Stack

AI Trip Planner

AI-powered travel itinerary planner with real-time collaboration, expense tracking, and Google Maps integration.

Nuxt
Mastra
TypeScript
PostgreSQL

Experience

Studio20 logo

Back End Developer

Studio20 · Full-time

Bangsar, Kuala Lumpur · Hybrid

Mar 2024 — Present
  • Built e-invoicing compliance system (MyInvois) with document validation, PKI digital signing, and API integration with LHDN
  • Developed backend services and REST APIs using NestJS with PostgreSQL and MongoDB
  • Implemented role-based access control and multi-tenant data isolation for internal platform
  • Set up CI/CD pipelines and established code review workflows for the backend team
ViTrox Corporation Berhad logo

Software Developer

ViTrox Corporation Berhad · Part-time

Remote

Feb 2024 — Present
  • Maintain and ship features for internal web application used across business units
  • Built cross-platform desktop application for user management using Tauri, Vue, and SQLite
  • Implemented offline-first data handling with background sync for desktop tooling
ViTrox Corporation Berhad logo

Industrial Trainee

ViTrox Corporation Berhad · Internship

Penang, Malaysia · On-site

Oct 2023 — Jan 2024
  • Built full-stack web application for real-time data visualization and IoT device control
  • Implemented frontend with Nuxt 3, Quasar, and Tailwind CSS connected to device APIs
  • Worked directly with hardware teams to integrate embedded communication protocols
i-SURVY SDN BHD logo

Data Entry

i-SURVY SDN BHD · Part-time

Malaysia · Remote

Feb 2022 — Jul 2024
  • Automated report generation workflows using Python scripts and Excel templates
  • Reduced manual data processing time through scripted pipelines

Skills & Technologies

Languages

TypeScript
JavaScript
Rust
Python
SQL

Frontend

Vue
Nuxt
React
Preact
Next.js
Expo
Tailwind CSS
Three.js
Shadow DOM

Backend

Node.js
NestJS
FastAPI
Elysia.js
Hono
Mastra
AI SDK
LangGraph
REST
GraphQL
WebSocket

Databases

PostgreSQL
SQLite
Drizzle
Redis
MongoDB

Infrastructure & DevOps

Docker
CI/CD
Linux
Nginx
GitHub Actions
Bun

Tools & Practices

Git
TDD
Vitest
Jest
Playwright
Monorepos
SDK Design
GitHub Apps
Tauri
ElectricSQL
PKI/X.509
Architecture snapshots

System Design

Cleaner slices through the main data flows, integration boundaries, and persistence layers behind the project work.

AI Trading Copilot

Tool-calling chat, streaming research runs, LangGraph decision pipeline, and gated broker execution.

MARKET CONTEXTAGENT RUNTIMEEXECUTIONpromptrunrecommendapprovequotescontextread/writefillsChat UIstreaming runsTool Routerschemas + toolsLangGraph Runanalysts + debateRisk Gatelimits + policyMarket APIsprices + brokerNews + Filingsfresh evidenceRun MemoryPostgresBrokergated ordersOrder Logfills + audit

Repro Feedback Platform

Framework-agnostic widget capture flowing into a self-hosted intake API and triage dashboard.

EMBED SURFACECAPTURE BUNDLEINTAKE + STORAGETRIAGEembedvisualeventsuploadmetadatawriteassetsqueriesopen issuestatusHost Appcustomer productSDK WidgetShadow DOMScreenshotvisual stateReplay + Logssteps + consoleIntake APIorigin + authPostgresreports + usersBlob Storemedia assetsDashboardtriage queueGitHubissue sync

Edge Sync Engine

Offline-first local state, ElectricSQL shape sync, Hono API routes, and Postgres-backed convergence.

CLIENT RUNTIMESYNC RUNTIMEAPI + DATABASEoffline writeschangespushsyncchangessubscriptionsread/writeRESTresolveapplyTauri AppsVi2 / V-DosingSQLitelocal-first storePWA Companionbrowser clientSync Queuedebounced writesElectricSQLshape syncShape Subspull + applyHono APIserver boundaryPostgressource of truthConflict Rulesmerge policy
GitHub contribution grid snake animation

Get in touch!

Have a project in mind, want to collaborate, or just say hello? Drop me a message.