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

Been programming for 20 years and still loving it. 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.
I feel blessed to have learned the craft to create things, and able to spent time practicing and tinkering with ideas.
Life is a journey.
人生就是一场修行。

Technical Skills

Web Development

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

I use Vue.js + Webpack with Bootstrap for front-end development, 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 still maintain some projects with Java from earlier years.

Previous Stacks

No longer actively using C#, C/C++, VB6, PHP, Backbone, CoffeeScript, 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 support more countries.

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

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 with 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, Retrofit2 for network, Fresco for image (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 where Google, TripAdvisor and Foursquare still sucks in Malaysia, it is pretty hard to find good restaurant recommendations online. The only good source is from bloggers, so I created a directory linking to blogs' reviews.

I release MMW Foodie Android app in 2011.

Malaysia Most Wanted website 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 hosted on AWS. Later it was rewritten in Python + Flask, running on nginx + uwsgi hosted on DigitalOcean. Front-end was originally written in pure JavaScript and CSS with 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 wanted to give it a spin, and it is about time to stop storing dozen of credentials in plain text using "human" enryption. I also wanted to validate how feasible it is make money on play store making utility apps. The app is designed to be Offline to have less dependency on server and better security, allowing option for encrypted backup to Google Drive.

Tech Stack

Written in Kotlin, using Room for database (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 logs of what I'm working on Web

Inspired by Derek Sivers' /now page movement, I build a website to keep a public logs 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 referring to old code and couldn't remember how to configure the whole things, or missing my notes on server setup. I decide to practice writing a more complete guide on things I just figured out. Never quite imagined myself as a tutorial blogger, but I find the site pretty useful for myself.

PS: Writing tutorial/documentation is indeed time consuming.

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

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 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
© Lua Software