Australian vehicle rego detection

Carsales.com.au | Feb 2019 – Apr 2019

This is a supervised object detection model specified for detecting and classifing Australian rego plate. Always on production since done. Built with AWS Sagemaker.

Success metric includes accuracy rate 97%, false negative 1%, false positive 2% when IoU 30%.

Except data cleaning, labelling, model training, tuning and full assessing, productionisation is also done including Python API wrapper with Flask-Rest+ and metric monitoring/reporting.


Automatic advertisement approval system(Tessa)

Carsales.com.au | Feb 2019 - Mar 2019

This is an automatic advertisement publishing approval system. Before Tessa came out, every car ads in carsales.com.au was reviewed by human(customer service team) before get published on www.carsales.com.au. Now with help of Tessa, 50% of all private selling advertisement ads are approved by this system and average user waiting time reduced from 4 hours to now 7 second.

Tessa was showcased at AWS Summit 2019 Sydney
ITNews: https://www.itnews.com.au/news/carsales-builds-tessa-ai-to-check-vehicle-ads-524583


Backend Experience API for Carsales Autogate App

Carsales.com.au | Oct 2018 - Feb 2019

To achieve an API-driven architecture we built Experience API for Autogate app(iOS and Android). It provides an unified endpoint to interact with mobile apps cross platforms and do heavy-lift jobs of data processing at backend server instead of frontend apps. It also enables a faster delivery for apps to escape the long review trap hindering agile delivery and limited by AppleStore. Besides, it also contributes to microservices by providing more monitoring and insights during operations.


Self-host Jira project management

Jan 2017 – Present

I love Jira.

I believe everyone should have own PM tool, no matter Jira,  or simply a notepad if you are happy with it. It can provide you the same scheduling function as a to-do list but benefits you more from a bigger picture with functions like Epic. Complex PM tool offers more granularity control and reminds you the higher level goal meanwhile you plan for tiny tasks.

Jira has self-host version and costs only $10 (WOW) and you can use it FOREVER.

https://www.atlassian.com/software/jira/pricing?tab=self-managed

(I didn't get tips from Atlassian but just say the fact)

So this is my Jira endpoint but you can't access it without permission.

https://jira.eric.life

Tech stack:

  • Nginx
  • Jira
  • Java
  • Debian
  • Wildcard ssl cert: Let's Encrypt + CertBot

Self-host Ghost blog

Jan 2019 – Present

I know blogging is an old school trick. Nowadays people go to Medium, LinkedIn , YouTube etc to build their own brand and famous. Blog? Old fashion la~

But I love old fashion. Or more precisely, I love to rebuild wheel, enjoy the hand crafting joy sparked from all the pain and dirt and have a complete clue about nuts and bolts of what I built.

So stack for this blog system:

  • Instance: hosted on VPS
  • OS: Debian 9.8 (Stretch)
  • Reverse proxy: Nginx
  • Blog Server: Ghost
  • Theme: casper(self modified)
  • Wildcard ssl cert: Let's Encrypt + CertBot
  • Database: Sqlite
  • Metric Analytics: Google Analytics

OpenCL parallelled genetic algorithms

Monash University | Sep 2016 - Oct 2016

This project converts sequential Genetic Algo C code into an OpenCL based parallel GA code, which can efficiently utilize a multicore CPU/GPU architecture.


Indoor precise positioning calibration

Jerry Tek Pty Ltd | Jan 2016 – Jul 2016

Research calibration solution for Bluetooth iBeacon indoor positioning and implement on iOS device.

In indoor position problem, three way position is weak when the Bluetooth radio propagation is not even at every direction thus a need for calibration is urged to increase the low-power devices positioning.

  • Research all state-of-art filtering paper and solution
  • Implement Kalman Filter on Swift iOS

D3 data visualization

Monash University | May 2016

A D3 project showing a dynamic chart with open data from Melbourne council.

Greenhouse gases generated by the Melbourne Council



Please move mouse to play around, click the arc to zoom in, and click centre to zoom out.