2019 in Review
In the first five days of January 2019, I was still counting down the days in the barracks (compulsory military service). After finishing my four months of military life, I began my job hunt.
I spent most of the first half of the year preparing for interviews, but after relocating to Japan in the second half, things gradually got on track.
First Half of 2019
During the first half of 2019, I felt a bit anxious because I was unemployed, though I actually had plenty of free time. During this period, I focused on leveling up my domain knowledge in frontend development and React.
I also took advantage of this downtime to rewrite my blog using gatsby (a classic habit of frontend engineers) and purchased a .dev domain.
It is also worth mentioning that I was really into the browser’s AudioContext API at the time, so I built a few fun little side projects. Once I have the chance to polish them up, I will share them here.
While waiting for interviews and responses, I spent most of my time grinding LeetCode, building small frontend practice projects, and outlining a series of frontend-related articles.
During this time, I also signed up for Japanese tutoring classes taught primarily by native speakers to prepare for life in Japan.
A number of interviews also kicked off during this stretch. For more details, feel free to check out the job search experience I wrote a few months ago.
Moving into the second half of the year, I flew to Japan in late June. After spending some time settling into daily life, I officially started working in July.
I also spent some time writing a series of articles about my experience learning Japanese and moving to Japan in recent years. If you are interested, check it out: My Distance from Japan.
Working in Japan in the Second Half of the Year
Although frontend development here is quite different from what I did at my previous company, I can clearly feel how working at a large enterprise provides abundant resources and how much it can benefit one’s career. At the same time, if you aren’t careful, it can easily turn into a comfortable retirement zone where you eventually become redundant.
Under these circumstances, and thanks to our strong backend team, I started diving deeper into backend architecture and infrastructure to gain a more detailed understanding of how systems run under the hood. Specifically:
- How to design a solid message queue mechanism. Following the team’s lead, I discovered just how powerful Kafka is.
- Setting up servers. With teammates experienced in Ansible and Nginx, I developed a solid grasp of basic configurations and tuning. Instead of blindly SSHing into servers like I used to, I now have teammates to guide me if I make mistakes, along with plenty of internal playbooks to learn from.
- Building a generic Slack bot from scratch that covers various use cases and makes writing custom scripts effortless.
- Setting up standard frontend CI and automated deployment workflows (via Slack).
- Working with metrics and monitoring tools such as Prometheus and Kibana.
- Setting up Elasticsearch on my own and integrating it with PostgreSQL to build a more comprehensive full-text search service.
- Learning how databases work under the hood. Postgres has been my trusted companion for five years and remains a solid partner.
In addition to backend work, I spent some time exploring mobile development (iOS) and Swift.
I feel that the essence of frontend and mobile app development is fundamentally the same: both revolve around UI, data flow, and state management.
Only the programming languages and platforms differ. It is fascinating to see how different ecosystems approach UI and state management through distinct syntax and paradigms, and there is a lot to learn from each other. For instance, with the recent release of SwiftUI and Combine, I found their state management approaches to be a fantastic reference for frontend development.
Another major shift was writing tests. At my previous company, we didn’t have dedicated QA cycles, so tests weren’t written thoroughly. Here, however, an entire phase is dedicated to QA, making unit and integration testing essential—otherwise, you will be swamped with QA bug reports.
I am more than happy to trade a bit of performance for greater testability and maintainability, because bugs and the hacky workarounds that accompany them are usually the primary culprits behind code decay. I also found writing tests in React to be remarkably straightforward, especially when simulating actual user behavior.
I used to love Enzyme (a powerful React testing utility), but I’ve come to feel that having such a powerful tool tempts you to test implementation details rather than user behavior. As a result, I now lean toward react-testing-library—it provides a concise, idiomatic way to test.
Breaking Through the Bottleneck
Career-wise, I feel my frontend growth has hit a bit of a bottleneck. Beyond wanting to explore new domains (such as high-interactivity applications, video/image processing, rich text editors, and audio), I also want to dive deeper into lower-level technologies.
Another thing on my mind recently is the desire to lead an exceptional team to build great products together.
Although being 25 can present more hurdles than advantages for a lead role, I would jump at the opportunity if it presents itself.
Life
2019 was the year I achieved the best work-life balance so far. With a higher salary, more kitchen appliances (oven, microwave), and a larger kitchen, I was able to cook much more often and experiment with all kinds of dishes.
Some of the more special dishes I prepared include:
- Dongpo pork (my own variation)
- Spanish paella
- Fresh-baked cookies
- Baked custard pudding
- Pan-fried fish (including gutting and descaling from scratch)
- Homemade Japanese hamburger steaks (hambāgu)
I feel like my culinary skills have leveled up. In the coming year, I hope to keep experimenting with different cuisines and find better butcher shops—unlike Taiwan, traditional fresh meat markets aren’t on every corner here in Japan.
After moving to Japan, I also gained a noticeable amount of weight lol, so I joined a gym and started watching my diet and alcohol intake—though the drinking culture in Japan makes that quite a challenge!
As for travel, while I didn’t plan any elaborate trips, whenever I had free time on weekends and holidays, I enjoyed wandering around and exploring the city.
As mentioned in the bottleneck section, I want to keep deepening my technical foundations going forward. Rather than confining myself to web frontend development, I want to branch out into different fields as much as possible.
In 2020, alongside refining my frontend expertise, I want to expand my horizons across computer science as a whole. Specifically, I’d like to dive into WebGL, low-level languages (C, C++, Assembly), operating systems, and programming language design.
Exploring these fundamentals genuinely excites me.
On a special note: toward the end of 2019, I bought a PS4 along with the game Death Stranding. Its storyline profoundly impacted my life and perspective, and made me a huge fan of Hideo Kojima. In 2020, I hope to engage more with the gaming industry.
Acknowledgments
At every company, there are always exceptional people to learn from. Here are a few who immediately come to mind, in no particular order:
- Weak Self: Even though it’s an iOS podcast, many of the software engineering concepts are universally applicable. New episodes always seemed to drop right when I was hitting the gym. Hearing familiar voices while living abroad was genuinely heartwarming (even though we have plenty of Taiwanese colleagues here XD).
- koji: Aside from speaking Japanese as fluently as a native (zero accent!), as a manager he consistently checks in on everyone’s well-being, giving me immense peace of mind at work.
- Hirayama: My current manager gives me plenty of autonomy to pursue what I want and constantly encourages me to take on initiatives that benefit the team. Having a great manager is truly a crucial factor in making a career run smoothly!
- Huang: A seasoned senior colleague who has been in the industry for years and understands all the workplace dynamics and company culture inside out. Whenever I ran into tricky situations, talking with him always helped point me in the right direction.
- denny: It is pretty amazing looking back—from former colleagues to working together abroad. Seeing that familiar
sudoT-shirt always reminds me of ordering 50 Lan boba, having lunch with the R&D team, and watching Mr. Robot together in the office. - Thomas: The biggest workaholic I have ever met, with an astonishingly broad range of interests. He has been a tremendous help whenever I’ve ventured into unfamiliar territory, always eager to lend a hand. He is deeply passionate about technology and frequently discusses low-level topics like Linux and operating systems. I have learned a ton from him, and he is one of the most professional engineers I have encountered in my career.
- Jimmy: In addition to actively contributing to discussions, he is always stepping up to polish the little things for the team. What impressed me most was his work across our DevOps setup, which made our entire development workflow significantly smoother.
- Peter: He often shares fresh designs and logos, and frequently offers great suggestions on how to improve the website. Thank you so much!
Related Posts
- 2025 Year in Review My wish for myself in 2024 was to avoid returning to a corporate job in 2025 while still being able to support myself. Although I didn't achieve that goal, I consider 2025 to be one of the biggest years of growth in my life.
- 2024 Year in Review & 2025 Outlook Instead of forcing myself to set rigid goals this year, I want to take a different approach to reflect on my 2024 and share my hopes for 2025. Moving forward to become a better version of myself.
- 2021 Year in Review I originally planned to organize everything I did this year and write a post about it, but after gathering my thoughts, I realized there wasn't really that much worth bragging about. So I decided to just record things casually like a running journal.
- 2021 Year in Review Perhaps having accumulated more experience, my perspective on things seems to have broadened. In 2020 and 2021, I began exploring a wide range of fields—such as Arduino, tinkering with Raspberry Pi, diving into AVR, picking up STM32 dev boards to play with, and learning PCB design and 3D printing. I hoped that beyond frontend development, I could integrate with other domains to create more of what I truly want to build. Now in 2022, after two years of exploration, I hope this becomes a breakthrough year where I can produce tangible results.