2023年振り返り。
会社の人にSNS系アカウントは身バレしている(ある程度は割り切っていたけどアドカレなどもあってエンジニア社員の人には確実にバレている)ので、こっちに書いていきまーす。
ちょうど6月入社だから、エンジニアになる前後に分かれる
転職前
1~3月くらいは、たぶんバトランやらカリキュラムの残りのお片付け、あとは就活に勤しんでいた気がします。
一応受講生への参考として自分は卒業が3/31で、今の会社への内定決まったのが4/19とか。卒業前に内定決まってる人はまじですごい。
バトラン終わってからは就活やらなんやらだらだら進めてしまっていたなぁと反省。あとは就職するまでたぶん2ヶ月くらいあったけど、あんま勉強してなかった。反省だらけだわ
転職後
こっからがメインっすね〜入社当初は自分で言うのもなんですが結構頑張っていました。
とにかくできることは全部やろうと思って、大していきたくもない飲み会やランチに頑張ってついていったり、仕事でわからないところがあれば積極的に質問したり、開発の方でも足手まといにならないように食らいついていた気がします。
ただ1ヶ月も経たない段階でプロダクトのコードの全体像やらはつかめて、なんてことないくそでかフォームコンポーネントが各ページに並んでいてトップでちょっと複雑な検索がかけられるだけのシンプルなSPAのアプリケーションであることがわかりました。(拍子抜け感がエグかった)
テストなんて当然ないし(申し訳ない程度にE2E書いてある)、App Routerへ本格的に移行するみたいな話は一切出てこないPages Routerのレガシーシステム。
この辺から「ひょっとして弊社のフロントエンドの技術レベルって低いんか...」みたいなことは結構考えるようになって、とはいえスタートアップってこんなもんやし自分でなんとか改善していくしかねぇ〜みたいなことはよく思っていました。
あとレビューに関してもコメントつくけど、異常系考えられていなかったり本質的にどうでもよい部分での指摘ばっかりで得られること大してねーみたいなのは思っていました。書いてて思ったけどやっぱレベル低いのでは!?!?
2ヶ月過ぎたあたりからはちょっと大きめの機能の開発任せてもらえたりして、本番に近い環境での緊急のバグ対応もやったりとできることの幅は少し増えた気がします。
ただやっていることとしては本質的には変わらず、基本的にフォームの作成。一応やってるぜ感出すためにスナップショットテストあたりを書いていた気がします。(あんまり意味はない)
あと1.2ヶ月目というのはプライベートの時間で新しいことをあまり学べていなかった気がしています。さすがになんかやらなきゃと思い始めて、アピールも込めて技術記事を書き始めました。技術記事はまじで書き始めてよかったです。色んな意味で。
3.4ヶ月目は既存機能の開発に加えて、新デザインシステムの構築を手伝い始めた気がします。言ってもただshadcn/uiにちょっと手を加えたものですが、楽しかったような気もしています。(機能開発の方は面白いことがなかった。まじでなんも覚えてねぇ...)
4ヶ月目の9月が終わった段階で、ちょうど四半期の締め会があり、MVP的なものを受賞しました。これはやっぱり嬉しかったです、会社の人に認められたような気がして「また次の四半期も頑張ろう」という気持ちになりました。
5ヶ月目はLTやったり、技術記事も書いたり、イベント参加したりと割と忙しめの日々を送ってました。実務は何したのかあんま覚えていません。ただ覚えているのは、調子乗ってたのかGitやリリース周りのトラブルに苦しむことが増えたということです。マージボタンが軽いって言われましたw(笑い事じゃない…!)
そして11.12月は割と重要な機能のリニューアルを任されて、悪戦苦闘していました。
もともとこの機能を担当していた方がやめてしまったこともあり、何をしているコードか把握できないことが多くかなり苦労しました。あとはCSSの知識不足を痛感したり、改善⇐⇒修正のサイクルを2~3回くらい繰り返すPdMの異常なこだわりに「いったいこの機能はいつリリースできるのやら。MVPとはなんぞ?」と絶望していました。(実際この機能のリリースは年内予定だったはずが年明けまで伸びた)
あとはなんといってもアドカレが異常にだるかった。色々社内から意見が出て、開発チームの雰囲気がピリついたりもして「よろしくないなぁ」と思いながらもやると決めたからにはなんとかやり切るべく技術記事いっぱい書いてた気がします。(当初は10記事くらい書く予定でしたが、業務委託の方の協力もあり、6記事ほどに収まりました)
ただおかげさまでZennは無事1000いいね超えを達成できたので、それはよかったです。2度とやらないが。
最近思っていること
ここまでが振り返り。ここからは最近思っていること。
最近ずっと考えているのが「入社して半年くらい経ったけど技術的に目に見える変化は果たしてあったのか?」ということ。
これに対するアンサーとしては正直ほとんどないといって良いでしょう。
具体的に振り返るのはあれとして、例えば保守性・テスタビリティなどに関わる部分で何か知見を得られたのか?というとほぼゼロ。
形だけのテストは書けるけど、かなり局所的。ただなんとなく書いているだけで、意図を持ってこういうテストを書こう...みたいなことは全くしていない。あとはコンポーネントの設計に関しても自分なりの基準はある程度持っているつもりですが、そこに対して確証が持てていないし、互いに議論して深めようみたいな動きはまったくない。各々が思うように書いて思うようにレビューしているだけ。最低限の動作が保証されていたらOK。
それなのに既存機能の改善や新機能のリリースに日々追われているため、中途半端なコードが大量に生産されていくという悪循環。せめて1スプリントに1日くらいは負債の解消などに充てたいとは思うけど、現在の開発速度ではなかなか厳しいという状況...(ここは1月から2人ほど業務委託の方がジョインするので、多少は改善されるのかなぁと思ったり。)
あと今やってるプロダクトはエンタープライズ向けの管理画面ということもあり、Next.jsである必要性がそこまでないです。
詳しくは以下バイセルの記事にも書いてありますが、要件的にNext.jsのカバー範囲とあまり被っていないため早急な移行も必要ないんですよね。
一応自分の担当プロダクトでは、14系まで1度バージョンをあげたのですが、かなりクリティカルなバグを引き当てて結局13系にまで下げざるを得ませんでした。まぁあげたとて特に複雑な機能を使うわけではないんで、😇😇といった感じですが😇😇😇😇😇
あとやっぱりサービスの要件やこみいったバグを理解するためには、裏側も知る必要があり、結局インフラやバックエンドを触らないと見えてこない部分が多いなぁと感じます。
フロントだからといってフロントに閉じていては、できることも限られてきます。この辺もうまくやってきたいな〜と最近はよく思ってます。(とはいえ最優先はフロント周りの技術ですが。その辺の量産型わかったふりしているマンには絶対なりたくない。)
自分がプライベートで学習できる時間が限られてしまっているのも良くないですね。週末もなんかふつうに仕事しているみたいな日が多くて、エンジニアとして新しい技術をキャッチアップしていく楽しさを最近は忘れつつあります。まぁこれに関しては自分の実装速度が遅いというのもあるので、なんとも言えませんが。ただもう少し時間的な余裕がほしいですね。
こういうことを考えているのが最近の自分です。
終わりに
そーいえば、同期がtimesでめっちゃよい投稿をしていたので最後にそれを引用して終わります。年明けからは色々と準備できればなぁと思います。良い年を!
会社に対して何もストレスないので転職しないけど、
常に転職できる状態にしておく
でも転職しないことを選んでいる
状態にしておきたい。 エンジニアは数少ないポータブルスキルな職業なので頑張ろう