2019 Review

Written byKalanKalan
💡

If you have any questions or feedback, pleasefill out this form

This post is translated by ChatGPT and originally written in Mandarin, so there may be some inaccuracies or mistakes.

In January 2019, during the first five days, I was still in the barracks counting steamed buns, finally managing to endure four months of military life before starting my job search. The first half of the year was mostly spent preparing for interviews and reflecting on myself, while life gradually got on track after moving to Japan in the second half of the year.

First Half of the Year

In the first half of 2019, due to not having a job, I felt a bit anxious but actually had quite a bit of free time. During this period, besides catching up on the front-end knowledge I missed in the first four months, I also updated myself on the changes in React over these months (that is, hooks!).

I took advantage of this time to completely rewrite my blog using Gatsby (an old front-end habit XD) and purchased a development domain.

Another noteworthy point is that I was quite interested in the Audio Context of browsers at that time, so I created several interesting small projects. If I have the chance to bring them to fruition, I will share them with everyone.

While waiting for interviews, I primarily brushed up on LeetCode, worked on some small front-end projects for practice, and began planning a series of front-end articles. During this time, I also enrolled in a Japanese language tutoring class mainly taught by Japanese instructors to prepare myself for life in Japan, hoping to regularly review my Japanese and engage in somewhat structured activities.

I also started a few interviews during this period; for more details, you can refer to my earlier job-seeking experience.

As time progressed into the second half of the year, I flew to Japan in late June. After taking some time to settle into basic life, I began working in July.

I also spent some time writing a series of articles about my experiences learning Japanese over the past few years and transitioning to work in Japan. If you're interested, you can check them out at

The Distance Between Me and Japan

Second Half of the Year, Life and Work in Japan

Although the front-end development I do here is vastly different from what I did before, working at a large company allows me to truly appreciate the wealth of resources and how much they can benefit my career. However, perhaps because of this, if one cannot make good use of these resources, it can become a kind of retirement zone, eventually leading to becoming an ineffective employee.

In this context, alongside a strong backend team, I started diving deeper into backend knowledge and infrastructure, trying to better understand backend operations, specifically:

  • How to design a robust message queue mechanism. Following the team's lead, I discovered Kafka, a versatile Swiss Army knife.
  • Quickly and efficiently setting up servers. With someone in the team experienced in Ansible, I gained a basic understanding of the basic configurations and how to make adjustments, moving away from the old way of SSHing into servers and having to start from scratch if I made a mistake, with someone always there to guide me. There are also many playbooks to reference internally.
  • I developed a universal Slack bot that can handle different use cases and is easy to customize with scripts.
  • I set up a common CI and automatic deployment mechanism for the front end (via Slack).
  • I also set up performance monitoring tools like Prometheus and Kibana, which helped me better understand the importance of these tools.
  • I established ElasticSearch and attempted to integrate the database (Postgres) with ElasticSearch to create a more comprehensive full-text search mechanism.
  • I learned about database operations. Postgres has been my solid partner for five years and remains reliable and useful.

In addition to backend work, I spent some time researching mobile development (iOS) and the Swift language. I found that the essence of front-end and app development is quite similar; we are all dealing with UI and the corresponding data flow and state management. The differences in language and development platforms make it interesting to see how different syntax handles UI and state across various fields, allowing for mutual learning. For instance, the recently released SwiftUI and Combine are excellent state management techniques that are very suitable for front-end development.

Another significant shift for me has been writing tests. In the past, without a dedicated QA period, testing was not very thorough. However, now that we have a full QA period focused on quality assurance, writing tests has become particularly important. Otherwise, I would just end up reporting a bunch of QA bugs, making things worse for myself.

I am willing to sacrifice a bit of performance for greater testability and maintainability since bugs and the subsequent workarounds are often the main causes of chaos in the codebase. I also realized that writing tests in React is really easy! Moreover, it's straightforward to simulate actual user behavior.

Previously, I enjoyed using Enzyme (a powerful React testing wrapper), but now I feel that having such a powerful tool can lead to getting caught up in overly detailed implementation testing rather than focusing on testing behavior. So, I now prefer the lightweight approach of React Testing Library for testing.

At work, in 2019, I tried to explore more management (and people) related books. Two that left a strong impression on me were:

  • Driving Technical Change
  • Horizontal Management

