Senior Full-Stack Software Engineer/15+ years/Rhode Island, USA
Phatcharaphan Ananpreechakun
Senior Full-Stack Engineer with 15+ years building secure, scalable platforms for enterprise banking
and finance across web, mobile, and cloud. Core stack: Java/Spring Boot, Node.js, React, Angular, and Kotlin,
with deep experience in microservices, RESTful APIs, and distributed systems. Delivered mission-critical
applications for leading financial institutions, including TMBThanachart (TTB), Krungsri,
Krung Thai Bank (KTB), and the Stock Exchange of Thailand.
Hands-on technical contributor focused on clean, unit-tested, maintainable code, applying object-oriented
and RESTful design patterns, mentoring junior engineers, and defining coding standards and best practices.
Proven record of owning features end to end and shipping reliable, high-performance software in Agile teams.
◆U.S. Permanent Resident · No sponsorship required. Open to on-site or remote roles
anywhere in the U.S.
Lead full-stack delivery of web and mobile products end to end. Built a drama video-streaming
platform — Angular front end, Node.js backend tuned for streaming throughput, and a cross-platform
Flutter app with native video playback and ad insertion.
Oct 2024 → present
Arincare Co., Ltd.
Senior Software Engineer · part-time, remote
Core developer on Arincare Telepharmacy and the AI assistant layer on top of it. The case study
below covers it in detail.
Case study — Arincare Telepharmacy & AI
Oct 2024 → present · 6,000+ pharmacies
I'm a core developer on Arincare Telepharmacy, the remote-pharmacy system added to the Thai FDA's
approved telepharmacy list in August 2026. Under Thai Ministry of Public Health rules only listed systems
may lawfully be used for telepharmacy — so on this product, "it works" and "it is legal to operate" are
the same requirement.Read the launch announcement on Techsauce ↗
The telepharmacy platform
Laravel 13 · Vue 3.5 · Reverb · LINE LIFF · MySQL · Docker on EC2
A patient opens a LINE Official Account or the pharmacy's own app, is matched to an on-duty
pharmacist, and goes into a live video consultation with real-time chat over Laravel Reverb and Pusher.
E-prescription issuance and persistent consultation history, so the same pharmacist can follow the
same patient across refills rather than starting cold every time.
Three Vue 3 + TypeScript surfaces — pharmacist console, patient LIFF app, back-office — over one Laravel API.
Deploys as a single docker-compose stack: Caddy terminating TLS for five subdomains, the API, the
WebSocket server, a queue worker, and the three SPAs. It either runs standalone or plugs into a pharmacy's
existing management software.
The pharmacist console — patient queue, live voice and video consultation, and the patient
record with e-KYC and pharmacy notes on one screen. The patient side runs inside LINE.
Techsauce, Aug 2026 ↗
Vertex AI · n8n orchestration · LINE Messaging API
Built "Nicha", an n8n-orchestrated assistant that sits inside the pharmacy's own software and
answers in plain Thai — demand forecasting, an inventory snapshot, medical-knowledge cross-checks,
triage support, purchasing suggestions, and agentic automation of the repetitive steps.
A second surface answers customers directly in LINE, through the Messaging API, in the same
channel they already use to talk to their pharmacy.
AI-powered healthcare and sales-assistant workflows on Vertex AI, including generated
patient-education content and automated post-consultation follow-up.
Presented as part of Arincare's showcase at a Google Cloud TH.AI Leaders Demo Day.
One conversation, two screens. A customer asks in LINE on the left; the pharmacy answers
from the same assistant embedded in its dispensing software on the right. Same n8n orchestration, same
Vertex AI workflows — the captions name each capability as it fires.
Recommendation, scoring, and the boring parts that matter
mlxtend · Redis · Dagster · batch jobs
Product recommendation from market-basket analysis (mlxtend), with Redis caching and scheduled
batch jobs so the shop-front never waits on the model.
A Dagster pipeline for product scoring, plus payment and search optimization.
Cut platform latency by roughly 30% through database query optimization and a caching strategy,
alongside ongoing API architecture work.
The consulting decade
Dec 2014 → Oct 2024 · Odd-e (Thailand)
Ten years as a consultant engineer placed inside Thailand's largest financial institutions and its telecom
incumbent. One employer, five very different production systems — and in every one of them, a failed deploy
was somebody's payday, trade, or SIM card.
TMBThanachart Bank — ttb touch, the bank's flagship retail app
5.5M+ users · Java Spring Boot · Kafka · React · Swift · Kotlin
◆10s+ → under 500ms. The personalization query path was taking more than ten seconds.
It was a JPA fetch-strategy problem — the entity graph was pulling far more than the endpoint needed,
in far too many round trips. Reworking the fetch plan and the queries brought it under half a second.
Designed and built a personalization card engine — a set of Java Spring Boot microservices surfacing
contextual, targeted cards to 5.5M+ users based on in-app behaviour, transaction patterns and campaigns.
Architected it across services communicating via Feign clients and Kafka event streaming: a core
personalization API, a Spring Batch service pre-computing cards on scheduled overnight jobs, and a
Firebase FCM service for push. MongoDB for persistence, reactive Redis to keep the mobile experience fast at scale.
Built the campaign-management CMS in React with Redux Toolkit — drag-and-drop card ordering, a rich-text
editor, dynamic form-driven configuration — tested with React Testing Library and Vitest.
Delivered the native clients in Swift and Kotlin; enforced quality with JUnit 5, Mockito, and
JaCoCo/SonarQube coverage gates, and mentored junior engineers through code review.
Built the Loyalty & Privileges module — points, rewards, partner offers — for the super app on both
iOS (Swift) and Android (Kotlin), using MVVM, Koin DI and LiveData/Coroutines as a standalone feature module.
Integrated The 1, Central Group's loyalty programme: member linking, point verification, and
PDPA-consent onboarding so customers could connect their points and redeem in-app.
Implemented the campaign and privilege catalog with QR/barcode redemption and category browsing,
consuming OAuth/APIM-secured APIs on a Kotlin Spring Boot backend over Amazon DynamoDB.
Drove quality with TDD — unit, integration and Espresso UI tests — plus JUnit 5/MockK on the services,
JaCoCo coverage enforcement and ktlint gates in CI.
GO by Krungsri Auto — the super app the Loyalty & Privileges module ships inside, on both platforms.
Krung Thai Bank — Merchant Management System
Java Spring Boot · Angular · QR payments · Alipay · SQL Server
Redesigned and rebuilt merchant onboarding and administration as multiple Java Spring Boot services
covering core merchant management, QR payments, Alipay, and government-scheme (Pracharath) payments,
with an Angular front end and HATEOAS-style REST.
Designed the data layer on SQL Server with JPA/Hibernate across 20+ entities, and handled asynchronous
processing with JMS messaging (ActiveMQ/Artemis).
Secured the platform with Spring Security and delivered the merchant experience across native Android apps
and an Android WebView app with UAT/production build flavours.
CI/CD on Jenkins + Docker with SonarQube gates; reliability driven by Robot Framework backed by a
dedicated mock-data service.
The Stock Exchange of Thailand
Trading portal · IPO platform · Go · Swift · multi-bank settlement
Built and maintained the large-scale investor and broker-admin trading portal — portfolio, order status,
real-time contract notes, e-statements, market reports — in JSP/Java with Spring, used across multiple
brokerage firms.
Developed supporting Spring Boot services: a fund-trading API gateway, a wealth-management service and a
user-management module, and integrated e-payment deposit and transfer flows with SCB, KBANK, Krungsri and
UOB — including retransmission and reconciliation.
Built the IPO subscription platform on a Go backend over MongoDB with a JSP front end, backed by Go
unit and integration tests, plus a React module for fund-payment configuration with Excel bulk upload.
Developed Streaming Fund+, a mutual-fund trading iOS app in Swift, and optimized the Streaming
stock-trading iPhone app for performance.
Everything else here was internal — broker admin portals and settlement services behind a login, with
nothing public to link to.
Streaming Fund+ — mutual-fund trading and investment plans, built in Swift over Java Spring
Boot services. Its sibling, Streaming, is the stock-trading app I tuned for performance.
dtac — SIM registration, KYC and number portability
Smart-card readers · SMPP · LDAP · Go · AES/CBC
Built in-store tools for DTAC Hall and call-centre staff: Java smart-card modules reading Thai national ID
and SIM cards, e-signature capture, and barcode/QR scanning for fast SIM registration and KYC.
Developed the Mobile Number Portability portal in Java Spring MVC — OTP over SMPP, multi-domain LDAP
auth, package and promotion search, port-in order management — with multithreaded validation and
AES/CBC-encrypted data exchange.
Built Go REST services bridging telecom backends (Siebel, HLR, MNP, Tuxedo) with XML↔JSON/SOAP
transformation, behind an AngularJS front end.
Led development of a payroll platform in React/TypeScript and Node, with REST integrations,
real-time synchronisation, and unit and integration tests.
Ran the cloud workloads on AWS — EC2, RDS PostgreSQL, CodePipeline and CloudWatch — which made
releases repeatable and gave the team actual production visibility.
Products I've shipped end to end
Live in production
Outside the enterprise work I build whole products alone — schema, API, web, mobile, and the deploy path.
Two are shown in full below; the rest are listed with their live or store links. Everything here is in
production right now.
Booking and scheduling SaaS for salons and spas. Node + TypeScript API on Knex migrations with JWT auth and
role-based permissions; Next.js site, Flutter app, React back-office. The hard part was billing —
Stripe subscriptions and Connect, trials, automated renewal runs, marketplace application fees, and
reconciling a Stripe/Mollie mismatch that produced two different invoices for one subscription.
A directory and community platform for Thai people and businesses worldwide. Express + TypeScript API on
Railway MySQL with Google Cloud Storage for user media, a server-rendered Next.js 15 front end tuned
for SEO, Google and Facebook OAuth, and a Flutter client. The operator back-office is run by the client's
own non-technical team.
More shipped products
MinChap — short-drama streaming for the Thai market, on both stores.
Flutter client, Node API on Knex, operator back-office; coins, in-app purchases and episode unlocking.
Google Play ↗App Store ↗
AgriPro Farmer — smart-farm app on both stores. Farmers draw a plot on a satellite map, the app
computes its area, then tracks planting cycles, weather from the Thai Meteorological Department, and IoT
soil and climate sensors.
Google Play ↗App Store ↗
Niti Thai — restaurant site with online pickup ordering for a client in Glenville, New York. Five
design directions built, the chosen one shipped.
nitithainy.com ↗
Digimove logistics suite — production and logistics dashboards for B.Grimm and Sanko, plus
register, request, shipment and tracking apps.
Flatmates Scheduler — Flutter app and Express 5 / MySQL API on Railway for booking shared spaces
across multiple house profiles.
Speaking & teaching
Community
Speaker at Angular Bangkok, ReactiveX Bangkok, and Women Techmakers events.
Ran workshops on Angular, Test-Driven Development and Robot Framework at universities and in tech
communities — including Maejo University, Mahanakorn University of Technology, and in-house at Food Passion.
◆Best Performing Startup Award, DTAC Accelerate — for the Somjai home-loan platform, a one-stop
mortgage service for property developers. I built the Angular front end, the PHP/Laravel backend, and the
CI/CD pipeline on AWS CodePipeline.
Writing
medium.com/@phatpan · 930 followers
I write up the things that cost me a day to work out, so they cost the next person ten minutes. Mostly in Thai,
some in English — several published through ODDS, the consultancy I spent a decade with.
Read them on Medium ↗
Before the banks: BECi Corporation, 2011–2014, building PHP web and backend systems for Thailand's
major broadcasters — Thai TV3 and Krobkruakao — plus LG and Samsung Smart TV apps and social-media API
integrations, and a run of campaign microsites for concert and exhibition promoters. These screenshots are
from a portfolio I wrote in 2017; they have aged exactly as well as you would expect.
Titanic exhibition microsite, 2012
Thai TV3 on Samsung Smart TV, 2013
X Japan flood-relief auction, 2011
Concert campaign app, 2012
Point-of-sale dashboard, freelance
Education
2007 — 2011
Maejo University, Chiang Mai
Bachelor of Science, Computer Science · Thailand
2022 — 2024
Greystone College, Melbourne
Certificate III in Business · Australia
Let's talk
Authorized to work in the U.S. without sponsorship, open to on-site or remote, and happy to walk through
any system on this page in as much detail as you want.