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 tinker with ideas and making apps. I build web apps most of the time (most popular is a restaurant discovery website in Malaysia with 300K monthly visitors) and became more active in Android development in recent years (most comprehensive is a travel discovery and journal app). In 2017, I started a blog to document the technical things I learned (34K monthly visitors).
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, equipped with reasonable app design skill (for a programmer).

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


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

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


Since 2012


Travel guide and journal app WebAndroid

I enjoy travel very much and wanted to build an app to help me discover and archive interesting places.

At the end of 2015, I build Travelopy Android app to discover nearby places and keep journal entries of my adventures (a blog is too time consuming, a FB/Twitter post is good for sharing but not for archiving).).

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 suck 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.

Mar 2018


Offline Password Manager Android

It is about time to stop storing credentials in plain text using "human" encryption.

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.

Dec 2017


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.



Task management with Pomodoro timer for solo hackers.

Did Not Proceed

SpeakLocal - Korean Travel Phrases

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



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



Resources for programmers, designers and entrepreneurs.

2003 - 2009


Manufacturing Resource Planning



Some of the work done in my previous jobs.
2009 – 2013
System Integration with Malaysia's Stock Exchange System
Development of Courier Management System
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
happiness is a journey as well, enjoy the trip
© Lua Software