Senior Enterprise Service Engineer · CIMB Bank · Phnom Penh

I build systems that make complex work simpler.

Enterprise applications end to end: the interface, the backend, the database, and the deployment to production. Building for the web since 2016.

See the work Resume (PDF)

00 Why

A feature is one screen. A system is everything a request touches, from a person to production and back.

01 What I build

Every layer a request passes through.

  • Interfaces

    Angular and TypeScript for enterprise applications, with responsive layouts for a consistent experience across devices. Also React and Vue / Nuxt.

    • Angular
    • TypeScript
    • React
    • Vue / Nuxt
  • APIs and services

    RESTful APIs for web and mobile channels and for integration with other applications; C# and .NET services that hold the business rules, the integrations and the scheduled work.

    • ASP.NET Core
    • C#
    • REST
    • JWT
  • Data and production

    PostgreSQL schemas, queries and PL/pgSQL reporting; Docker containers behind nginx, released through Jenkins; monitoring, root-cause analysis and permanent fixes.

    • PostgreSQL
    • Docker
    • Jenkins
    • nginx

02 Selected work

Systems I have built.

Two internal banking platforms and two open-source libraries. The banking systems are confidential, so instead of screenshots each one is drawn as what it is: the people, the layers, and the numbers.

  • Work 01
  • Tax payment platform
  • Live since late 2025

GDT tax payment platform

Branch staff collect property, vehicle and land tax through the web application we built. One shared .NET core serves the branch web app and the bank's mobile app (built by the bank's mobile team), and integrates with core banking and the government tax API.

≈ 100,000 transactions since go-live in late 2025, growing month on month.

Role
Full stack developer, project team
Stack
Angular · C#/.NET · PostgreSQL · PL/pgSQL
GDT tax payment platform: four layers, from the channels to the data.
  • Work 02
  • Complaint management
  • Lead developer

Connect Hub

A bank-wide complaint management platform. Any staff member raises a complaint, the owning department resolves it, the Call Centre verifies with the customer, and a central unit administers and reports.

12 weeks from mockup to production handover in 2026, with six roles in one workflow and three regulatory report types automated.

Role
Lead developer, end to end
Stack
.NET 8 · Angular 18 · PostgreSQL · Docker · nginx
Connect Hub: the complaint workflow across four teams, with its key numbers.
  • Work 03
  • Open source
  • .NET library

SlaClock

An open-source .NET library for "respond within 16 business hours": weekly hours with lunch breaks and night shifts, holidays and half days, any time zone with daylight saving handled, and a timer that pauses while you wait on the customer.

62 tests on .NET 8 and .NET 10, run on Linux, Windows and macOS, and a live demo that runs the library in your browser.

Try it in your browser
Stack
C# · .NET 8 / 10 · xUnit · Blazor WebAssembly
SlaClock: a week of one ticket, with counted business hours, a pause, a public holiday and the deadline.
  • Work 04
  • Open source
  • TypeScript library

Tickline

An open-source live trading chart that any website or web app can add with one HTML tag: smooth real-time candles, indicators, drawing tools, history that loads as you scroll back, positions and price alerts, full screen in portrait or landscape, and image export. It works in plain HTML, React, Vue, Angular, Svelte and Blazor, with complete documentation.

128 tests and no dependencies in about 38 KB, with a live demo on real market data and a settings playground that writes the code for you.

Open the live demo
Links
Live demo · Docs · GitHub
Stack
TypeScript · Canvas 2D · Web Components · Vitest
Tickline: candles with the live price and its tag, and a position from its entry to its expiry.
  • Work 05
  • Open source
  • .NET + TypeScript

Iso20022Kit

Read, write and check ISO 20022 payment messages, the format banks now use for transfers and statements: a .NET library that checks the official schema and the rules a bank checks (totals, balances, currency decimals, IBANs), and a browser viewer that explains any message in plain English without uploading it.

45 cases in a test suite any library can run, run against Java, Go and Rust libraries, with the bugs found in each published. The .NET library and the viewer give the same verdict on every case.

Open the viewer
Stack
C# · .NET 8 / 10 · XML Schema · TypeScript · Playwright
Iso20022Kit: a payment message with the line that is wrong highlighted, and the viewer's plain-English verdict beside it.
  • How I build
  • End to end