Though I’m still not fully mature in this area, at least I've taken the first step.

Breaking Through the Bottleneck

For me, I may have reached a bottleneck in the front-end field. Besides wanting to explore some different areas (high interaction requirements, video processing, image processing, text editing, music, etc.), I also want to continue delving into more foundational technologies.

Additionally, I’ve been contemplating the idea of gradually leading an excellent team to create better products. Although, at 25 years old, being a lead often poses more challenges than advantages, I would indeed like to seize such an opportunity if it arises.

Life

For me, 2019 has been the year of the best work-life balance so far. Besides cooking more frequently, the increase in tools (oven, microwave) and a larger kitchen means I can try out a wider variety of dishes.

I’ve cooked some interesting meals like:

  • Dongpo Pork (non-standard version)
  • Spanish Seafood Paella
  • Failed Baked Bread
  • Baked Cookies
  • Baked Pudding
  • Fried Fish (including handling the entrails and scaling)
  • Homemade Hamburger Patties

My cooking skills have improved, and I hope to continue trying different types of dishes this year while also finding better sources for quality meat. Unlike Taiwan, where traditional butcher shops are everywhere, that’s a bit harder to come by in Japan QQ.

After arriving in Japan, I also gained quite a bit of weight, so I signed up for a gym and am trying to control my diet and drinking frequency, although the frequency of drinking in Japan can be quite alarming!

Regarding travel, although I didn’t plan any major trips, during long holidays, if there’s nothing special to handle, I usually go for a walk nearby:

  • Itoshima
  • Nishijin
  • Nokonoshima
  • Yufuin
  • Karuizawa
  • Fukuoka suburbs

Future

As I mentioned in the bottleneck section, I hope to continue deepening my technical expertise in the future. However, I may not want to limit myself to just web front-end knowledge; instead, I aim to branch out into various different fields.

In 2020, besides continuing to delve into the front-end realm, I also want to extend my focus to the entire computing domain. I’m particularly interested in exploring WebGL, low-level languages (C++ and C, Assembly), operating systems, and programming languages. Understanding these areas is fascinating to me.

I also want to highlight that at the end of 2019, I took advantage of a promotion to buy a PS4 and the game Death Stranding. I feel that the storyline of Death Stranding fundamentally changed my life and thoughts, prompting me to want to learn more about Hideo Kojima. In 2020, I hope to immerse myself in more knowledge related to the gaming field.

Gratitude

In every company and around me, there are always many talented individuals worth learning from. It’s through chance encounters with these amazing people that I have become who I am today. Here are some of them, in no particular order:

  • Weak Self: Although it's an iOS podcast, many concepts are interconnected. Every time I hit the gym, it's also the time Weak Self releases a new episode. Hearing familiar voices in a foreign land is quite touching (although there are many Taiwanese colleagues, haha).
  • Koji: Besides being fluent in Japanese to the point of sounding like a native (with no accent!), as a manager, he often cares about everyone's well-being, allowing me to feel secure in my work.
  • Hirayama: My current supervisor gives me a lot of freedom to do what I want and always encourages me to contribute positively to the team. I believe encountering a great supervisor is crucial for a smooth career path!
  • Huang: A bit like a senior in the workplace, he has been around for a long time, well-versed in various workplace gossip and company culture. It's easy to seek guidance from him whenever I have concerns.
  • Denny: It's quite amazing to think back on how we transitioned from former colleagues to working together in a foreign land. Occasionally seeing his familiar sudo hat T-shirt reminds me of our past meals together at Wufeng, and our shared memories of watching Mr. Robot in the office.
  • Thomas: He is the most workaholic colleague I’ve ever met, but he has a wide range of interests and is always willing to go above and beyond to help, whether front-end or back-end. He is also very passionate about technology, frequently discussing fundamental topics like Linux and operating systems. I've learned a lot from him, and he is currently the most impressive engineer I’ve encountered.
  • Jimmy: He not only loves to participate in discussions but also helps improve the more trivial matters within the team. What impresses me the most is the series of DevOps improvements he’s made, which has made the entire development process much smoother.
  • Peter: He occasionally surprises me with new designs and logos and frequently gives suggestions on how to modify the website. I can only express my gratitude!

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

Buy me a coffee