Code Artisans

Code Artisans: This M'sian Coder's MEAN Journey From Basic All The Way To Data Science

“When I was 9, my parents bought me an 80286 PC with a black and white monitor, a 5.25” floppy disk, and 640kb of memory. We relied on PrintMaster to design posters and Wordstar to do basic word processing,” Dr. Lau Cherhan said. “One day, I found this program called Basic, and I was able to do Mathematics, play simple tunes and print colorful text, and that is how I began coding. Being able to code and write programs to solve problems kept me motivated.”

He then began coding with Basic from the age of 9, and he even tried to understand the source code of Microsoft’s version of snake. He later started using HexEdit to modify the saved files of the game so that he could have unlimited ammo for instance. And this further spurred his interest for technology and he learnt to use Lotus 1-2-3 (a first gen spreadsheet program), Dbase and the SQL language.

Armed with this knowledge, he began building simple software with the aim of helping companies and NGOs better manage their employees or members. He later picked up the C language and a software development system called Turbo Pascal that enabled him to write programs that carry out simple accounting functions, control input and output, and print receipts with a 9-pin dot matrix printer.

Wining the Astro Hackathon
Wining the Astro Hackathon

He later helped implement a barcode base library system in his high school back in 1995, and he also began tutoring people that wanted to learn Basic programming. Having been in the industry for over 20 years, this is one way that Lau uses to keep up with the rapid changes in the tech industry.

“Teaching and sharing are how I hack the way of keeping up with the changes. The swift development in tech is difficult for a single person to follow at a constant pace. Through teaching and sharing I get to learn multiple problems in one go, and navigate through the students’ thought process while finding the solutions,” he said.

He also frequents sites such as TechCrunch, Mashable to keep up with all the macro trends in the world of technology, and he also stays up-to-date by subscribing to dedicated email lists, and by frequenting platforms like Twitter, Reddit, Medium and Facebook.

“Keeping myself up-to-date with technology news is the most challenging daily task. One way to deal with this issue is to talk to more people and pick their brain. I found out that this is a more interesting way to absorb information than just by reading,” he added.

Staying Empowered

 

Image Credit: Web.cs
Image Credit: Web.cs

The technology industry is one that’s always evolving, and every software developer has to constantly stay on course to learn new concepts and programming languages and to unlearn ones that are outdated. For example, Lau used to code with only basic HTML and Javascript along with CGI and Perl scripts during the dial up era as domain names and servers were quite expensive.

However, the demand and use of web technologies soon began to grow rapidly after the dotcom boom, and in order to keep up, Lau had to pick up a new array of programming languages including ASP.NET, Java, PHP, Django and Ruby on Rails.

Programming languages empower coders to express themselves much like the same way we express ourselves through normal languages. However when it comes to programming, the language or framework you know greatly determines what you can do within the realm of technology.

Image Credit: Infront Consulting APAC
Image Credit: Infront Consulting APAC

Even though Lau does have experience with an array of programming languages, he mainly prefers coding in JavaScript these days for most of his startup projects, and he mainly uses MEAN (MongoDB, Express.js, Angular.js and Node.js) as his full stack.

Even though JavaScript can be really messy to code at times, it can be still be used to write scalable backend applications and to create high concurrency socket applications through NodeJS. Libraries like jQuery and frameworks like AngularJS allow developers to build interactive web pages and complex front-end applications respectively.

“I used JavaScript together with Python to build a sports highlight detection system, which allows users to customise basketball, badminton and tennis games and customise the highlights they love,” he added. “Together with other Malaysian developers, we even used JavaScript to build the entire front-end of Mybanjir.com, a flood information portal.”

The MyBanjir Team
The MyBanjir Team

Given that Mybanjir.com was a community project and it was built with contributions from a variety of volunteers, Lau had to manage components written in multiple languages like C#, Java, PHP, Ruby, Python, JavaScript, etc., and he had to ensure that all the components were running and interacting with each other.

Birds, Nokia Smartphones, And Machines

From the time he first began coding, he has worked on numerous projects including on an audio-based birds detection project at the Microsoft e-research center in 2007.

Through this project, they deployed Nokia smartphones as sensors in rural areas and they were able to record and analyse the call of different birds, perform spectrum analysis, and they used large amount of birds’ calls collected from the natural sciences database to train the system to identify birds and the type of bird that’s making a call.

Teaching At MaGIC
Teaching At MaGIC

They event built their own solar panels and utilised the mobile phones in such a way that they could also interact with other sensors, and they could collect and analyse data pertaining to the wind, temperature and humidity of that region.

Outside of such cool projects, Dr. Lau was also the winner of the Microsoft Excel World Championship and he recounts the experience as one of his key career highlights. “It was an amazing experience where you see people around the world using an ordinary tool to solve advanced problems,” he said.

Data Science And The Shift To Functional Programming

Image Credit: Coaching Startup Weekend
Image Credit: Coaching Startup Weekend

Currently, Dr. Lau also imparts his vast experience to others by conducting data science courses and by also conducting courses that promote JavaScript and other modern programming stacks to help local startups to rapidly develop their prototypes. The past year, most of the courses he taught focused on raising the awareness of data science, so that people could better understand this emerging trend.

He believes that data science will enable individuals to understand things quicker from multiple perspectives, and it also provides him with an opportunity to explore fields outside IT such as weather and finance. He also conducted technical courses on Hadoop and its use to store and analyse large amounts of data.

Teaching At Taylors
Teaching At Taylors

This year however, he’ll be rolling out a larger variety of technical courses that will focus on topics such as data scraping, text analytics, sentiment analysis and machine learning.

“Data science is indispensable to the tech world. With the volume of information flowing every second, we can’t imagine a business to process transactions, handle data, engaging customers and make decisions without using data science,” he claimed.

He also believes that there will be a greater shift towards functional programming (e.g. Scala, Erlang, Haskell) this year, as more systems would require language level scaling rather than just reliance on hardware.

And he also feels that this year, we would see more BackEnd-as-a-Service (BaaS) platforms like Firebase flourish and they will in turn enable front-end developers to focus more on design, and create complete applications without worrying too much about the backend.

Remaining Passionate

Image Credit: Infront Consulting APAC
Image Credit: Infront Consulting APAC

Even though people often perceive him as a top student due to his PhD degree, he feels that he’s just a below average student who continues to persevere to achieve milestones in a field that he loves.

At the end of the day he believes that his passion keeps him excited and focused on his goals. Speaking of his ultimate goal he said, “Using technologies to solve real world problems and to make the world a better place. I love innovations and new technologies that are able to help people to make life simpler, so that we get more time to do things we love such as spending quality moments with family.”

Inside Dr. Lau Cherhan’s Toolkit
Vim “A lightweight text editor that allows customisation for me to speed up coding using shortcut keys.”
MEAN stack “I am particularly using NodeJS to write backend applications.”
Python “I wrote Python scripts to handle daily tasks and using iPython to process and analyse data.”
Slack “Slack is the primary communication tool to share information and run online meetings and virtual hackathons.”
Google Chrome “Chrome Developer tool is a powerful debugger for network and JavaScript issues, it can even be used for debugging Ionic apps. ”

Code Artisans is a biweekly series that aims to highlight notable coders, hackers and software developers in Malaysia. If you have anyone in mind that’s worthy to be featured, drop an email to ajay@vulcanpost.com.

Subscribe to Vulcan Post Newsletter

Stay updated with our weekly curated news and updates.