One request, end to end.

A feature is one screen. A system is everything a request touches on its way from a person to production and back. I work on every layer it passes through.

  1. Interface Angular · TypeScript
  2. API REST · ASP.NET Core
  3. Services C# · .NET
  4. Data PostgreSQL · PL/pgSQL
  5. Infrastructure Docker · Jenkins · nginx
  6. Production Monitoring · root-cause analysis
The six layers of a system, from interface to production.
  • Experience
  • Since 2016

Nearly nine years, from websites to banking systems.

  1. 2025 – now Senior Enterprise Service Engineer, CIMB Bank PLC
  2. 2023 – 2025 Senior Full Stack Developer, SALA Digital Solution
  3. 2019 – 2023 Senior Full Stack Developer (team lead), Melos Co., Ltd
  4. 2018 – 2019 Full-time English study, Paññasastra University of Cambodia
  5. 2017 – 2018 Senior Web Developer & IT Support, Japara Cambodia
  6. 2016 – 2017 Software Developer, Innovation International Group
  7. 2013 – 2016 BSc Computer Science, Royal University of Phnom Penh · GPA 3.83
A timeline of roles from 2016 to 2025.
  • About
  • Phnom Penh

The engineer behind the system.

I enjoy solving problems where people spend a lot of time on careful, repetitive work that a well-designed system could do for them. The system should handle the complexity, so the user doesn't have to.

To make a system simpler for the people using it, I care about the database design, the deployment, and the operating procedures as much as the user interface. Earlier in my career I led a small development team, and I am still happy to be the person the team comes to when something needs figuring out.

Portrait of Vong Visalsambath in a dark suit and white shirt.

03 More open source

Banking problems, small tools.

Six open-source toolkits for everyday banking work. Each runs in the browser, so nothing typed or uploaded leaves the device, and each has its own tests and security review.

04 How I work

Three steps, every time.

  1. 01

    Start with the people, not the code.

    When someone asks for a new button, they usually want a faster, safer process. Before I build, I find out who does each step, what they wait for, where mistakes happen, and what "better" would mean for them.

  2. 02

    Build every layer it touches.

    The interface, the API, the services that hold the rules, the data, and the infrastructure it runs on: designed together, so every channel behaves the same way.

  3. 03

    Ready for the people who operate it.

    Monitoring, incident investigation, root-cause analysis, and permanent fixes. Documentation and operating procedures are part of the system, not something added later.

05 Stack

One engineer, the whole stack.

Frontend

Angular · TypeScript · HTML & CSS · React · Vue / Nuxt

Backend

C# · ASP.NET Core · Node.js / Express · REST APIs · JWT

Data

PostgreSQL · PL/pgSQL · SQL · MySQL · Redis

Infrastructure

Docker · Jenkins CI/CD · nginx · Linux / Ubuntu · Kubernetes

Production

Monitoring · Root-cause analysis · SIT / UAT · Release support

Also

PHP · Java · Socket.io · real-time data · mentoring developers

Open to conversations

Have a complex problem? Let's build something simpler.

Open to conversations about enterprise and full stack engineering roles and projects.

Short on time

The 30-second version

  1. 01 · Who

    Full stack engineer in Phnom Penh. Senior Enterprise Service Engineer at CIMB Bank (joined March 2025). Building for the web since 2016.

    About
  2. 02 · Proof

    GDT tax payment platform: about 100,000 transactions since late 2025. Connect Hub: lead developer of a bank-wide complaint platform, delivered in 12 weeks. Open source: SlaClock, a .NET library; Tickline, a live trading chart for websites; Iso20022Kit, for bank payment messages; and six more banking toolkits, from loan costs to sanctions screening. Each has a live site.

    The work
  3. 03 · Stack

    Angular, TypeScript, C#/.NET, PostgreSQL, PL/pgSQL, Docker, Jenkins, nginx, Linux. Also Node.js, React, Vue, PHP.

    Stack
  4. 04 · Way of working

    Start from the problem, own every layer from the interface to production, and leave a system its operators can run.

    How I work
  5. 05 · Contact

    Open to enterprise and full stack roles. Call +855 17 439 495, or write any time.

    Email