{"schema":"discover.me/profile.v1","id":"f5f8b892-eff2-4b97-9b95-88fb56e197e5","handle":"jjteoh","updatedAt":"2026-06-05T03:41:04.273Z","profile":{"id":"f5f8b892-eff2-4b97-9b95-88fb56e197e5","handle":"jjteoh","name":"Teoh Jia Jing","headline":"Backend and platform developer building AI systems, agent workflows, and full-stack products","bio":"Jia Jing is a backend and platform-focused software developer in Kuala Lumpur. He builds TypeScript-heavy systems that connect AI agents, real integrations, durable storage, and operational tooling: trading copilots, itinerary planners, e-invoicing infrastructure, offline-first edge sync, and self-hosted products.\n\nAt Studio Twenty, he leads backend architecture, code review, CI/CD, and client-facing technical decisions. His mechatronics background shows in how he approaches software: data flow, failure modes, deployment paths, and constrained edge environments rather than just screens.\n\nHis current flagship builds are AI Trading Copilot, a self-hosted market research and trading workstation, and AI Trip Planner, an AI-assisted travel planner that validates generated itineraries against real Google Places data.","location":"Kuala Lumpur, Malaysia","avatarUrl":"https://cdn.discover.me/avatars/w5utzaGVlWzhm37WyVnhpAsZ2uA1Z4ap/22967626-54c5-42bc-80f5-f0d272e14fae.png","availability":"Open to backend, platform, and AI systems work; strongest fit for TypeScript-heavy product infrastructure, AI agent workflows, and full-stack systems with real integrations.","status":"listed","visibility":"public","viewCount":200,"uniqueViewCount":48,"listedAt":"2026-06-05T03:41:04.273Z","updatedAt":"2026-06-05T03:41:04.273Z"},"links":[{"id":"a2fd834d-7029-46ea-aaf4-d005ffdbf9c0","label":"GitHub","url":"https://github.com/Ripwords","sortOrder":0,"verified":true},{"id":"48c7643d-153a-4ef8-bcd3-0491cdcecfd1","label":"LinkedIn","url":"https://www.linkedin.com/in/jjteoh/","sortOrder":1,"verified":false},{"id":"ef3ec2bd-ca64-430e-b90f-dd5dd53ba2a0","label":"Portfolio","url":"https://jjteoh.com/","sortOrder":2,"verified":false},{"id":"9a90c9e8-f677-440a-95d0-ea89429b11f2","label":"Resume","url":"https://jjteoh.com/docs/TeohJiaJing.pdf","sortOrder":3,"verified":false}],"projects":[{"id":"f94e15e0-c4f0-4b08-a0ce-7661448be4b0","name":"AI Trading Copilot","url":"https://github.com/Ripwords/ai-trader","description":"Self-hosted market research and trading workstation where an AI chat can call moomoo broker tools, stream candlestick charts, mutate watchlists, read positions, and run a LangGraph TradingAgents research pipeline with analyst, debate, risk, and portfolio-manager roles persisted to Postgres. The stack combines a Nuxt 4 web app, FastAPI service, shared Postgres schema, and Dockerized local deployment; order placement is paper-first with live execution gates.","proof":"Public GitHub repository under Ripwords; the README documents broker watchlist tools, candlestick chart streaming, paper/live portfolio reads, TradingAgents research runs, NDJSON streaming, and paper-only algo workflows.","status":"Active public build","tags":["AI agents","Trading systems","Nuxt","FastAPI","LangGraph","PostgreSQL","Docker","Moomoo OpenD"],"sortOrder":0,"images":[]},{"id":"8a3baf02-f2ea-452f-85ab-dc390c12e119","name":"AI Trip Planner","url":"https://plantrip.my/","description":"AI-assisted travel planner that converts trip intents into structured day plans through Mastra, Google Gemini, and the Vercel AI SDK, then validates suggested places against Google Places data so itineraries use real locations instead of hallucinated addresses. It also supports collaborative trip editing, role-based voting, comments, share tokens, encrypted passport and reservation storage, expenses, PWA behavior, and a Three.js travel globe.","proof":"Live public product at plantrip.my, with screenshots attached. Private GitHub repository under Ripwords confirmed by the local remote and GitHub connector; the project README documents Google Places validation, collaborative planning, encrypted travel documents, expense tracking, PWA support, 23 Drizzle tables, and about 87 Nitro API routes.","status":"Active private build","tags":["AI agents","Travel tech","Nuxt","Mastra","Google Maps","Drizzle","PostgreSQL","PWA","Three.js"],"sortOrder":1,"images":[{"id":"ad18dddf-1a85-4c96-9160-715a1f64273e","url":"https://cdn.discover.me/images/w5utzaGVlWzhm37WyVnhpAsZ2uA1Z4ap/5ae06ea2-5ef2-4b22-8e9a-bb905e13efa4.png","alt":"AI Trip landing page on plantrip.my showing the hero headline and sample Tokyo itinerary preview.","sortOrder":0},{"id":"ced9ca71-eff5-4863-bef0-7e3007a0b0d9","url":"https://cdn.discover.me/images/w5utzaGVlWzhm37WyVnhpAsZ2uA1Z4ap/1ab3dc9d-1854-4430-b5a5-bfbf54ce5e24.png","alt":"AI Trip product screenshot showing a Tokyo Adventure itinerary with days, activities, locations, ratings, and estimated cost.","sortOrder":1}]}],"skills":[{"id":"e82861a1-0bbe-4c5c-9ad7-fd6b14095760","name":"TypeScript","category":"Languages","context":"Primary language across AI Trip, AI Trading Copilot, Studio Twenty backend services, and the Malaysian e-invoicing SDK.","sortOrder":0},{"id":"36d93a5b-cb9d-4520-8e60-c8bdf874b0fd","name":"AI agent workflows","category":"AI systems","context":"Used in AI Trading Copilot with AI SDK tools and LangGraph TradingAgents, and in AI Trip with Mastra, Gemini, and structured itinerary generation.","sortOrder":1},{"id":"a6f1d64b-7ca2-41bf-8940-bc4c608c2ef9","name":"Backend architecture","category":"Backend","context":"Current Studio Twenty team-lead work: API design, code review, multi-tenant data isolation, CI/CD, deployment pipelines, and client technical planning.","sortOrder":2},{"id":"e0c0286d-608a-4b15-970a-6108480ed499","name":"Nuxt and Vue","category":"Frontend / full stack","context":"Used in AI Trip, AI Trading Copilot, ViTrox web and desktop tools, and portfolio/product UI work.","sortOrder":3},{"id":"e052ddc2-a66d-4dfb-9a3d-44db7f715288","name":"FastAPI and Python","category":"Backend","context":"Used in AI Trading Copilot to wrap moomoo OpenD, broker/account tools, TradingAgents research, and paper-trading workflows.","sortOrder":4},{"id":"6bd940f2-7046-4aea-bd3f-7b4f9e837c4f","name":"PostgreSQL and Drizzle","category":"Databases","context":"Used across AI Trip, AI Trading Copilot, Studio Twenty backend services, shared schemas, migrations, chat state, algo state, and multi-tenant product data.","sortOrder":5},{"id":"903dcb61-ef05-41df-82f5-83d54397f27f","name":"Docker and CI/CD","category":"Infrastructure","context":"Used for Studio Twenty deployment pipelines and code review workflows, plus AI Trading Copilot's docker-compose local stack.","sortOrder":6},{"id":"cce614ab-615e-4b57-9b67-39d3ec8a4ef5","name":"Offline-first sync","category":"Distributed systems","context":"Used in ViTrox edge/desktop tooling with Tauri, SQLite, background sync, and offline-first data handling between local devices and web applications.","sortOrder":7},{"id":"4f6d7b81-7748-408d-ab85-01501dde2e24","name":"Testing with Vitest, Playwright, and pytest","category":"Quality","context":"Used in AI Trading Copilot's web and API test setup and in broader product work that needs reliable frontend, backend, and integration coverage.","sortOrder":8},{"id":"83a1976e-5c2b-4516-bff8-eadb01d17136","name":"API integrations","category":"Backend","context":"Used across moomoo OpenD, Google Places, LHDN e-invoicing APIs, Ghostfolio MCP, Yahoo Finance, Tavily/Brave search, and client platform integrations.","sortOrder":9}],"offers":[{"id":"f8647fe2-ec09-4497-ab8c-4d8a5a806ff5","title":"Backend, platform, and AI systems engineering","description":"Open to work where he can own backend architecture, AI agent workflows, TypeScript product infrastructure, integrations, deployment paths, and the UI needed to make complex systems usable. Strong fit for teams building self-hosted products, internal tools, compliance platforms, or agentic software with real data and operational constraints.","kind":"employment","availability":"open","availableFrom":null,"commitment":"full_time","locationMode":"remote","priceLabel":null,"priceCents":null,"pricePeriod":null,"sortOrder":0}],"posts":[],"press":[],"experience":[{"id":"951ba0ea-314f-4bef-aa39-5dde8a650388","role":"Backend Team Lead","organization":"Studio Twenty Sdn. Bhd.","url":"https://studio20.io/","description":"Owns backend architecture decisions, code review, CI/CD pipelines, Docker-based deployments, multi-tenant data isolation, API design, automation workflows, and client-facing technical trade-off discussions.","startedAt":"2025-07-01T00:00:00.000Z","endedAt":null,"sortOrder":0},{"id":"12272742-af24-4624-bd7b-d62ebca7d432","role":"Backend Developer","organization":"Studio Twenty Sdn. Bhd.","url":"https://studio20.io/","description":"Built backend services and REST APIs with NestJS, ElysiaJS, PostgreSQL, MongoDB, role-based access control, and multi-tenant data isolation; also built Malaysia e-invoicing SDK work covering validation, digital signatures, and LHDN API integration.","startedAt":"2024-03-01T00:00:00.000Z","endedAt":"2025-07-01T00:00:00.000Z","sortOrder":1},{"id":"4e879be8-560b-4f3d-b126-6f37728bf927","role":"Software Developer (Part Time)","organization":"ViTrox Agritech Sdn. Bhd.","url":"https://www.vitrox.com/","description":"Maintains web application features for internal teams and customers; built cross-platform desktop data synchronization and automation tooling with offline-first data handling and background sync to web applications.","startedAt":"2024-01-01T00:00:00.000Z","endedAt":null,"sortOrder":2}],"education":[{"id":"ee1c3cb5-0992-47da-9d8c-9a0b22dee9e7","institution":"Universiti Tunku Abdul Rahman (UTAR)","credential":"Bachelor of Mechatronics Engineering with Honours, First Class Honours (CGPA 3.73/4.0)","url":null,"description":"Mechatronics engineering background that informs work on embedded systems, edge devices, control systems, and production software architecture.","startedAt":null,"endedAt":"2024-01-01T00:00:00.000Z","sortOrder":0},{"id":"69aa6e32-6f21-4666-a671-ce01e896e36c","institution":"National Taipei University of Technology (NTUT)","credential":"The New Southbound Policy Elite Study Program","url":null,"description":"International study program in Taipei, Taiwan.","startedAt":null,"endedAt":"2023-01-01T00:00:00.000Z","sortOrder":1}],"verifications":[{"id":"9a73902e-c025-4f59-b050-a3b10951e330","subjectType":"github","subjectValue":"ripwords","sourceUrl":"https://github.com/ripwords","verifiedAt":"2026-06-08T02:12:11.578Z"}],"achievements":[]}