Skip to main content

Software Engineer · AI · Infra

JJ Teoh

Mechatronics engineer turned software developer. I build reliable AI systems, SDKs, and self-hosted infrastructure.

fig.01 — flow field

About

I came to software from mechatronics. Control systems, embedded hardware, things that fail in the field. So I build software the way I'd build a machine: for failure modes and data flow, not just the happy path.

Distributed systems

Offline-first sync, edge computing, and data that survives bad networks.

Full-stack product

End to end. Schema and API design through to a polished, shipped interface.

Infrastructure

Containers, pipelines, and the operational glue that keeps things alive in prod.

fig.02 — instrument · drag to rotate

Selected work

A few systems I've built end to end. Self-hosted, strongly typed, and full of the edge cases that show how I think.

AI Trading Copilot research intelligence dashboard with per-symbol theses and ticker signals.

AI / Fintech Systems

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
Nuxt FastAPI LangGraph PostgreSQL
Source
Repro landing page highlighting feedback reports with annotated screenshots and session replay.

SDK / Full-Stack

Repro Feedback SDK & 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
Nuxt Preact TypeScript PostgreSQL
Source Docs

More work

Experience

Production work across backend systems, internal tools, platform integrations, and field-ready software.

Aug 2025 - Present

Studio20 logo

Backend Team Lead

Studio20 · Full-time

Kuala Lumpur · Hybrid

  • Lead backend technical direction across compliance, platform, and client work, owning architecture, code review, and engineering standards now used across every project.
  • Standardized project scaffolding, CI/CD, and Docker-based deployments across 17+ client web and mobile builds, so new projects start from one consistent baseline.
  • Serve as technical point of contact for clients: turn business requirements into architecture proposals and walk non-technical stakeholders through the trade-offs.
  • Mentor backend engineers and personally own the hardest parts of the stack: digital signing, multi-tenant data isolation, and API design.

Mar 2024 - Aug 2025

Studio20 logo

Back End Developer

Studio20 · Full-time

Kuala Lumpur · Hybrid

  • Built Malaysia's MyInvois e-invoicing compliance system end to end: document validation, PKI digital signing (XML-DSIG / JSON-DSig, X.509), and direct LHDN API integration.
  • Designed and shipped backend services and REST APIs with NestJS, PostgreSQL, and MongoDB, with role-based access control and multi-tenant data isolation.
  • Published an open-source npm SDK encapsulating the compliance flow (signing, sliding-window rate limiting, multi-tenant support) for external integrators.

Feb 2024 - Present

ViTrox Corporation Berhad logo

Software Developer

ViTrox Corporation Berhad · Part-time

Remote

  • Build ViTrox's AgriTech platform end to end: a monorepo pairing a Tauri desktop controller, a Hono sync backend, and a Nuxt PWA.
  • Designed the offline-first bidirectional sync engine (local SQLite to ElectricSQL) that keeps field devices and the cloud dashboard consistent on networks with under 30% uptime, using debounced auto-sync and token-authenticated shape streams.
  • Shipped a Raspberry Pi irrigation dashboard: real-time EC, water-level, and flow-sensor monitoring, cron-based scheduling, MQTT/LoRa hardware control, Firebase sync, and Telegram alerts.
  • Built a versioned schema-migration system so exported device configs upgrade automatically across app versions.

Oct 2023 - Jan 2024

ViTrox Corporation Berhad logo

Industrial Trainee

ViTrox Corporation Berhad · Internship

Penang · On-site

  • Built a full-stack IoT web app for real-time data visualization and device control (Nuxt 3, D3).
  • Integrated embedded communication protocols directly with the hardware teams on-site.

Feb 2022 - Jul 2024

i-SURVY SDN BHD logo

Data Entry

i-SURVY SDN BHD · Part-time

Remote

  • Automated report generation with Python, cutting manual processing time.

Toolkit

A practical stack for full-stack systems, AI product surfaces, SDKs, and infrastructure.

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

System design

A cleaner slice through the data flows and integration boundaries behind the 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

Contribution activity

Contact

Have a system to build, a product to polish, or a technical problem that needs a reliable path forward?

Say hello

Get in touch

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

© 2026 JJ Teoh

Built with Nuxt. Photographs shot through my telescope.