· 7 min read

2020 Year in Review — Tech Edition

This article was auto-translated from Chinese. Some nuances may be lost in translation.

2020 was quite a chaotic year, but spending more time at home also gave me the chance to try out and explore many different technologies. Here’s a recap of everything~

YouTube Channel

I started my own YouTube channel and uploaded a few videos between February and May on topics and projects I was interested in to test the waters. Later, I put it on hold because I couldn’t find an efficient workflow for video production.

Yukihiro Matsumoto — The Inner Workings of Programming Languages (言語のしくみ)

Around January and February, before the COVID-19 outbreak hit Japan, I spent about two or three weeks reading this book during my commutes. In it, Yukihiro Matsumoto introduces the core components needed to implement a programming language and builds a language called streem using yacc/lex.

Keeping an Eye on Svelte

I started following Svelte and wrote an article introducing it on my blog. There were still very few resources about Svelte in Taiwan, so I hoped to help raise awareness of it. Around mid-April, I contributed a PR. Later, I also chose Svelte as the topic for the iThome Ironman Contest.

Animal Crossing Catalog

Other Animal Crossing catalog websites were either plastered with interstitial ads or had terrible performance. To make looking things up easier when traveling to mystery islands, I built a lightweight version of an Animal Crossing catalog.

Self-Introduction

People usually fall into one of two categories when introducing themselves: those who can do it vividly and hype up the room, and those who end up causing awkward silences where nobody remembers anything and no one gets the jokes. Unfortunately, I belong to the latter. Out of options, I had to build a webpage instead.

For more details, check out this post — Some Reflections on Becoming a Tech Lead

Due to shifts in project scope and scale this year, my role went beyond development and involved a lot more interpersonal communication and coordination. Because the product involved more teams and organizations, the cycle for pushing anything forward grew longer. On top of that, since I was the only one on the frontend team relatively fluent in Japanese, communicating with other departments fell on me. I often felt the friction of constant context switching, and over time, it left me feeling like I didn’t even know what I was busy with. Perhaps one of my goals for next year will be better time management.

Technically, I didn’t make massive leaps—mostly just taking on more complex business logic, while only passively keeping an eye on new technologies. However, I’ve gradually built the habit of writing documentation and preparing state transition diagrams before undertaking major refactors or new features. This not only makes communicating with PMs much smoother, but also allows other developers to immediately grasp the correct logic from the state diagrams. Mentally, I’ve gained a clearer understanding that technology is ultimately just a tool for solving problems.

In terms of communication, I still feel there’s a lot of room for improvement: struggling to trust team members easily, letting known issues linger until having to scramble in panic at the end, and struggling with delegation. But I think this is a two-way street—if someone isn’t delivering results, takes forever to reply to messages, and doesn’t proactively report their progress, it’s genuinely hard for me to delegate responsibilities to them.

Playing with Sonic Pi

Sonic Pi is a tool for creating music using code. Many of its APIs are designed specifically for musical composition. I made a tutorial video on YouTube if you’re interested: https://www.youtube.com/watch?v=aTA5wWhvKAQ

Playing with Arduino

At the beginning of the year, I bought an Arduino UNO, an Arduino Nano, and an Arduino Mega, though I honestly had no idea why I bought so many…

I messed around with sensors like LCD screens, temperature sensors, and so on. Throughout the process, I tried to avoid using libraries whenever possible, choosing instead to read the datasheets directly to understand how they communicate. For example, the DHT11 datasheet isn’t too complicated to implement. You can check out my implementation, though there’s always room to dig deeper.

Mid-year, I built an air quality monitoring application. It was also because I avoided using ready-made libraries (though MQTT and Wi-Fi were more complex, so I ended up using libraries for those) that I learned about UART interfaces and SoftwareSerial.

Later, I bought an EEPROM programmer and an ATMEGA328p (the MCU used by the Arduino UNO) for less than 100 TWD each and wrote C code to flash directly onto it. I really wanted to explore further, but unfortunately, my apartment isn’t big enough to fit so much hardware.

Data Visualization — Taiwan Sexual Assault Statistics

If you’re interested, you can check out the website. It took me about two weeks of on-and-off work, mostly spent collecting and cleaning the data. Svelte turns out to be quite handy for data visualization.

Build Your Own X

https://build-your-own-x.now.sh/

Turned the build-your-own-x repository into a web version for easier browsing.

Kotlin

Kotlin is a programming language I really enjoy. For some of my personal side projects, I build the backend directly in Kotlin. I love its concise yet expressive syntax, and I wrote an article about Kotlin DSLs — Lessons Learned from Kotlin: Kotlin DSL and Annotations.

Hosting a Small Meetup in Japan — React HAKATA

I’ve always wanted to connect with the developer community in Japan. Because of the pandemic this year, offline events were completely off the table, so I decided to try hosting an online meetup. Speaking Japanese for an extended period in front of a Japanese audience for the first time inevitably made me nervous and stumble over words, so I need to keep honing my Japanese to the next level. Surprisingly, the reception was quite good (Twitter), with concurrent viewers reaching around 50 to 60 people. I hope to bridge Taiwan and Japan in the future and facilitate more cross-cultural tech exchanges.

Related Posts

Explore Other Topics