Screenshot of
Screenshot of

This is a copy from my website I won’t be posting anything to medium anymore. If you are interested, you can follow me there (RSS or mailing list). You can also follow me on Twitter @louis993546, which I often tweet whenever I upload a new good blog post.

Like I said, I think you are legally required to write a blog post about it, and if not, you can be punish up to 2 weeks of house arrest, oh wait I am doing that anyway 🤣

V1: Some template + GitHub Pages + Medium

Back in maybe 2015, I created my first personal side, using a template…

Back in early December 2020, I wrote an article on how I was testing out Jira & Confluence as my management tool. And it’s about time for me to write down what I have learned.

What was the plan?

For all the reasons and context of why I do this, you can read it from the last article. The gist is that:

  • Use Jira to manage the tasks I have
  • Use Confluence to document the thing I want to remember in the long run
  • Use Google Calendar to manage time by filling it up with rough time blocks

So what works?

Writing on Confluence is great 👍

One of the key problem that…

2020 is almost over, and I just so happen to have almost an entire month off to do whatever I want. One of the things I have learn about myself this year is that my productivity often relies on supervision & “too afraid to say no so now I have to get it done in the next 4 hours”. So one of my goal in the next month 25 days is to figure out something that can keep me productive (and hopefully subsequently fulfilled and happy).

What’s the status quo

Currently, I have 2(-ish) system going on: 1 for my work stuff, and 1…

Website of Flipper
Website of Flipper

Flipper is a debugging tool build by facebook, which in a sense is a spiritual successor to Stetho. For those who don’t know, Stetho is also a debugging tool, which allows Android apps to redirect a bunch of debugging data to chrome://inspect, most notably networking requests. I have used Stetho quite extensively in one of my last companies, because how easy it is to setup and use, so I do have some fond memory of it. However, slowly and gradually, it stops being maintain, and then I found out the existence of Flipper. …

Jetpack Compose is getting closer and closer to becoming “stable enough”, and for the next few weeks/months, I will be working on a bunch of completely random projects, and document what I have learned along the way.

TL;DR: This is not tutorial/how-to of Jetpack Compose at all. This is just blog post of my experience of using it.

What is Compose95

As it’s name suggest, it’s trying to build Jetpack Compose that looks like it’s 1995, more specifically, Windows 95. It is inspired by Miguel Beltran’s work on Flutter95, which is inspired by Artur Bień’s React95

Screenshot of Flutter95 on GitHub
Screenshot of Flutter95 on GitHub

On my way home from office, one of the last picture I took before WFH started.

More than a year ago, I wrote about how I wanted to regain my love for photography. Which means it’s about time for a quick review.

Now that I looked back at my last article, I can’t help but cringe the entire time, mostly because I can’t shut up about photography gear. I am still a nerd and enjoy all the great gears, but in the last 18 months, I have slowly realized how little attention I was paying to the rest of “photography”: composition, lighting, timing, location, emotion, all that jazz. And that is absolutely something I am still…

My desk setup from a week ago

Today is 2020 April 1st, and we are in the middle of a pandemic. Roughly 2 weeks ago, the company I worked for went “remote first”, and in terms of work, things are starting to get back to usual (well, as usual as it can get). So today, I’d like to write down some of my first impressions of the whole situation so far!

How it went down (simplified)

Even before Berlin starts getting it’s first COVID-19 case, there has been a bunch of people asking if the company’s policy about WFH and other preventive measures are gonna adapt to it. And after Berlin has…

Photo by Jamie Street on Unsplash

After months of procrastinating, I am finally getting to the last chapter of “Mental Models of Jetpack Compose”, at least for now. Today, we are gonna talk about components, and hindsight.


If you just look at the basics structure of Component in React or Widget in Flutter, you will probably find it not too far off from android.view.View on the typical Android View API.


The beginning of #KnowYourWirth

In the last 2 days, the tech community on Twitter blew up with the #KnowYourWorth movement. The TL;DR it is to share your salary, so that minorities can have a better grasp of what the market rate is, instead of relying on anonymous sites that you never really know if they can be trusted.

And just like every movement on Twitter, immediately there are a lot of supporters, along with a lot of criticisms. And what I want to do today is to share my 2 cents of what I fell about #KnowYourWorth.

First, I would like to get a…

A bunch of random stuff you can do with shell script

It has been a while since I did my last “From Android zero to kinda-middle” series, and today I’d like to talk about shell script.

WTF is shell script

You can think of it as a scripting language + the program that interprets it.

Why you should know shell script?

All the buttons in Android Studio will ended up executing some shell script in one way or another. For example,

“Run” 👉 ./gradlew assemble${flavor} + adb install

Install newer version of Android SDK 👉 sdkmanager "platforms;android${versionCode}"

Commit 👉 git commit -m "${message}"

But if all of the task can be done with buttons, why would anyone want to type all…

Louis Tsai

if someone can give me a lesson of how to adult that’d be great thank you

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store