Kalan's Blog

Software Engineer / Taiwanese / Life in Fukuoka

Current Theme light

2020 was a year full of ups and downs, but with more time spent at home, I had the opportunity to explore and experiment with various technologies. Here's a summary of my endeavors:

YouTube Channel

I created my own YouTube channel and uploaded several videos on topics that interested me from February to May. However, I had to put it on hold because I couldn't find an efficient way to film videos.

"The Structure of Language" by Yukihito Matsumoto

Around January and February, before the COVID-19 outbreak in Japan, I spent a couple of weeks commuting while reading this book. Yukihito Matsumoto introduces the elements of implementing programming languages and implements a programming language called streem using yacc/lex.

Exploring Svelte

I started exploring Svelte and wrote an article on my blog to introduce it. Svelte resources in Taiwan were scarce, so I hoped to increase its popularity gradually. I made a contribution in mid-April. Svelte was also the theme for the IT Ironman competition.

Animal Crossing Encyclopedia

I created a simple version of the Animal Crossing encyclopedia because other websites either had annoying ads or poor performance. I wanted a convenient way to look up information while playing the game on my island.

Self-Introduction Website

I fall into the category of people who struggle to give a lively self-introduction in person. So, I decided to create a website instead.

For more details, you can read my article, Reflections on Becoming a Tech Lead.

Due to project changes and scale, my focus this year shifted from development to communication and integration among team members. With more teams and departments involved in the product, the cycle for pushing things forward became longer. Being the only one in the frontend team who understands Japanese, it was convenient for me to communicate with other departments. However, I often felt a sense of context switch and a constant feeling of being busy without knowing what exactly I was doing. Time management might be one of the challenges for me next year.

In terms of technical progress, there wasn't much improvement. I mainly handled more complex logic parts and only had the opportunity to explore new technologies superficially. However, I have developed a habit of writing documentation and preparing state transition diagrams before making major changes or developing new features. This not only improves communication with project managers but also helps other developers quickly grasp the correct logic from the diagrams. I have come to realize that technology is ultimately a tool for problem-solving.

I feel that there are still areas where I need to improve in terms of communication. For example, I struggle to easily trust my team members and tend to address issues only at the last minute, causing unnecessary stress. Delegating responsibilities is also a challenge for me. However, I believe these issues are two sides of the same coin. If someone doesn't show results at work, fails to respond promptly, or doesn't report progress, it becomes difficult for me to delegate responsibilities.

Playing Sonic Pi

Sonic Pi is a software that allows you to create music through programming. It has many APIs specifically designed for music creation. I have created tutorial videos on YouTube that you can refer to: https://www.youtube.com/watch?v=aTA5wWhvKAQ

Playing with Arduino

At the beginning of the year, I bought Arduino UNO, Arduino Nano, and Arduino Mega, although I wasn't sure what I would do with so many.

I played around with sensors, such as LCD screens and temperature sensors, without relying too much on libraries. Instead, I directly referred to datasheets to understand how they communicate, like the datasheet for DHT11. The implementation wasn't too complicated. You can refer to the implementation if interested. There's always room to delve deeper.

Mid-year, I created an application for air quality monitoring, which you can read about here. I didn't rely on any specific libraries for this project (although I did use libraries for MQTT and Wi-Fi, as they were more complex). Through this project, I learned about UART interfaces and SoftwareSerial.

Later on, I bought an EEPROM programmer and an ATMEGA328p (the MCU used in Arduino UNO) for less than 100 New Taiwan Dollars. I wrote C code and programmed it myself. I would have liked to dive deeper into this area, but unfortunately, I don't have enough space at home to accommodate so much hardware.

Data Visualization - Taiwan Assault Statistics

If you're interested, you can directly visit the website. It took me a couple of weeks to complete, with intermittent work. The main challenge was collecting and cleaning the data. Svelte was quite convenient for data visualization.

Build Your Own X

I turned the repository for "build-your-own-x" into a web version for easier browsing: https://build-your-own-x.now.sh/

Kotlin

I really enjoy using Kotlin as a programming language. For my small backend projects, I directly develop using Kotlin. I appreciate Kotlin's concise yet expressive syntax. I also wrote an article about Kotlin DSL and annotations: Lessons Learned from Kotlin: Kotlin DSL and Annotation

Organizing a Small Meetup in Japan - React HAKATA

I have always wanted to connect with the engineering community in Japan. Due to the pandemic, it was impossible to hold offline events, so I tried organizing an online meetup. Speaking in front of a group of Japanese people for an extended period in Japanese made me nervous and caused some stumbling, but I will continue to improve my Japanese language skills. The event received positive feedback (Twitter) and had around 50-60 participants online. I hope to foster connections between Taiwan and Japan and facilitate the exchange of various perspectives.

Prev

Hotwire and Turbolinks

Next

An in-depth understanding of Svelte (0) — What is an Abstract Syntax Tree?

If you found this article helpful, please consider buy me a drink ☕️ It'll make my ordinary day shine✨

Buy me a coffee

作者

Kalan 頭像照片,在淡水拍攝,淺藍背景

愷開 | Kalan

Hi, I'm Kai. I'm Taiwanese and moved to Japan in 2019 for work. Currently settled in Fukuoka. In addition to being familiar with frontend development, I also have experience in IoT, app development, backend, and electronics. Recently, I started playing electric guitar! Feel free to contact me via email for consultations or collaborations or music! I hope to connect with more people through this blog.