Since the outbreak of COVID-19 in China around December 2019, I’ve been following the update of this virus very closely. I’ve been reading news from diversified sources carefully to an unhealthy level.

A few days ago, a tweet on my timeline caught my eyes. It’s an article published on

Coronavirus Alarm Blends Yellow Peril and Red Scare

The reason it caught my eyes is that this many of this article’s claims are very different from what I’ve learned. The author defends China by saying there’s no cover-up and also claimed that it’s mostly the bias of western media, making…

Recently, I am learning how Elliptic Curve Cryptography works. I searched around the internet, found so many articles and videos explaining it. Most of them are covering only a portion of it, some of them skip many critical steps how you get from here to there. In the end, I didn’t find an article that really explains it from end-to-end in an intuitive way. With that in mind, I would like to write a post explaining Elliptic Curve Cryptography, cover from the basics to key exchange, encryption, and decryption.

To plot the curve for writing this article, and also get…

This article is also published at my blog and

Have you ever felt wrist pain after long time typing and using a mouse? Yep, I bet you are like many of us, who spends their entire life in coding, it’s inevitable to experience the pain of wrist at some point. Your career is like a marathon, to go far, it’s critical to treat yourself well.

A while back, wrist pain stroked me again, I’ve lost count how many times it is. It made me decide to spend some effort to find out the best ergonomic keyboard and trackpad setup…

Notice: This article is also published at my own blog and

It has been twenty years since I started programming. Today I want to share the story of how I learn to code by building an MMORPG from the ground up 7 times since I was 12 years old. Sounds crazy? Yep, that’s how I did it. It all starts with an MMORPG I like a lot while I was a kid, it’s called Lineage.

Screenshot of Lineage, from Lineage servers shutting down in the West, GameSpot

Back in my day, it was the most popular online game in Taiwan, and surely the most popular one among my classmates. The game…

Photo by Alvaro Reyes on Unsplash

This article is also published in my blog here

Building UI is tedious, it takes a long time and many steps to do little modifications and see what it looks like. Especially when there’s a view buried deeply behind many complicated manual steps. Have you ever wonder how to boost your productivity by 10x or more when building UI? Yes, there’s a way — Showcase Driven Development. Now I am going to tell you the secret how I did it.

In recent years, I’ve built many React Native mobile apps and React front-end apps. I like the idea of React…

Photo by SpaceX on Unsplash

To be a great software engineer, finding your own motivation is critical. It’s never easy to be great at anything, and it may take you a decade or even longer time to get there. Skill development is always a marathon rather than a sprint. Without knowing your own motivations, you could run out of energy quickly and don’t know how to recharge yourself. There are many challenging barriers to overcome on the road, you will probably end up burned out and giving up at some point. Your own motivation is like a compass, it will guide you when you are…

The term 10x engineer is trending now on Twitter, different kind of myths and stereotypes are interesting to read. Surprisingly, or maybe not surprisingly, there are many negative ones, such as:

  • They don’t know how to mentor
  • They don’t know how to communicate
  • They don’t team work
  • They are all asshole
  • They are making a lot of trash code to look like moving quickly

It almost feels like high productivity is too good to be true, they must be bad in some way to make it feels real. Personally I don’t agree that super productive engineer needs to be awful…

Photo by Clément H on Unsplash

The reason people usually said why they cannot build an app or write a book is often — I don’t have time. Well, yeah, neither do I, but yet I just made an email app and launched it mostly on Caltrain, here you go:

Envoy has already signed in more than 17 million visitors around the world. To help frequent visitors, we built Envoy Passport with BLE technology. When you approach the iPad app, it detects BLE signal and notifies the iPad you’re here, like this:

This feature may look trivial, but it’s not! There was a bug here that took us several months to track down. Today we are going to share the story of hunting the bug like finding a needle in a haystack.

It just works! Until it doesn’t 😅

After we launched the Passport app, some users reported that it occasionally didn’t work. The most difficult bugs…

Last week I launched a pet-product called Minus Board. It’s an iPad app that allows you to share your drawing with your co-workers via a link. From having the idea to launching it, it only took me few weekends.

This product may look simple, but it actually involves many cross domain components to build:

Given only few weekends, it sounds like mission impossible? Well, it’s actually achievable, and here’s how I did it.

Build a product for yourself

As a software engineer, I found myself needed…

Fang-Pen Lin

Master Generalist 🌈 Software Engineer 💻, author of, creator of, opinions are my own

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