· 8分で読了

2019年の振り返り

この記事は中国語から自動翻訳されたものです。翻訳によりニュアンスが失われている場合があります。

2019年、1月の最初の5日間、僕はまだ兵舎の中で饅頭を数えていた(兵役)。4ヶ月の兵役生活を終え、僕は就職活動を始めた。

上半期はほぼ面接の準備に追われていたが、下半期に日本へ移住してからは、次第に生活も軌道に乗ってきた。

2019年上半期

2019年の上半期は、無職だったこともあって少し焦りや不安があった。しかし実際にはかなり自由な時間でもあった。この期間、僕はフロントエンドとReactのドメイン知識を補うことに集中していた。

またこの期間を利用して、ブログをgatsbyで書き直し(フロントエンドエンジニアの職業病だ)、.devドメインを購入した。

もう一つ特筆すべきこととして、当時はブラウザのAudio Contextにとても興味があったので、いくつか面白い小さなプロジェクトを作った。公開できる機会があれば、ぜひシェアしたいと思う。

面接や返事を待つ間、多くの時間はLeetCodeを解いたり、練習用のフロントエンドの小さなプロジェクトを作ったり、フロントエンド関連の一連の記事の執筆を計画したりしていた。

この時期には、日本での生活に備えて、日本人講師が中心の日本語の個別指導クラスにも再び通い始めた。

この頃にはいくつか面接も始まった。詳細については、数ヶ月前に書いた就職活動の体験談を参照してほしい。

そして時間は下半期へと進む。6月下旬に日本へ渡った。生活の基盤を整えるのに少し時間を費やした後、7月から働き始めた。

ここ数年の日本語学習や日本行きに関する一連の記事を書くことにも時間を費やした。興味があれば、ぜひ読んでみてほしい。僕と日本の距離

下半期:日本での仕事

ここでのフロントエンド開発は以前働いていた会社とはかなり異なるものの、大企業で働くことで豊富なリソースが得られ、キャリアにどれほどプラスになるかを実感できた。だがその反面、上手く活用できなければ「養老院(定年待ちのぬるま湯)」のようになってしまい、時間の経過とともに余剰人員になってしまう恐れもある。

そうした環境と強力なバックエンドチームのもとで、僕もより深いバックエンド知識やインフラについて学び始め、バックエンドの運用や仕組みをより詳細に理解しようと努めた。具体的には以下の通りだ:

  • 堅牢なメッセージキューの仕組みをどう設計するか。チームの歩みに従い、Kafkaという非常に強力なツールにも触れた。
  • サーバーのセットアップ。チーム内にAnsibleやNginxの経験者がいるため、基本設定や調整方法についての基礎的な理解が深まった。以前のようにただ闇雲にサーバーへSSH接続することはなくなり、ミスをしても教えて導いてくれる人がいる。社内には参考にできるプレイブックもたくさんあった。
  • 様々なユースケースをカバーでき、独自のカスタムスクリプトも簡単に書ける汎用的なSlackボットを自作した。
  • フロントエンド共通のCIと自動デプロイの仕組み(Slack連携)を構築した。
  • PrometheusやKibanaなどのメトリクス監視ツール。
  • ElasticSearchを自分で立ち上げ、データベース(Postgres)とElasticsearchを連携させて、より完全な全文検索サービスの構築を試みた。
  • DBの仕組みを学ぶこと。Postgresは僕と付き合って5年になるが、今でも頼もしいパートナーだ。

バックエンドに加えて、モバイル開発(iOS)とSwiftの深掘りにも時間を費やした。

フロントエンドとアプリ開発の本質は、実のところ同じだと感じている。どちらもUI、データフロー、そして状態管理を扱っている。

言語や開発プラットフォームが異なるだけだ。異なる構文を通じて各領域がどのようにUIや状態管理に対処しているかを見るのは非常に興味深く、相互に学べることが多い。例えば、最近SwiftでSwiftUIとCombineがリリースされたが、その状態管理の手法はフロントエンドにとっても大いに参考になると感じている。

もう一つの大きな変化はおそらくテストを書くことだ。前職では専用のQA期間がなかったためテストがあまりしっかり書かれていなかったが、今の会社にはQA専用の期間がまるまる設けられている。そのためテストを書くことが極めて重要になり、さもないと大量のQAバグが報告されてしまう。

テスタビリティ(テスト容易性)や保守性を高めるためなら、多少のパフォーマンスを犠牲にしても構わないと思っている。なぜなら、バグやそれに伴う付け焼き刃のワークアラウンドこそが、コードベース全体を混乱させる最大の原因だからだ。また、Reactでテストを書くのは本当にやりやすいことにも気づいた。実際のユーザー行動をシミュレートするのにも優れている。

以前はenzyme(強力なReactテスト用ラッパー)を好んで使っていたが、今ではそのような強力すぎるツールを使うと、振る舞いではなく過度に詳細な実装のテストに囚われてしまうと感じている。そのため、今ではreact-testing-libraryの方を好んでいる。テストを行うための簡潔でスマートなアプローチだ。

ボトルネックの突破

