Download PDF

Work History

Senior Frontend Developer

April 2022Present
Autify, Inc., Japan
  • Worked with Web, Mobile, Analytics and ML teams
    - Exposure to Selenium Webdriver and Appium
    - Exposure to visual regression testing pipeline
    - Experience with analytics tools
  • Migrating from a Rails MPA to a React SPA
  • Maintaining code quality through extensive reviews

Tech stack
Frontend: React, Redux, Apollo
Backend: Ruby on Rails, GraphQL, Postgres
QA: Jest, Testing Library, Mock Service Worker, RSpec, Autify

Full Stack Developer

Oct 2019March 2022
Rakuten, Inc., Japan
  • Coordinated between 4 different departments with 20+ people to build an in-house analytics platform
    - Departments: Data Pipeline, Data Tracking, Data Consulting, Product Management
    - Main Features: Form Builder, Query Builder, Multiple timezone support
  • Helped to maintain the CI/CD pipeline and support the transition to Kubernetes
  • Took ownership of the logging architecture
  • Mentored other developers and participated in productive code reviews
  • Improving the QA process with automated testing
  • Migrated the codebase over to Typescript
  • Developed an ESLint plugin for GraphQL linting

Tech stack
Frontend: React, Redux, MaterialUI, Typescript, Tailwind
Backend: node.js, GraphQL, hapi.js, MongoDB, Redis, RabbitMQ
Databases: Presto, Druid, Elasticsearch
Scripting: Python 3, Jupyter Notebook
QA: Jest, Cypress, Testrail
Infrastructure: Jenkins, Docker, CloudFoundry, Kubernetes
Software Development: JIRA, Confluence, Bitbucket

Senior Software Engineer

Apr 2018Aug 2019
Tectus Dreamlab, Singapore
  • Solely maintaining a web app for Proceq, which produces tools for non-destructive testing (NDT) 
    - Worked on chart visualizations with Highcharts, geo-analytics with Google Maps
    - Built an offline HTML-based report with jsdom
  • Collaborated on the Screening Eagle platform, a management tool for the construction industry
    - Constructed a dynamic form builder for issue tracking
    - Worked with PDF rendering with PSPDFKit and 3D rendering with three.js
  • Spearheaded an integrated testing effort that brought bugs down to a near-zero level
  • Integrated i18n into the web app
  • Implemented a deployment pipeline for a one-click build

Tech stack
Frontend: React, redux, redux-saga, recompose, ant.design, stylus, storybook, Webpack 4, Flow
QA: Jest, Cypress, Sentry
Infrastructure: Gitlab CI, Jenkins pipelines, Docker, AWS
Software Development: Gitlab, JIRA

Frontend Developer

Feb 2015Mar 2018
Spacebib, Singapore
  • Built the public-facing and internal admin site for a sporting events platform
  • Collaborated with the backend for a seamless API integration
  • Continuously collected and iterated on design feedback to improve usability
  • Constantly monitoring integration tests and dashboard metrics to ensure site uptime

Tech stack
Frontend: React, Redux, MobX, Apollo, Bootstrap, SASS, JSPM, Webpack 2, Typescript
QA: Mocha, Selenium Webdriver, Webdriver.io, Browserstack
BackendCakePHP, GraphQL, Jenkins, Ubuntu 14.04, Linode
Software Development: Github

Full Stack Developer

Jul 2012Apr 2014
Pytheas Travel, Singapore
    • Built a whitelabel CMS SaaS solution catering to 50+ travel agents
    • Migrated 35K customers, 1K products and 5 clients to our CMS, preserving DNS and email functionality 
    • Automated the deployment of development and production servers with Puppet
    • Built a proof-of-concept logging framework based on Elasticsearch 

    Tech stack
    Web: Codeigniter 2, JQuery
    QA: PHPUnit, Selenium Grid 
    DevOps: postfix, Nginx, Jenkins, AWS, Puppet, CentOS6
    Software Development: In-house SVN repository

    Web Developer

    Mar 2012Jun 2012
    Doorstep Luxury, Singapore
    • Developed a Wordpress e-commerce site for luxury goods, creating and modifying plugins as necessary
    • Built a standalone web-based point-of-sale (POS) system to scan from a webcam and print receipts

    Web Developer

    Dec 2011Feb 2012
    KLIF Media, Singapore
    • Built a prototype of a social media site on Symfony 2

    Education

    Bachelor of Arts (B. A.) Psychology

    Aug 2008Jun 2011
    National University of Singapore
    • Electives in Programming and Linguistics

    Skills

    Meetup Talks

    Personal Projects

    FFXIVFurigana (https://github.com/xiankai/FFXIVFurigana)
    - A plugin to display furigana over Japanese in the chat log output

    ChatHistory (https://github.com/xiankai/chat-history)
    - A web project to import and display chat history from old messaging programs

    Triple Triad V2 (https://github.com/xiankai/triple-triad-ai)
      - An experiment with Rust to replicate the working logic of the card game

    YouFast (https://github.com/xiankai/youfast)
      - An experiment with Rust to replicate the working logic of the card game

    XIVAnalysis (https://github.com/xiankai/xivanalysis)
      - Collaborating with other users to analyse combat performance in Final Fantasy XIV
      - Using ReactSemanticUICSS Modules

    Pokémon Go Map (https://github.com/xiankai/sg-pokemongo-ex-raid-map)
      - A local map to track and predict locations of popular EX-raids in Pokémon Go, serving 3k+ users
      - Built with Typescript, MobXLeaftlet and d3.js
      - Designed to be replicated for other countries as well
      - Auto-updated data from a google drive spreadsheet 
      - Implemented various mapping techniques like (S2 cells, point-in-polygon) to visualize map data
      - Used Mapbox for map layers before switching to OpenStreetMap (OSM)

    Triple Triad (https://github.com/xiankai/triple-triad-solver)
      - A multiplayer implementation of a mini-game in Final Fantasy XIV, using peerjs to polyfill WebRTC
      - Using redux-observables/RxJS for state management

    Web Crawler (https://github.com/xiankai/Disney-Store)
      - Crawled the Disney Store for product updates to notify up to 15 subscribers of new stock
      - Used cURL to crawl pages, redis to store hourly data and Mailchimp to send notifications

    Discord bot (https://github.com/xiankai/pusheen-the-fc-helper)
      - Another web crawler to crawl ten thousands of pages using a job queue mechanism
      - Used phantomjs to crawl pages, redis to store data and node.js to host the chat bot interface

    Server Administration
      - Managed a few VPS to host various bots and websites for other people
      - Migrated the server 6 times, alternating between Linode, AWS and Digital Ocean, using rsync, mysqldump and Puppet to quickly rebuild environments, preserve data, and maintain 100% uptime