Experience

Web Developer (TixCraft, Ticketing System)

Taiwan
2020 - 2023 Feb.

Develop payment related features from internal management system to external ticketing platform.

  • Study 3rd party API services and integrate into system
    • Payment service: Adyen, Braintree, Red Dot Payment
    • SMS service: CM.com, SMSGlobal
  • Get Yii framework upgraded without affecting existing complicated business logics
  • Introduce unit test using PHPUnit
  • Upgrade Adyen SDKs to simplify payment module and make codebase more maintainable

Utilized :

  • Yii2
  • Oracle
  • git
  • Adyen
  • Braintree
  • Red Dot Payment
  • PHPUnit

API Developer (KKday, OTA company)

Taiwan
2019 - 2020

Being part of 30+ backend team of company, I was in charge of the following tasks on a daily basis:

  • Built REST API with Laravel
  • Turned product owner requirements (business logic) into code
  • Wrote Unit Test and Integration Test to make sure all the business logics are covered
  • Documented API detail via Swagger

Utilized :

  • Laravel
  • PostgreSQL
  • git
  • Swagger
  • Confluence

Full Stack Developer (AtomRock, Surveillance System)

Taiwan
2017 - 2019

At a startup company, I built the surveillance system from scratch using plain PHP and Node.js for backend and jQuery for frontend.

API for Surveillance Devices(camera, proxy device, NVR)

  • Used Node.js to receive information from devices via MQTT protocol
  • Receive facial detection data when proxy detected any faces
  • Receive heat map data periodically after proxy collected data from camera
  • Used AWS PHP SDK to access resources(images, video clips) from S3(AWS Storage)

API for Web Browser

  • Designed API service structure in PHP
  • Handled data validation, data integrity check and Sql Injection check
  • Publish MQTT payload to devices to change devices' setting

Web User Interface

  • Used jQuery to manipulate DOM and handle interaction between users and system

Database Schema

  • Designed relational database schema which satisfied database normalization to reduce data redundancy and improve data integrity

Utilized :

  • PHP
  • Node.js
  • jQuery
  • MySQL
  • DataTable
  • jstree
  • Chart.js
  • AWS S3
  • AWS EC2
  • Mqtt

Web Developer (DewTouch, ERP System)

Singapore
2016 - 2017

Developed ERP system for different companies. The ERP system include customer side modules (quotation, sales, deliver), supplier side modules (quotation, purchase , deliver) and stock management modules.

  • Used CakePHP and jQuery to develop
  • Maintained existing system and develop new modules
  • Migrated client old system to our system
  • Maintained company internal system (project management, incentives and task tracking system)

Utilized :

  • CakePHP
  • jQuery
  • MySQL
  • Git

Projects

News Reader

As a foreigner in Taiwan, I not only read the local news, but also Malaysia news and some international news. As a software developer, I am also interested in the technology news. But I have to visit different news websites for those news, so I wished I could just read the news from specific countries and sources within a website. Since I am learning Go, I decided to use it to create a website that satisfies my own needs. So I created a website with the following features:

  • Search by country, source or date range
  • Mobile friendly
  • User Module (WIP)

Site: https://newsreader.ddns.net

Source Code: https://github.com/ganboonhong/reader

Utilized :

  • Go
  • jQuery
  • Git
  • Datatable
  • Docker
  • Docker Compose

Skills & Tools

Frontend

  • jQuery
  • MySQL
  • Vanilla JS

Backend

  • PHP
  • Node.js
  • Go

Others

  • MQTT
  • Datatable
  • Git
  • jstree
  • Yii2
  • CakePHP
  • Laravel

Education

  • Agricultural Economics
    National Taiwan University
    2011 - 2015

Language

  • Chinese (Native)
  • English (Intermediate)
  • Malay (Intermediate)

Interests

  • Coding
  • Minimalism
  • Watching Sport Events

Others

  • Working & Travel in US

About Me

A software engineer with years of experience in surveillance, ERP, E-commerce, and ticketing systems. Finding the most effective solutions has always been my priority working in fast-paced environments, and I continually invest more time in unveiling the root causes of the issues.