Kalan's Blog

Software Engineer / Taiwanese / Life in Fukuoka

Current Theme light

In 2019, during the first 5 days of January, I was still serving in the barracks for compulsory military service, counting steamed bread. After four months in the military, I started looking for a job.

During the first half of the year, I was quite anxious about not having a job, but I actually had a lot of free time. During this period, I focused on enhancing my knowledge in frontend development and React.

I took advantage of this time to rewrite my blog using gatsby (a frontend framework) and purchased the .dev domain.

I was also very interested in the browser's Audio Context at that time, so I worked on a few interesting small projects. If I have the opportunity to showcase them, I will share them with you.

While waiting for interview responses, I spent most of my time doing Leetcode, working on small frontend projects for practice, and planning a series of frontend-related articles.

During this time, I also enrolled in Japanese tutoring classes taught by Japanese teachers to prepare for life in Japan.

Several interviews took place during this period. For more details, please refer to the job search experience I wrote a few months ago.

In the second half of the year, I flew to Japan in late June. After settling down, I started working in July.

I also spent some time writing a series of articles about my experience of studying Japanese and moving to Japan in recent years. If you are interested, you can check it out. My distance from japan

In the second half of the year, working in Japan has been quite different from my previous frontend development experience. I have noticed that working in a large company provides access to abundant resources and can greatly benefit one's career. However, if not utilized properly, it can become a stagnant environment, resulting in redundancy over time.

Given the circumstances and the strong backend team, I began to delve deeper into backend knowledge and infrastructure. Specifically:

  • Designing a robust message queue mechanism, where I discovered Kafka, a powerful tool, following the team's footsteps.
  • Setting up a server. Although there are teammates experienced with Ansible and Nginx, I gained a basic understanding of server settings and adjustments. I no longer need to SSH into the server as before, and if I make a mistake, there are people who can guide and teach me. The company also has many playbooks that I can refer to.
  • I developed my own general Slack bot, which can be used in various scenarios and is easy to customize with my own scripts.
  • Establishing common frontend CI (Continuous Integration) and automatic deployment mechanisms (Slack).
  • Utilizing monitoring tools like Prometheus and Kibana.
  • Setting up ElasticSearch and exploring its integration with the database (Postgres) to create a more comprehensive full-text search service.
  • Learning how databases work. Postgres has been a reliable partner for five years.

In addition to backend development, I also dedicated some time to delve into mobile development (iOS) and Swift.

I realized that frontend and app development share similar principles. Both involve UI, data flow, and state management.

The only difference lies in the programming language and development platform. It is fascinating to observe how different areas handle UI and state management using distinct syntaxes. There is much to learn from each other. For example, the recent release of SwiftUI and Combine in Swift provides state management methods that are highly applicable to frontend development.

Another significant change is the emphasis on writing tests. In my previous company, there was no dedicated QA period, so tests were not written extensively. However, in my current company, there is a dedicated QA team, making test writing crucial. Otherwise, a bunch of QA bugs will be reported.

I am willing to sacrifice some performance to achieve greater testability and maintainability because bugs and their workarounds are often the main causes of codebase issues. I also find writing tests in React to be quite easy, as it allows simulation of actual user behavior.

I used to enjoy using Enzyme (a powerful React testing wrapper), but now I believe that relying too much on such a tool can lead to overly detailed implementation testing rather than testing behavior. Therefore, I lean more towards using react-testing-library, which provides a more concise approach to testing.

I feel that my frontend career may have reached a bottleneck. Besides wanting to explore relatively different areas such as high-interaction requirements, video processing, image processing, text editing, and music, I also aspire to lead an excellent team in building better products together.

Although being 25 years old may present more challenges than advantages when taking on a leadership role, I am eager to seize such an opportunity if it arises.

In terms of personal life, 2019 was a year of achieving work-life balance for me. With the addition of new tools like an oven and microwave, an increase in salary, and a larger kitchen, I was able to cook more frequently and try different types of food.

In addition to cooking, I also joined a gym to control my weight gain after coming to Japan. I also made an effort to control my diet and drinking frequency, although the drinking culture in Japan can be quite intense.

Regarding travel, I did not plan any major itineraries unless there were specific events or tasks to attend to during holidays. In general, I enjoyed exploring my surroundings.

As mentioned earlier, I still aim to deepen my technical expertise in the future, but I don't want to limit myself to just web frontend knowledge. I want to venture into different areas as much as possible. In 2020, in addition to further developing my frontend skills, I also intend to expand my knowledge across the entire field of computer science. Specifically, I am interested in WebGL, low-level languages such as C++ and C, assembly language, and various programming languages.

Understanding these topics is highly intriguing to me.

I want to highlight that at the end of 2019, I bought a PS4 and played the game Death Stranding. The story of Death Stranding completely changed my life and thoughts, and it sparked my interest in knowing more about Hideo Kojima, the director of the game. In 2020, I hope to delve deeper into the gaming industry.

I am grateful to the people I have encountered in each company, as there are always individuals who are better than me and from whom I can learn. Here are a few individuals who have made a significant impact on me:

  • Weak self: Although it is an iOS podcast, many concepts are applicable across different platforms. Going to the gym is a time when I can listen to familiar voices in a different setting, and it always moves me. (There are also many Taiwanese colleagues XD)
  • Koji: Apart from having excellent Japanese language skills (no accent at all!), as a manager, he genuinely cares about everyone's well-being, which allows me to work with peace of mind in the company.
  • Hirayama: My current supervisor gives me ample space to pursue what I want to do and consistently encourages me to contribute in ways that benefit the team. Having a supportive supervisor is an important factor in making my career journey smoother!
  • Huang: He is like a senior colleague in the workplace, having been in the industry for a long time. He is knowledgeable about workplace gossip and company culture. Whenever I encounter difficulties, he always provides helpful hints and guidance.
  • Denny: It's amazing to think that we were once colleagues and now work together in a different country. Seeing him wearing the familiar sudo T-shirt reminds me of ordering Igarashi and RD Team to have lunch together and watching Mr. Robot in the office.
  • Thomas: He is the most dedicated and hardworking colleague I have ever seen. He has a wide range of interests, which has been immensely helpful whenever I want to explore unfamiliar areas. He is always willing to offer immediate assistance. Moreover, he is passionate about technology and frequently engages in discussions about low-level topics such as Linux and operating systems. I have learned a great deal from him, and he is the most professional engineer I have encountered in my career.
  • Jimmy: Besides participating in discussions, he consistently helps improve various aspects within the team. I was particularly impressed by the series of DevOps practices he introduced, which significantly streamlined our development process.
  • Peter: He often shares new designs and logos with me and provides suggestions on how to enhance our website. I am grateful for his continuous support and advice.

Prev

How to read SUICA information with CorenFC

Next

Software Engineering Devastation

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.