Senior Software Engineer · Kuala Lumpur, Malaysia

I build systems from the hardware up to the cloud.

10+ years of C++ · Embedded Linux · PHP · Python. For the last six years I built certified gaming kiosks for Belgium, including the device drivers, the games, the fleet server that reports to the regulator, and HTML5 casino games with their game servers.

Open to senior roles and freelance projects · Remote · EU and Asia time zones

The Multikiosk gaming machine, with labels on its peripheralsMultikiosk · certified in Belgium (B-23-041001) →
10+
years of professional software engineering
6
years building regulated gaming kiosks and platforms
B-23-041001
Belgian model approval of the Multikiosk
PhD
Image Processing, Universiti Teknologi Malaysia

Selected work

Case studies

All work →
The Multikiosk cabinet with its curved portrait screen, showing the game selector. Labels mark the card and RFID readers, coin entry, bill acceptor, ticket printer and key switch.

BO'S Amusement · 2023

Multikiosk: a certified gaming kiosk

All the software for a regulated gaming machine: four games on a Raspberry Pi 4, e-ID age checks, printers and payment devices, recovery after power loss, and the accounting that regulators audit.

  • BlitzMax
  • C++
  • Raspberry Pi 4
  • Raspbian
  • RS232

BO'S Amusement · 2020 – 2026

Kiosk fleet server and Gaming Commission reporting

One server that every Multikiosk in every bar reports to over WebSocket, using a protocol I designed. It builds the regulatory reports for the Belgian Gaming Commission, and operators manage bars and machines through its admin panel.

  • C++
  • WebSockets
  • Raspberry Pi
  • Linux
  • CakePHP
Random Dice: a jukebox-style dice machine with a points table, a pay table and four 3×3 dice frames.

BO'S Amusement · 2020 – 2026

HTML5 casino games and game servers

Four HTML5 games for the belgafun.com online casino, the game servers and APIs behind them, and a WebSocket relay that keeps every result on the server.

  • JavaScript
  • Phaser
  • PHP
  • MySQL
  • WebSockets

Architecture

From card reader to regulator

How the pieces I built at BO'S Amusement fit together: gaming machines in bars reporting to one fleet server and on to the regulator (left), and browser games talking to their game server in real time (right).

From card reader to regulatorLeft: in each Multikiosk, serial peripherals connect through a custom I/O board to the BlitzMax game application, and USB peripherals connect to C++ device services; the two talk over a local socket. The C++ services send status and counters over a 4G modem, using a WebSocket protocol, to a fleet server on a Raspberry Pi, which reports to the Belgian Gaming Commission. Right: HTML5 games in the browser talk over WebSocket to a relay, which forwards calls with the player's session to the game server; the game server talks SOAP to the casino platform.MULTIKIOSK · one of many, in barsONLINE GAMES · belgafun.comSerial devicesbuttons · coin · bill · metersUSB devicese-ID · RFID · ticket printerI/O boardPIC · EEPROM · RTCDevice servicesC++ · multithreadedGame application · BlitzMax · Raspberry Pi 44 games · serial I/O protocol · power-loss recoverysoftware checksum · meters and bookkeeping4G / GPRS modemstatus and counters leave the barUSBRS232local socketFleet server · Raspberry PiC++ protocol service · C++ reporter · CakePHP adminBelgian Gaming CommissionWebSocket · my protocolregulatory reportsHTML5 games · PhaserRandom Dice · Jokerz · Acite · Card StackerWebSocket relayPHP · Ratchet · forwards the player’s sessionGame server and APIsPHP · MySQL · every result decided herebalance · update · refresh · closeCasino platformaccounts · wallet · bonusesWebSocket (wss)HTTP + session cookieSOAPLEGENDmy workclient’s hardware, firmware or codethird-party

Toolbox

Technologies I work with

Languages

  • C++
  • PHP
  • Python
  • JavaScript
  • BlitzMax
  • C#
  • SQL

Embedded and hardware

  • Raspberry Pi
  • Arduino
  • Serial / RS232 protocols
  • I²C
  • Relays and contactors
  • PC/SC smart-card readers (e-ID)
  • RFID
  • Thermal ticket printers
  • Coin and bill acceptors
  • GPRS / 4G modems

Backend and web

  • WebSockets (C++ and PHP)
  • CakePHP
  • REST and SOAP APIs
  • MySQL
  • Phaser

Systems

  • Linux (Debian, Ubuntu, Raspbian)
  • Multithreading
  • Socket programming
  • VPS administration
  • Docker
  • Git and SVN

Have a machine, a platform or a team to build?

I'm open to senior engineering roles and to freelance work on kiosks, embedded Linux, gaming and backend systems.