I'm Desmond Lua,
a dream boy who enjoys programming and travelling.

Been programming for 20 years and still loving the craft which allows me to turn ideas into reality (or apps). I build web apps most of the time and became more active in Android development in recent years. In 2017, I started a blog to document the technical things I learned.
I love hiking and travelling, which lead me to quite a few adventures and built Travelopy.
Life is a journey: there is nothing at the end of the road, but plenty along the way.
人生就是一场修行。

Technical Skills

Web Development

I build web apps with Python + Flask, using Google Cloud Datastore as database and deploy it to Google App Engine. Sometimes I use MySQL and deploy to Digital Ocean/AWS instance as well.

I do front-end development using Vue.js + Webpack with Bootstrap, equiped with reasonable app design skill (for a programmer).

Capable of doing basic web production server setup: Ubuntu with basic security, MySql/MaridDB, nginx + uWSGI.

Android

I code mostly in Kotlin nowadays and continue to maintain some projects with Java from earlier years.

Previous Stacks

No longer actively using C#, C/C++, VB6, PHP/CakePHP, Backbone, CoffeeScript and Brunch.

Things I build

I enjoy coming up with ideas and building apps.
I keep a list of product ideas and if I can't shake off the idea for quite a while, I would work on them.

PS: My wife helps with the logo, idea and design validation.

Projects

Travelopy
Since 2012

Travelopy

Travel guide and journal app WebAndroid

After a small win with Malaysia Most Wanted (restaurant discovery website), I build Travelopy to expand the scope to travel and included more countries.

At the end of 2015, I build Travelopy Android app to discover nearby places and keep journal entries of my adventures.

Tech Stack

The Web back-end is developed with Python + Flask with Google Cloud Datastore as the database and hosted on Google App Engine. Front-end is initially developed with Backbone + Brunch + Bootstrap and was partially replaced with Vue.js + Webpack.

The Android app is written in Java, utilizing Google Play Services (Location, Places, Auth), Firebase (Analytics, Crashlytics), OrmLite for database access, Retrofit2 for network call, Fresco for image loading (originally using Picasso), Facebook integration and RxJava.

Malaysia Most Wanted
2006 - 2014

Malaysia Most Wanted

Discover good restaurants in Malaysia WebAndroidMaintenance Mode

Back in the days when Google, TripAdvisor and Foursquare still sucks in Malaysia, it is pretty hard to find good restaurant recommendations online. The only good source is from blogs, so I created a directory of restaurants linking to blogs' reviews.

I release MMW Foodie Android app in 2011.

Malaysia Most Wanted web traffic peak in 2015 with 300,000+ monthly visitors and 10,000+ restaurants archived.

Tech Stack

The Web back-end was originally written in PHP + CakePHP with MySQL as the database, running on Apache2 and hosted on AWS. Later it was rewritten in Python + Flask, running on nginx + uWSGI and migrated to DigitalOcean. Front-end was originally written in pure JavaScript + CSS + jQuery and later rewritten in Backbone + Brunch with Bootstrap.

LuaPass
Mar 2018

LuaPass

Offline Password Manager Android

Kotlin is officially supported on Android and I was excited to give it a spin, and it is about time to stop storing credentials in plain text using "human" encryption.I also wanted to validate how feasible it is to make money on play store making utility app.

LuaPass is a simple offline password manager, without dependency on a backend-server (no subscription and it shall always work), and only you have access to the content.

Tech Stack

Written in Kotlin, using Room for database access (LiveData support, replacing OrmLite), Google Play Billing Library, Google Drive, Architecture Component, Kotlin Coroutines, Dagger 2, Moshi (replacing Gson), etc.

WhatIDoNow
Dec 2017

WhatIDoNow

A public log of what I'm working on Web

Inspired by Derek Sivers' /now page movement, I build a website to keep a public log of what I am working on.

Tech Stack

The Web back-end is developed with Python + Flask with Google Cloud Datastore as the database and hosted on Google App Engine. It has Twitter integration to fetch log entry from Twitter using hashtag. Front-end is developed using Vue.js + Webpack with Bootstrap.

Lua Software Code
July 2017

Lua Software Code

HOWTO for Programmer Blog

I find myself always referring to old code/configurations, or losing my notes on some server setup. I decided to write better documentation on things I just learned. Never quite imagined myself as a tutorial blogger, but I find myself keep referring to own blog for HOWTO and code snippets repository.

PS: Writing tutorial/documentation is indeed time consuming, and trying to strike a balance between detail explanation and practicality.

Tech Stack

Static website generated with Hugo and hosted on Google App Engine (leverage on free hosting and CDN-ish features). JavaScript, CSS and Bootstrap bundle build with Webpack.

2018
FlowRabbit

FlowRabbit

Task management with Pomodoro timer for solo hackers.

Did Not Proceed
2016
SpeakLocal

SpeakLocal - Korean Travel Phrases

Learn common Korean or Thai phrases for a more meaningful travel.

AndroidInactive
2015
StackBus

StackBus

What stack (programming languages, frameworks, tools, etc.) others are using?

WebInactive
2014
Hakerio

StackBus

Resources for programmers, designers and entrepreneurs.

WebInactive
2003 - 2009
MyMRP

MyMRP

Manufacturing Resource Planning

WindowsInactive

Work

Some of the work done in my previous jobs.
2009 – 2013
System Integration with Malaysia's Stock Exchange System
C++/Solaris
2007
Development of Courier Management System
C#, ASP.NET, MS SQL
2003 - 2006
Development of Webtra: Document Management System
Java, VB6
1999 – 2002
Research & Development in Speech Recognition and Signature Verification
C++/Windows, DirectX Sound, Hidden Markov Model
hapiness is a journey as well, enjoy the trip
© Lua Software