7月から新しい職場で働いているので、そろそろ半年。整理のために近況を綴ってみる。以下は個人的な話で会社の紹介とかはしないので、気になった人はホームページを見てほしい。
前職に引き続き、職種としてはフロントエンドエンジニアという位置付け。
業務として書く React
前職では業務で Elm を書いていたので React は小さなプロジェクトや趣味で触っていた程度。なので大規模アプリケーションで必要となるような React の知見は当然なく、 Suspense とかもちょっと聞いたことある程度でそもそも何なのかよく分かっていなかった。あとは Next.js とか Storybook とか Jest とか MSW とか Recoil とか TanstackQuery みたいなフレームワーク・ライブラリも未経験のものが多く、何からキャッチアップすればいいのやら途方に暮れた。が、流石に半年も触っていたのでだいぶ分かってきた。
それまで触っていた Elm はシンプルで綺麗な唯一の方法を提供する一方で、禁欲的というか「そんな無理して複雑な事をするならボイラープレートを書いてた方がマシでしょ」みたいなところがある。React (というかフロントエンドは大体そう)は真逆で、大勢がとにかく物凄いエネルギーとコストを投じて理想を追求していく。自分はミニマリスト気質なのもあって前者で満足していたのだが、正直ブルーオーシャンすぎて5年もするとやることが無くなってしまった(それは良いことでもある)。現職は React をバリバリやる感じなので正直ついていけるのかという不安はあったものの、他にもいろんな要因が重なり「もう一度フロントエンドやり直してみるか〜」という気持ちになった。
そういうわけで、それまで横目でウォッチしていた数年分のフロントエンド技術を一気にキャッチアップすることとなった。心配していたのは、ずっと Elm をやっていたせいで React のやり方に拒否反応が出て「Elm ではこんな風に書くんだけどなぁ」みたいな事をつい口走って煙たがられないか、というところだったが、蓋を開けたら全然そんなことはなくて安心している。アンラーンは特に意識していたので順調に出来たし、むしろいろんな新しい書き方を覚えて発想の幅が広がった。転職前の思惑通りとにかく学びが多い。
フロントエンドガチ勢の集い
そもそも転職のきっかけは現職のフロントエンドエンジニアからお誘いを受けたこと。その方は界隈でも有名な方だということは知っていたのだが、入社して一緒に仕事をしてみるとやっぱり凄い。フロントエンドガチ勢は CSS の手札がとにかく多い。多い時は知らない文法を4、5個見つける日があったほど。しかも同等の実力者が何人もいたりする。
前職ではフロントエンドが実質的に自分一人のような状態だったので、設計をゼロから好き勝手に出来た一方で他の人から学ぶことも難しかった。そうすると、自分の発想の幅の中で問題を解決するのだが、なかなか手札が増えていかない。70 点が求められる仕事で 80 点の解決策を思いついたらそこで終わってしまい、90 点以上の解決策は一生知ることができない。
人によって得意分野と不得意分野があってパラメータが上手く凸凹になっているのも面白い。ある人は CSS が得意、別の人はライブラリにめちゃ詳しい、Figma を使いこなす人もいればアクセシビリティに強いこだわりを持っている人もいる。なのでお互いに学び合えるし、それらが集合知になっていくのが良い。
職種の多い開発組織
フロントエンド内でも多種多様なスキルを持った人が居るのだが、開発組織全体でも同じことが言える。デザイナー・PdM が多数在籍するほか、スタートアップには珍しく QA 組織(内製)がある。あとセキュリティとかイネーブルメントをやるグループがあったり。プロダクトの開発者はフロントエンドとバックエンドが明確に分かれている。もちろんフルスタックなスキルを持ったメンバーも居るが、皆がそうであるよりはそれぞれが専門性を活かした方が良いという思想が根底にある。
前職ではエンジニアのレベルが総じて高かったが、職種のバリエーションは少なかった。なので、本などで「世の中にはそういう職種(例えば PdM とかデザイナーとか QA とか...ただし正社員で)が存在するらしい」ということは知っていたが実際に見たことはなかったので、そういう人々のいる環境に興味があった。自分はどっちかというと、誰か器用な人が片手間にやったり大勢がたまに集まって何かするよりも、ある専門領域をガッツリ見る人が居た方が上手く回るだろうと信じているので、その辺の思想ともマッチした。
というわけで、色んな人が居て面白い。ただし、そのぶん開発プロセスを整えるのは難しい。それはもう本当に。
最近の興味
最近フロントエンドの中で担当分野を決める動きがあったので「テスト(ユニット, 結合, E2E)」の担当になってみた。理由としては、相対的に手薄かつ他にやりたい人が居なかったから。設計とか UI コンポーネントとかも興味なくはないけど、他にやりたい人・得意な人が沢山いるからいいやという感じ。テストは書き慣れていないとどんどん腰が重くなるので、書くのが面倒そうな場所を開拓してハードルを下げていきたい。