半熟前端

軟體工程師 / 台灣人 / 在前端的路上一邊探索其他領域的可能性

雜談

2019 in review

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

In the first half of the year, I was almost preparing for interviews, but after moving to Japan in the second half of year, I gradually got on track.

First half of 2019

In the first half of 2019, I was a little anxiety because I have no job. But also I was actually quite free at that time. In this period, I was focusing on filling up frontend and React domain knowledge.

I also took advantage of this period, rewritten my blog with gatsby (front-end old fault), and bought the .dev domain.

It is also worth mentioning that at the time, I was very interested in the browser's Audio Context, so I made a few interesting small projects, and if I have the opportunity to make them visible, I will share them with you.

While I was waiting for the interview and response, most of time I was doing Leetcode, writing some front-end small projects for practice, and then starting to plan a series of front-end related articles.

During this time, I also went back to sign up for Japanese tutoring classes with mainly Japanese teachers, to prepare for Japanese life.

During this period, several interviews also started. For details, please refer to the job search experience I wrote a few months ago.

The timeline came to the second half of the year. I flew to Japan in late June. After spending some time to settle my basic life, I started working in July.

I also spent some time writing a series of articles about my experience of studying Japanese and going 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, work in Japan

Although the front-end development here is quite different from the front-end developed in the previous company I worked for, I can feel that working in a large company can bring a lot of rich resources, and how much it can help the career, but maybe because of this, if you are not used it properly, it will become a retirement area, and over time you will become a redundant staff.

Under such circumstances and the strong backend team, I also started to study deeper back-end knowledge and infrastrcture, and tried to understand the operation of the back-end in more detail, specifically:

  • How to design a solid message queue mechanism. Following the team's footsteps, I also found Kafka, a very powerful tool.
  • Setup a server. While someone in the team has ansible, nginx experience, I have a basic understanding of the basic settings and how to make adjustments. I no longer ssh into the server as before, and if I make a mistake, there are people who can teach and guide me. There are also many playbooks inside company that I can take a look.
  • I wrote a general slack bot myself, which can cover with different usage scenarios, and it is easy to write my own custom script
  • Set up the front-end common CI and automatic deployment mechanism (slack)
  • Promethues, Kibana and other mertic monitoring tools.
  • I set up ElasticSearch myself and tried to integrate with database (Postgres) with elasticsearch to make a more complete full-text search service.
  • Learn how DB works. Postgres has been with me for five years and is still a solid partner

In addition to the backend, I also spent some time digging into mobile development (iOS) and Swift.

I feel that the essence of frontend and app development is actually the same. We are all dealing with UI, data flow and state management.

It's just the language is different from the development platform. It is very interesting to see how different areas deal with UI and state management from different syntaxes, and you can often learn from each other. Like recently swift just released SwiftUI and Combine, I think its state management method is very suitable for reference in the front end.

Another big change is probably writing tests. Before, there was no a whole QA period in my previous company, so the tests were not written well, but now there is a whole QA period dedicated to QA, so writing test becomes very important, otherwise, a bunch of QA bugs will be reported.

I'm happy to sacrifice a bit of performance in order to reach more testability and maintainability, because bugs and the wordaround that comes with it are usually the biggest reason to mess up the entire codebase. I also found it really easy to write tests in React! It is also good to simulate actual user behavior.

I used to enjoy enzyme (a powerful react testing wrapper), but now I feel that having such a powerful tool will entangle myself in testing too detailed implementation instead of testing behavior, so I am more inclined to react-testing-library. Just a short way to do the test.

Break through the bottleneck

For me, my career for front-end area may have reached a bottleneck. In addition to wanting to access some relatively different areas (high interaction requirements, video processing, image processing, text editing, music, etc.), I also want to continue learning lower-level technology.

The other thing I am thinking about recently, is I want to lead an excellent team to build better products together.

Although the age of 25, for a lead, often the obstacle is greater than the advantage, but if there is such an opportunity, I want to take it.

life

2019 is the most work-life balance year for me. Because the number of tools (oven, microwave) has increased, salary has increased, and the size of the kitchen has also increased, I can cook more frequently and try different kind of food.

In addition to cooking more frequently, the number of tools (oven, microwave) has increased, and the size of the kitchen has increased. More and more.

I cooked some more special dishes like:

  • Dongpo meat (non-standard version)
  • Spanish Paella
  • Baking cookies
  • Baked pudding
  • Fried fish (including handling internal organs and descaling)
  • Homemade burger steak

I have taken my cooking skills to the next level. I hope that I can continue to try different types of cuisine this year, and find better sources of meat. Japan is not like Taiwan. There are no traditional meat shops everywhere.

After coming to Japan, my weight also increased significantly lol, so I signed up for the gym, and then tried to control my diet and drinking frequency as much as possible, although the frequency of drinking in Japan is really terrible!

In travel, although there is no intention to plan any big itinerary, if there are no special things to deal with during the holiday, usually I will walk around.

As mentioned in the bottleneck just now, in the future, I still want to continue to deep into the technical field, but I may not want to be limited to the knowledge of the Web front-end, but try to move into different areas as much as possible.

In 2020, in addition to continuing to cultivate in the front-end field, I also want to extend the scope to the entire computer field. Among them, WebGL, low-level languages (C ++ and C, Assembly), operating systems, and programming languages that I want to specifically touch on.

Understanding these things is very interesting to me.

I would like to mention in particular that at the end of 2019, I bought the PS4 and game Death Stranding. I feel that the story of Death Stranding has completely changed my life and thoughts, and also made me want to know Hideo Kojima (Director of Death Stranding). In 2020, I hope I can get more into game field.

Thank

Each company has always some people who are better than myself, and it's worth to learn from them. The following order comes out of my mind:

  • Weak self: Although it is an iOS podcast, in fact, many concepts are interoperable. Each time I go to the gym is the time when the weak self is released. I can hear familiar voices in different places, but I feel very moved. (Although there are many Taiwanese colleagues XD)
  • koji: In addition to Japanese being as fierce as the Japanese (no accent at all!), as a manager, he often cares about everyone's situation, which also allows me to work with peace of mind in the company.
  • Hirayama: The current supervisor gives me a lot of space to do what I want to do, and always encourages me to do things that are helpful to the team. I feel that being able to meet a good supervisor is an important factor in making my career smooth!
  • Huang: It ’s a bit like a senior in the workplace. He have been in the workplace for a long time. He knows all kinds of workplace gossip and company culture. It ’s easy to find a way to get hint when you have troubles.
  • denny: It's pretty amazing to think about it now, from former colleagues to working together in other countries. When I see the familiar sudo T-shirt, I think of ordering Igarashi and RD Team to have lunch together and watching Mr. Robot's in the office together.
  • Thomas: He is the workaholic colleague I have ever seen, he has wide range of interest, which helps me a lot when I want to dig into some field I am not familiar with. As long as he can help, he is willing to help as soon as possible. Also, he is also very passionate about technology. He often discusses low-level things like linux, operating systems, and so on. I have learned a lot from him and he is also the engineer I think it's most professional in my career.
  • Jimmy: In addition to participating in discussions, he always help improve the trivial things in the team. What impressed me most was a series of devops that made the entire development smoother.
  • Peter: Somtimes he'll throws me new designs and logos, and also often gives me suggestions on how to modify the website. Thanks and thanks!