A tale of two passions

A tale of two passions

Recently, I had the chance to speak at KL Elixir Meetup and I shared our journey switching from Ruby/Rails to Elixir/Phoenix in the past 2 years. It recounts the lessons and mistakes we encountered along the way and how it has changed the way I look at problems.

Thanks to the organizer, Syamil for opportunity to engage and get to know the Elixir community in KL. Below are the slides of my talk and I hope you learned something. If you haven’t given Elixir a try, today it’s the day to start.

The easiest way to transfer information between different devices

The easiest way to transfer information between different devices

Thanks to the Post-PC revolution, most of us use more than one computing device. Most likely you will have at least one smartphone. Then you may have a tablet, laptop, desktop or all of them. It’s not uncommon to have more than a dozen devices in a household.

Most of these devices run on different operating systems. This makes it annoyingly difficult to transfer data and information between them. Most of them time, I have to resort to either pasting the information in a note application, a chat application with a message to myself or over email. And this will only work if I had the app installed on all my devices.

I wanted the easiest and fastest way for me share stuff between my devices and found some web clipboards online. Web clipboard is basically a web application that behaves pretty much like a clipboard on your computer. You put in whatever information you wanted to share and it will generate a unique link that you can use to access them. The catch is that most of them only support saving textual information which is good enough for me.

What happens when KK goes Lean?

What happens when KK goes Lean?

Last weekend, instead of watching a movie or lazing at home, about 50 people decided to spend their time stalking strangers, working late and building prototypes. They participated in our very first Lean Startup Machine (LSM) workshop here in Kota Kinabalu, Sabah.

For the uninitiated, LSM is quite different than your average workshop or hackathon. Besides learning and working on your idea, you are "forced" to Get out of the Building to interview, sell and pitch to your customers. It focuses on customer development and practices the mantra of Learn First, Code Last.

Outsource your decisions

Outsource your decisions

Take control of your life by deciding to decide less

At last year’s Team Retreat, while enjoying the breeze on Khao Lak Beach in Thailand, I told the rest of the team that I don’t care about people. We were playing Two Truths One Lie and there are times when I’m unsure if that statement was true or a lie.

Studies have shown that willpower is a limited mental resource. Every time you make a decision, it depletes that same energy resource your willpower uses and eventually you’ll give in to your desires. This is known as Ego Depletion.

10 lessons I learned building & growing the WebCamp KK community

10 lessons I learned building & growing the WebCamp KK community

On the first Tuesday of every month, for more than 3 years now, I have had the privilege of meeting some of the most talented and inspiring people in our city — Kota Kinabalu. All thanks to WebCamp KK.

WebCamp KK is a community of people from different backgrounds and industries who are passionate about what they do. These are the ones that inspire others into action. The ones who believe in sharing and helping each other improve our city.

What started as a simple gathering of like-minded people, has now turned into a movement that sparks connections, spawns communities and continues to be a source of inspiration for many.

How to set goals that actually deliver the results you want

How to set goals that actually deliver the results you want

Most of us are quite familiar with the idea of setting goals. When you are younger, your teacher may have asked bout your ambition. What do you want to be when you grow up? When you attend your first job interview, the interviewer may ask: Where do you see yourself in next five years? And when you are in the workforce, your bosses and managers will ask for your annual goals.

Setting goals let us focus on what we want to achieve. It gives us motivation and a sense of purpose. It is also a way for us to measure our progress. Having a goal is like having a sense of where you want to go and a way to track your progress towards that direction.

Stop being so damn lean

Stop being so damn lean

 The Lean Startup is one of those books that changes the way you approach, validate and build a product. It encourages an iterative process of experimentation and validation to learn more about customer needs and reduce risk and waste of resources.

In other words, it is about learning and getting as much feedback as you can from the user and use that to guide your product development process. Too often, startups spend their time building the product in isolation without any contact with users until release.



We have built quite a few apps over the years at Flexnode and is one our favourites. It is also quite popular with around 200k hits monthly. Unfortunately, the 5 year old app broke and stop working recently, so John and I decided it is about time to rebuild it.

Since we are rebuilding the app, it is the perfect time to do some work on the dated design. Having used the app for years, we are quite familiar with the shortcomings. In this post, I'm going to walk you through some of our initial thought process we had when building the original app and what we are changing in the redesign.


This is a technique I learned over the years from project management gurus to manage time and boost productivity. Instead of letting a task or agenda take as long as it needs to be completed, you set a hard deadline or “time box” for it.

A simple example would be the time limit we have for our daily meetings where we time-boxed it to 10 minutes. This means the meeting can not last more than 10 minutes and if it does, we just end it right away. This is very useful to make sure we don't waste everyone’s time and get straight to the point.

The Pomodoro technique also employs this strategy by time-boxing your task into 25 minutes interval separated by short breaks. (e.g. 3-5 minutes) This teaches you to break tasks into small chunks that can be accomplished within each interval.

Timeboxing has been very useful in software development. The limit forces you to aim for some sort of deliverables when you approach the deadline. It prevents you from spending too much time on a particular task and affects the deliverability of others tasks in the pipeline. The notion of a sprint in Agile/Scrum is basically a timebox of 1-2 weeks.

Some examples of timeboxing we use when developing web applications.

  1. Keep meetings short by timeboxing them.

  2. Plan and schedule tasks that can be completed within a fixed time-frame (e.g. a sprint of 2 weeks)

  3. Prevent yourself from spending too much time on certain process. For example, timebox yourself to only spend X minutes updating status or writing reports.

This is not only useful for your work but also serves as a time management tool in your personal life. Start timeboxing your life and you may discover that you can get more things done.

Keeping in sync

Over the past year, our team have grown from 3 to 6 people. It is now much harder for me to keep track who's doing what and when. Couple with the fact that we are now handling more projects, things can get rather messy.

Luckily, we adopted the daily scrum meeting from Agile Development practices. It is also known as stand-up meeting or team huddle. It is a simple idea where the whole team get together everyday at the same time and place to update each other.

How to run a daily scrum meeting

  1. Same time, same place, everyday. Make this your team ritual.
  2. Keep things short. E.g. 1 min max per person.
  3. Decide who starts first. (Last to arrive, first to start or random)
  4. Each team members start by answering these 3 questions in order
    • What did I do yesterday?
    • What I am going to do today?
    • What is blocking me from completing my tasks?
  5. Deal with blocking issues AFTER the meeting



Ritual to start the day

The meeting acts as a daily starting point for the team. Although we practice flexi-time at our company, we make it a point to get together everyday at 11AM for the meeting. This let us start the day with clarity and focus.



The 3 questions are designed to keep the focus on what's being done. It keeps you accountable to what you did yesterday and also forces you to plan your day. And if there's any thing that is blocking you, it can be rectified as soon as possible.



The meeting also serves as an efficient way to convey progress and status between team members. Everyone will have a rough idea what others are working on and can also offer to help on blocking issues after the meeting.

If you manage a team but have problems tracking progress and keeping things in sync, do try this out. Get the whole team to agree on a time and place to meet daily. Get each of them to answer the 3 questions and most importantly, keep it short.

Photo credit: Ignacio Palomo Duarte