My 2019 Year in Review
In the first five days of January 2019, I was still counting down the days in the military barracks, finally finishing my four months of military service and embarking on the job search. The first half of the year was mostly spent preparing for interviews and centering myself, while in the second half, life gradually got on track after relocating to Japan.
The First Half of the Year
In the first half of 2019, since I didn’t have a job, I had quite a bit of free time on my hands—aside from a slight sense of anxiety. During this period, besides catching up on front-end knowledge from the previous four months, I also caught up on the changes in React during that time (Hooks, of course!).
I also took advantage of this downtime to completely rewrite my blog using Gatsby (a classic front-end developer habit XD) and bought a .dev domain.
Another thing worth mentioning is that I was quite interested in the browser’s Audio Context at the time, so I built a few fun little side projects. If I get the chance to flesh them out more, I’ll definitely share them.
Between waiting for interview rounds, I mostly ground LeetCode, wrote small front-end projects to keep my skills sharp, and started outlining a series of front-end articles. During this time, I also signed up for Japanese classes taught primarily by native Japanese teachers to prepare for my upcoming life in Japan, aiming to regularly review Japanese and maintain a structured routine.
A few interviews also got underway during this period. For more details, feel free to check out the job hunting experience I wrote a few months ago.
And just like that, we arrived at the second half of the year. I flew to Japan in late June, spent some time getting my living situation sorted out, and started working in July.
I also spent some time turning my journey from learning Japanese over the past few years to working in Japan into a series of articles. If you’re interested, feel free to take a look:
The Distance Between Me and Japan
The Second Half: Settling into Work and Life in Japan
Although front-end development here is vastly different from how I used to do it, working at a large company has made me truly appreciate how much career growth abundant resources can enable. That said, precisely because of this, if you don’t take full advantage of them, it can easily turn into a comfort zone, eventually making you a complacent slacker coasting by.
In this environment, working alongside a strong backend team, I also began diving deeper into backend knowledge and infrastructure, trying to develop a more thorough understanding of how the backend works. Specifically:
- How to design a robust message queue mechanism. Following the team’s footsteps, I discovered the versatile Swiss Army knife that is Kafka.
- Provisioning servers quickly and efficiently. Leveraging the ansible experience on the team, I gained a foundational understanding of basic configuration and how to make adjustments. No longer do I haphazardly SSH into servers where a single misstep means tearing everything down and starting over; now, there are teammates to guide me when I’m stuck, along with plenty of internal playbooks to reference.
- Wrote a generic Slack bot from scratch that can handle various use cases and is easy to customize with scripts.
- Set up a generic CI and automated deployment pipeline (via Slack) for front-end projects.
- Set up performance monitoring tools like Promethues and Kibana on my own, which gave me a much deeper appreciation for their importance.
- Deployed ElasticSearch myself, pairing it with the database (Postgres) to build a more comprehensive full-text search mechanism.
- Gained a deeper understanding of database operations. Postgres has been with me for five years now, and it remains a solid and dependable companion.
In addition to the backend, I also spent some time exploring mobile development (iOS) and the Swift language. I realized that the essence of front-end and mobile app development is essentially the same: we are both dealing with UI, corresponding data flows, and state management. Aside from the different languages and platforms, examining how different domains handle UI and state through different syntax is fascinating, and there is often plenty to cross-pollinate. For instance, the recently introduced SwiftUI and Combine are state management paradigms that I think front-end development can draw a lot of inspiration from.
Another major shift was probably writing tests. In the past, without a dedicated QA phase, tests weren’t written very thoroughly. But now, with a dedicated QA cycle specifically focused on testing, writing tests has become exceptionally crucial—otherwise, dealing with a flood of reported QA bugs in the end just shoots yourself in the foot.
I’m more than happy to trade off a bit of performance for better testability and maintainability, because bugs and their subsequent workarounds are usually the biggest culprits behind a messy codebase. I also realized that writing tests in React is actually really straightforward! It’s also great for simulating real user behavior.
I used to love using enzyme (a powerful React testing wrapper), but now I feel that having such a powerful tool actually causes you to get bogged down testing granular implementation details rather than user behavior. So these days, I lean more toward react-testing-library and its lightweight, focused approach to testing.
At work, in 2019, I tried to dabble more in management and people-related books. Two that left a deep impression on me were:
- Driving Technical Change
- Lateral Leadership (橫向管理)
While I’m still not seasoned at it, at least I’ve taken the first step.
Breaking Through Plateaus
For me, I might have hit a plateau in front-end development. Besides wanting to explore different domains (high-interactivity applications, video processing, image processing, rich text editing, music, etc.), I also want to push further down into lower-level technologies.
Another thing on my mind recently is that I gradually want to lead a great team and build better products together. While being 25 is often more of a hindrance than an advantage for a lead role, if an opportunity like that presents itself, I definitely want to seize it.
Life
2019 was the year with the best work-life balance for me so far. In addition to cooking much more frequently, having more appliances (an oven, a microwave) and a bigger kitchen allowed me to try my hand at a wider variety of dishes.
Some of the more notable dishes I made include:
- Dongpo pork (a non-standard version)
- Spanish paella
- A failed batch of baked bread
- Baked cookies
- Baked custard pudding
- Pan-fried fish (including gutting and descaling it myself)
- Homemade burger patties / Salisbury steak
My cooking skills leveled up again. I hope to keep experimenting with different dishes this year and find better sources of quality meat—unlike Taiwan, traditional butcher shops aren’t everywhere here in Japan QQ.
My weight shot up significantly after coming to Japan, so I joined a gym and tried to keep my diet and drinking in check—though the social drinking frequency in Japan is truly alarmingly high!
As for travel, while I didn’t plan any major trips, whenever there was a long holiday with nothing urgent to attend to, I usually explored nearby places:
- Itoshima
- Nishijin
- Nokonoshima
- Yufuin
- Karuizawa
- The outskirts of Fukuoka
The Future
As mentioned earlier in the plateau section, I still want to deepen my technical expertise in the future, but I don’t want to restrict myself solely to web front-end knowledge; instead, I’d like to branch out into diverse fields.
In 2020, besides continuing to deepen my front-end roots, I want to expand into broader computer science fields. Areas I specifically want to explore include WebGL, low-level languages (C++, C, Assembly), operating systems, and programming language theory—understanding these concepts is fascinating to me.
I’d also like to give a special mention: at the end of 2019, I snagged a PS4 on sale along with the game Death Stranding. Death Stranding’s storyline completely altered my perspective on life and thinking, and made me want to learn more about Hideo Kojima as a creator. In 2020, I hope to delve more into game-related knowledge.
Acknowledgments
At every company and by my side, there are always people far more talented than me to learn from. It is through meeting these people that I’ve become who I am today. In the order they popped into my head:
- weak self: Even though it’s an iOS podcast, many concepts are transferable. New episodes of weak self always seemed to drop right when I was heading to the gym. Hearing familiar voices while living abroad was genuinely touching. (Though to be fair, I have plenty of Taiwanese colleagues XD)
- koji: Beyond having Japanese so fluent it’s indistinguishable from a native speaker’s (zero accent!), as a manager, he frequently checks in on everyone’s well-being, allowing me to focus on my work with peace of mind.
- Hirayama: My current manager gives me plenty of room to pursue what I want to do, and always encourages me to take on things that benefit the team. Having a great manager really is a critical factor in a smooth career!
- Huang: Akin to a senior mentor in the workplace who has been in the industry for a long time. He knows all the workplace gossip and company culture inside out, making it easy to find guidance whenever I’m in a dilemma.
- denny: Looking back, it’s quite amazing—going from former colleagues to working together again in a foreign country. Occasionally seeing that familiar sudo hoodie brings back memories of ordering 50 Lan bubble tea, dining together with the RD team, and watching Mr. Robot together in the office.
- Thomas: Easily the most workaholic colleague I’ve ever seen, yet his breadth of knowledge is vast. Whenever help is needed, he goes all out, whether it’s front-end or back-end. On top of that, he is passionate about tech, frequently discussing low-level topics like Linux, operating systems, and more. I’ve learned a ton from him; he’s easily the fiercest engineer I’ve ever met.
- Jimmy: Beyond being super engaged in discussions, he always helps improve the team’s smaller, tedious pain points. What impressed me most was a series of DevOps improvements he introduced, which made the entire development process much smoother.
- Peter: Occasionally pops up out of nowhere to send me new designs and logos, and frequently offers suggestions on how to improve my website. Nothing but gratitude for him!
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.