Forth Vending (TAO BIN) Bangkok
Senior Software Engineer Jul 2025 — Present
- Led the Technician Board — real-time field ops dashboard tracking MA check-in/out, work duration, swap activity, and travel distance; rolled out across Thailand and international markets
- Owned the Announcement Board end-to-end — maker flow, acknowledge tracking, soft delete, and secure S3 file attachments with per-environment CDK infrastructure
- Overhauled RabbitMQ infrastructure — Consistent Hash plugin, restructured consumer topology, and refactored Sluice event router from Express to Hono, cutting memory usage
- Extended GPro APIs — machine move between sites, installation image upload via S3, machine profile management, and factory data endpoints
- Shipped Error Board by Refill Zone and No Bill/No Coin dashboard with event-driven handlers and scheduled snapshot cronjobs
- Authored RFCs for RabbitMQ consumer priority and delivery limits; led database schema and Authorization kickoff sessions
- Led incident response for Kafka outage data backfill, TimescaleDB migration failure, and Keycloak ECS crash
- Integrated AI Uniform Checker — migrated Python Lambda to Node.js and wired into the backend for automated field compliance checks
- Mentored interns through cooperative supervision, technical interviews, and assignment reviews
Node.js · TypeScript · GraphQL · PostgreSQL · TimescaleDB · RabbitMQ · AWS (Lambda, CDK, S3, ECS)
Software Engineer May 2024 — Jun 2025
- Architected the Maintenance Board from zero — event ingestion, GraphQL schema, and resolvers giving ops teams real-time visibility into machine health, inventory scores, and error states
- Shipped the RT Fail Board end-to-end — operators can spot failures instantly, trigger remote commands (self-test, reboot, activate/deactivate), and track recurring errors before they impact revenue
- Built Machine Timeline and Machine Snapshot on TimescaleDB materialized views — turning raw event streams into fast, queryable machine history
- Unlocked GPro integration via REST APIs letting external field teams create locations, validate deployments, and manage work orders from their own platform
- Eliminated manual deployments by bootstrapping AWS CDK pipelines with GitHub Actions for Lambda cronjobs across dev, staging, and production
- Resolved a critical RabbitMQ bottleneck with sub-consumer groups and queue policies — improving throughput with zero downtime and no queue recreation
- Delivered analytics dashboard features: top drinks/machines by sales, drink fail by error code, and payment method breakdown
- Modernized the tech stack: Node.js 22, TypeScript v5, Sequelize v6, Apollo Server v4
Node.js · TypeScript · GraphQL · PostgreSQL · TimescaleDB · RabbitMQ · AWS (Lambda, CDK, SQS)