僕にとって、フロントエンド領域でのキャリアはおそらく一つのボトルネック(頭打ち)に達している。少し毛色の異なる領域(高度なインタラクション、動画処理、画像処理、テキスト編集、音楽など)に関わりたいだけでなく、より低レイヤーの技術も学び続けたいと思っている。

最近考えているもう一つのことは、優秀なチームを率いて一緒により良いプロダクトを作りたいということだ。

25歳という年齢は、リーダーとしては強みよりも障害になることの方が多いかもしれないが、もしそのような機会があれば、ぜひ挑戦してみたい。

生活

2019年は、僕にとって最もワークライフバランスが取れた1年だった。調理器具(オーブン、電子レンジ)が増え、給与が増え、キッチンの広さも広くなったおかげで、自炊の頻度が増え、様々な料理に挑戦できるようになった。

料理をする頻度が増えただけでなく、調理器具(オーブン、電子レンジ)が増え、キッチンのスペースもますます広くなった。

少し特別な料理もいくつか作った:

  • 東坡肉(自己流アレンジ)
  • スペイン風パエリア
  • クッキー作り
  • 焼きプリン
  • 魚のフライ(内臓処理やウロコ取りから)
  • 自家製ハンバーグ

僕の料理の腕前も次のレベルへと進んだ。今年も引き続き様々なジャンルの料理に挑戦し、より良い肉の仕入れ先を見つけたいと思っている。日本は台湾と違って、どこにでも伝統的な精肉店があるわけではない。

日本に来てから体重もかなり増えてしまった(笑)。そのためジムに入会し、できる限り食事や飲む頻度をコントロールしようとしている。とはいえ、日本での飲み会の頻度は本当に恐ろしい!

旅行に関しては、大きな旅程を組む予定はなかったものの、休日に特にやることがなければ、普段からあちこち散歩して回るようにしている。

先ほどのボトルネックでも触れたように、今後は技術分野をさらに深掘りしていきたいが、Webフロントエンドの知識だけに縛られることなく、可能な限り異なる領域にも踏み込んでいきたい。

2020年は、フロントエンド領域での研鑽を続けるだけでなく、コンピュータ分野全体へと視野を広げていきたい。その中でも特にWebGL、低レイヤー言語(C++、C、アセンブラ)、OS、そしてプログラミング言語処理系について触れてみたいと考えている。

こうしたことを理解するのは、僕にとって非常に刺激的で面白い。

特に言及しておきたいのは、2019年の終わりにPS4とゲーム『DEATH STRANDING』を買ったことだ。『DEATH STRANDING』のストーリーは僕の人生や考え方を完全に変えてくれたと感じており、小島秀夫監督についてももっと知りたいと思うようになった。2020年は、ゲーム分野にもさらに深く触れていきたい。

感謝

どの会社にも、必ず自分より優秀で学ぶべき点がある人たちがいる。以下は、僕の頭にパッと浮かんだ順だ:

  • Weak self:iOS系のポッドキャストだが、実際には多くの概念に通じるものがある。ジムに行くたびにweak selfが配信されるタイミングだった。異国の地で見慣れた(聞き慣れた)声を聞けるのは、とても胸が熱くなる(台湾出身の同僚もたくさんいるけれどXD)。
  • koji:日本語が日本人並みに達者な(まったく訛りがない!)だけでなく、マネージャーとして常に全員の状況に気を配ってくれており、そのおかげで僕も社内で安心して仕事ができている。
  • Hirayama:現在の上司で、僕がやりたいことをやるための十分な裁量を与えてくれ、チームのためになることをするよう常に後押ししてくれる。素晴らしい上司に出会えたことは、僕のキャリアを順調にするための重要な要素だと感じている!
  • Huang:職場の先輩のような存在。社会人経験が長く、職場のあらゆるゴシップや企業文化にも精通している。困ったことがあったときにヒントを貰いやすい。
  • denny:前の職場の同僚から、こうして異国の地で一緒に働くようになるなんて、今考えても本当に不思議だ。見覚えのあるsudo Tシャツを見ると、50嵐を注文したり、開発チームで一緒にランチを食べたり、オフィスで一緒に『Mr. Robot』を観ていた日々を思い出す。
  • Thomas:僕が見てきた中で一番の仕事中毒な同僚。興味の幅が非常に広く、僕があまり詳しくない分野を掘り下げたいときに大いに助けられた。彼が手伝えることなら、いつでも喜んですぐに力を貸してくれる。また技術に対する情熱も凄まじく、LinuxやOSなどの低レイヤーの話題についてよく議論している。彼からは多くのことを学んだし、僕のキャリアの中で最もプロフェッショナルだと感じるエンジニアだ。
  • Jimmy:議論への参加だけでなく、チーム内の細々とした改善にも常に貢献してくれている。特に開発全体をよりスムーズにした一連のDevOps周りの取り組みは非常に印象的だった。
  • Peter:時々新しいデザインやロゴを投げてくれたり、Webサイトの修正案についてのアドバイスをよくくれたりする。本当に感謝している!

関連記事

他のトピックを探索