← Back to work
🟢 LiveFull-Stack Software Engineer (~3 yrs) · Peasy · Malaysia · 2023–2026

Peasy

Omnichannel engagement & AI-automation SaaS — one inbox across WhatsApp, Messenger, Telegram, X, Line, email, SMS & web chat, with a visual chatbot flow builder, LLM/voice AI, ad-campaign automation, and commerce.

The problem

Peasy is an omnichannel engagement platform for small and mid-size businesses in Malaysia and SEA. In one product a business runs a shared inbox that unifies WhatsApp, Facebook Messenger, Telegram, Twitter/X, Line, email, SMS and a web live-chat widget, builds AI chatbots, sends marketing campaigns, takes orders, books appointments, and automates Facebook/Google ad campaigns — with usage billed through a credit system. Over ~3 years I owned the full JavaScript/TypeScript surface of that product (Vue & React web, Node.js backend services, and the React Native agent app), while the Ruby/PHP layers were owned by other engineers.

What I built

Contributions across 5+ apps and services: the flagship Vue omnichannel chat app (chat.peasy.ai, a heavily extended Chatwoot foundation with substantial original Peasy modules), a React ad-automation + analytics console (app.peasy.ai), several Node.js/Express microservices behind the AI/WhatsApp/automation features, a Next.js Calendly-style booking app, and the React Native agent mobile inbox.

Engineering highlights

1

A visual programming surface, end to end

The flow builder isn't a form — it's a node-graph editor on the front end and a graph-to-bot compiler on the back end (graph traversal, template packaging, per-tenant isolation, Meta Graph API + Stripe + S3). Building both sides of that is the most representative piece of my work here.

2

Real-time & streaming voice AI

ActionCable-driven live inbox updates on web and mobile, and a barge-in streaming voice pipeline (STT → LLM → TTS) with a sentence-chunking queue that starts speaking before the model finishes — it had to feel like a phone call, not request/response.

3

WhatsApp, two ways

Both the official provider path (Meta Cloud API / 360Dialog / Twilio) and an unofficial session-based path (Baileys QR login) — including the auto-restore, reconnect, and failure-recovery resilience the latter demands across many tenants.

4

LLM product features, not just an API call

RAG ingestion (files + URLs), tool/function-calling config, dynamic variables, cost tracking, and an evaluation/testing harness — the scaffolding a real LLM product needs to stay reliable and affordable.

5

Stack range across eras

Legacy React 16 + Redux-Saga and Vue 2 alongside modern Next.js 13/14 + TypeScript + Tailwind + Redux Toolkit — three years of both maintaining and modernizing, with consistent multi-tenant scoping feeding a credit-based usage-billing layer.

Results

  • Contributed for ~3 years to a live, revenue-generating SaaS with real business customers.
  • Worked across 5+ apps and services (Vue chat app, React ad console, Node microservices, Next.js booking, React Native mobile) — genuine full-stack breadth on one product.
  • Delivered the interactive, high-complexity parts (flow builder, LLM suite, campaign builders, voice AI, WhatsApp integrations, ad automation) rather than CRUD screens.

Full tech stack

Vue 2 / Vuex / Vue RouterReact 16 (CRA, Redux-Saga, react-query)Next.js 13/14 (App Router, TypeScript, Tailwind, Redux Toolkit)React Native (bare, Redux, ActionCable, FCM)Node.jsExpress (4 & 5)PostgreSQLMongoDB / MySQLWebSocketsnode-cronAWS S3OpenAI (chat, Assistants, streaming)Google Cloud Speech (STT)MiniMax (TTS)BotpressWhatsApp (Meta Cloud API, 360Dialog, Twilio, Baileys)Meta/Google AdsGoogle CalendarTwilio VoiceStripePrismaZod
Related case studyPeasy Shop — the conversational-commerce module (spotlight)

Built at Peasy · Malaysia — the source lives in a private repository, so it isn't publicly available. A live screen-share demo and code walkthrough are available on request for hiring managers.