A multi-tier Java EE operations system for the Government Savings Bank of Thailand, automating passbook update machines across hundreds of bank branches.
GSB-PUM is a four-tier system that automates passbook update machines (PUM) for the Government Savings Bank (ธนาคารออมสิน) — one of Thailand's largest state-owned banks. The system has been built and maintained by PromptNow's automation team over multiple years; I'm one of several developers on the team, focused primarily on the Back Office web application with smaller contributions to core service integrations and report-export tooling.
Four codebases coordinated under a single release cadence: an on-device CyberDriver agent, a Core Service backend for switching-API integration, a JSP-based Back Office for operations staff, and a shared DB/infrastructure tier.
The Back Office is a Wildfly-hosted Java EE application of ~300 JSP pages covering machine management, patch tracking, audit logging, configuration, user/role permissions, and operational reporting across GSB's branch network.
Most of my own work lives on the Back Office report pages: adding columns to existing reports, wiring up Excel / PDF / CSV exports for new ones, and keeping all four output formats (HTML / Excel / PDF / CSV) column-aligned from a single source-of-truth dataset so a column added once propagates everywhere. I've also authored a small library of internal tooling — reusable skills the team uses for export wiring, data-field synchronization, and export-reconciliation auditing — that codifies patterns the team converged on across many similar reports.
SonarCloud static analysis runs on every commit, gating merges on security, complexity, and duplication thresholds. The team ships against bank-grade quality bars with an Ant + Wildfly + GitLab CI build chain.