Wilbert Liu

Yogyakarta, Indonesia
Maker, Designer & Software Engineer. Previously @gameloft & @icehousecorp

Who are you? Where are you from and what is your backstory?

Hi, I’m Wilbert, a software engineer and maker of quite a few products. I grew up in a city called Yogyakarta in Indonesia, a well known city for education. My father was an entrepreneur, and I also have 4 siblings, which can be quite a handful when I think about it!

I grew up as quite an introverted person that loved to play video games. Identity crisis is what people would say was happening. Suddenly that changed when I surrendered my life to follow Christ in a service that I didn’t didn’t intend to originally be a part of but that changed my life and brought me into a community that made me feel loved unconditionally.

After passing a few intersections in my life, I found my passion in making things through code, not only having fun with it, but using it as a way to solve problems that other people may have come up against.

What made you get into programming?

I owned my personal computer (PC) when I was in senior high school, and remember that at the time the main purpose for the computer was for me to have my own system to play games on in my bedroom. However, I had actually fallen in love with computer science at an earlier stage in my life. I remember I used to hate attending maths class because of the unrealistic expectations I felt it put on me by my parents. I would never understand the reasoning behind the correlation between calculus and adding together numbers, but in later life it was something that made an impact in how I viewed computer science.

That’s because my parents didn’t really understand computing, and at that time it’s not popular. Imagine when you do something without enforcement. I was in smile when I could calculate something on MS Excel, write some words on MS Word, and even at some point I was obsessed to hack websites.

I was taking a degree of information technology only by that fascination. I had no idea on how it looks like, whether or not I’d love the subjects, and how I’d get a job someday. Luckily, there’s a subject called introduction to computer & internet. I saw how I could make a tree-like pattern in terminal with a programming language called C++, how I could make a simple point of sales (POS) system with Visual FoxPro (OMG I feel old now), etc. Most of my friends around me felt programming is a burden, but I was “trapped” into unending & deeper adventure with it.

What made you want to create and be a maker?

The core fundamental reason, is because code gives me instant feedback. It’s instant to see whether or not what I make is true to my imagination through a browser (if you make a web app) or whatever the medium is. And even more so, it’s almost instant to see whether or not people would love what I create. I just have to code and present the result to them.

That was my evolution; when I found a greater impact beyond the code & program. I have problems in life, and some people share the same painful experience. I found some of them could be solved with a tech product and bringing significant impact to the people. Hearing and seeing how people’s life changed because of it have made me stubborn to create meaningful product that solves problems.

What does your process for learning to code look like?

Personally what works for me is shutting down any other process to seek what’s the best method to learn. I started with whatever I feel I want to do to learn, and the nearest resources usually are documentation, books, and YouTube videos. I prefer written things first, because it takes less time to digest than video. If it still takes too long, then I take a break and continue to read again afterward. When I feel I know some basics, I’d directly jump into the pool of projects I want to make, then go back and forth between Google and code editor.

I’m also asking a bunch of questions to people I admire. The point is to ask something that couldn’t be found easily by googling. I usually describe my process that leads to my question, but sometimes when I don’t (and sometimes I ask silly question), people still love to help. So I just ask, and more than that I build meaningful relationship with them.

I also value the importance of being okay with “I don’t know yet.” If I’m literally starting from zero and try to grasp everything about developing websites, I’d be burnout soon. But when I realise it takes time, I’d prioritise on the most important things to learn at the moment. I’d not let my ego rules me to learn everything just because it looks cool when I tell my friends I could do X. I stay on my lane and be proud of knowledge that I have. I always remember there’s a sky above the sky, so..

What does your process for building apps look like?

For me it’s always changing because I am always experimenting with different ways to make a product. But it always starts with a problem, and usually a problem that I have. Sometimes I start talking to people, to know whether or not we share the same pain. Sometimes I sketch on a notebook. Sometimes I jump directly into code. So far, the most effective one for me is the latter. I just slip one little process to write several details of what I want to make on Notes app for clarity. When it’s not clear, I’d compromise on time, saying yes to almost anything, and it only harms the project afterward.

What I feel like the right thing to do at the beginning is not to obsess over naming. I don’t buy a domain at the beginning when it comes to making a web app. I just name my project with exp.com to save me a lot of time that could be used to make the actual app. And I start with the most important feature first. I always ask myself, “What are you creating now?” And if it’s a tool to search for wallpaper, I’d build that feature first instead of login or any other fancy stuffs. When it’s finished, I just move to the next important feature until the whole app is finished.

Do you face any particular challenges when building over a period of time?

It’s easy to fall into a trap of being afraid to fail. If I’m not careful enough, unconsciously I’d avoid some necessary work to accomplish my goal. Luckily everything that happens in my mind like doubts, impostor syndrome, or anything that holds me back are well-cured with a practice of mindfulness. I usually set a time in the morning to do meditation for 10-20 minutes before I start my day, and that helps a lot. I think the most underrated skill that I’m going to develop over time is the skill of distinguishing between I am in fear of something or I am in an actual challenge that needs some time to keep going. Realizing where I am on particular situation will help me progress towards the challenge.

Are you currently learning anything new?

Recently I was developing iOS apps for few years with Swift. But at some point I think there are many things that I could build on the browser, that’s not limited to people’s device. That makes me quite curious on how to make web apps, and my journey so far has brought me to learn JS stack, particularly on Create React App & TypeScript.

I’ve learned and toying some stuffs with Next.js, but I’m seeking much simpler solution if any. I’m open to suggestions anyway!

Advice for those learning to code?

For those who are really new, I was there one day. Don’t get busy with getting more advice, just take one or two things that you could try and start doing it. Regardless the result at the end of your try, you’d learn something from it.

Now my actual advice would be to master the fundamentals first. I suggest you to pick JS (because you could use it later for advanced stuffs) and start writing variables, constants, flow controls, etc. Don’t get confused with paradigm of object oriented or functional programming at this stage. Just having fun toying with the fundamentals first.

My next advice that could be applied to those who have mastered the fundamentals or to those who’re stuck in learning would be mastering the art of collaboration. The earlier you do it, the faster you’re progressing. There’s no great software that’s made without any single collaboration with other people. So I suggest you to involve yourself in open source project. The first thing to discover is which one is the right project to join in. Don’t be discouraged, just asked! Search for people you admire in the community, and ask away. You’d be surprised that there are many kind & nice people that are ready to help you.

What’s your tech stack?

For building web apps:

- React (with Next.js).

- Go (or Express.js).

- MongoDB.

For building iOS apps:

- Swift.

- Realm.

- Firebase.

What have been influential books, resources and links that have helped you?

If I could pick one book that changed me a lot, it is Mindset. It’s a book that taught me how to see progress in appropriate way. To believe that everything could be better has encouraged me to move forward towards anything that I want to achieve. It’s a super recommended book!

The recent book that’s pretty enlightening for me is Dancing With The Gods. Realizing that we’re a unique creature opens up a new path for us to pursue. You don’t have to be somebody’s else, and the work is to discover what’s inside you that uniquely represents your purpose.

The last thing I found quite useful & handy is DevHints. Surprisingly it’s also a good resource to learn something new when you’re already familiar with coding. For example, it only took me minutes to understand the surface of ES6, and that’s enough to bring the knowledge to practice afterward.

Where can people learn more about you and your work?

You could find me on Twitter @wilbertliu, and you could also read my writings on my website. On other platforms, you could find me easily with that handle.

Stop by and say hi!

Read more interviews →