理由は不明だが、年末に2023年の振り返り記事を書く気になれなくて今年はもういいかと思っていたが、なんとなく時間もできて書く気になれたので筆をとっている
特に2023年は転職したてで色々と自分なりにも大きい出来事がたくさんあったので書き残しておくことにした
仕事の振り返り(技術的なこと)
1-3月: 管理画面の作成
フロントエンドもバックエンドもTSで作成
featuresディレクトリでコロケーションにするってのをプロダクトとして初めて試したんだけど、見通しいいし機能追加や修正もしやすくかなりいい感じにできたと思う
脆弱性診断なるものを初めてやってもらった。クリティカルなものはなかったが、そういうところを見てるんだとなかなか勉強になることが多かった
無事、リリース予定日通りにリリースできたのでめでたし
4月: Goを書き始める
でかいタスクというよりかはアラート対応としてバグ修正だったり、細々とした機能追加レベルの実装
5月: Goでのちょっと大きめの機能追加
ちょっと大きめの機能が急遽必要になってチームで分担して実装した
この頃から自分の中でGoでの開発が本格化していった
これまでもGoを書いたことはあったけど、goroutineを使って並行処理とかは一切やってこなかった
特に必要性もなかったからなのだが、今やってるプロダクトはレスポンス速度を100ms以内にしないといけないという制限があるのでgoroutineを使った並行処理なんかはバリバリ使っている
改めて使ってみるとこんなに簡単に記述できて素晴らしいなってなってる
6月: 管理画面修正とsnowflake
管理画面でyarn workspaceを使ったモノレポにしていたが、turborepoに移行した
主な理由はパフォーマンス面。ブログ記事にしたと思ってたが、してなかった…?どこかで記事に起こしてもいいかもしれない
あとは管理画面の操作ログを取りたくて、AsyncLocal StorageとPrismaのmiddlewareを使って構築した
こっちはブログにした。拡張性あって運用コストも低く抑えられたのでなかなかよい仕組みができたと思う
あとはこの頃からsnowflakeをちゃんと触り始めた。snowpipeを使ってデータをリアルタイムで取り込む基盤を設計
snowflake初めて触ったが、色々な機能あるしダッシュボードで可視化もしやすくて中々イケてる
7-8月: リアーキテクトとリファクタリング
Goのコードにおいて、レイヤーごとの責務が曖昧になってたり明らかに責務が違う場所にコードが置かれてたりとメンテが大変そうな状況になってたので、長期スパンでリアーキテクトとリファクタリングを行った
まずはレイヤー分けの基準やディレクトリ構成をメンバー間で話し合った。すんなり決まったものも難航したものもあるが、とてもいい経験になった
この時、実は自分の中で気を付けていたことがあって、「クリーンアーキテクチャ」や「DDD」みたいな言葉は使わないようにしようと決めていた
これらは各々で前提となる認識がずれそうなのと、往々にして手段が目的化するので。それよりも「どういう構成にすると迷わないか」を大事に話し合いをした。個人的にはこれがとても良かったのではないかと思う
リファクタリングするにあたって、デグレがないようにテストの書き方も認識をそろえて片っ端から書き直していった
丁寧にテストを拡充 & 修正 → リファクタリングとしたおかげで、2,3ヶ月で+6万、-6万くらいのdiffになったが結果的にデグレ0に抑えることができたのでとても自信がついた
9月: flakyテストの解消とMantineアップデート
リファクタリングの延長でテストについて色々修正を行った結果、これまでflakyに落ちるテストが存在していたがその原因を突き止め解消することができた。これはかなり気持ちよかった。ブログに記載してある
あとはMantineのv7へのアップデートを行った。
それなりに変更もあったのと、アップデートするとバグなどがあってわりと大変だったが、メンテナーの方がissueや修正PRを迅速に対応してくれたのでとても助かった。この辺の対応の速さ本当にすごい
10月: 管理画面のテストとplaywrightを使ったRPA
管理画面のテストはそれまで少ししか用意してなかったのだが、フォーム周りのテストと認可によるroleの違いでの表示のテストを入れた
管理画面であることとUIライブラリを使ってることもあって、コンポーネントテストはあまり真面目にやる気はないが運用考えるとわりとこれで十分だと思っている
あとは、特定の画面からファイルをダウンロードしてきてS3に格納 & dbtで加工処理する工程を自動化した
GitHub Actionsとplaywrightを使ってRPA的な処理をやったのだが、やっぱりplaywrightの体験はとてもよい
dbtもこの時初めて本格的に触った。クエリ書くだけで簡単にデータ加工できるのとても便利
色んな機能やベストプラクティスはまだまだ把握できてない感じするので今後の課題
11月: MLパイプラインの速度改善
MLパイプライン7時間くらいかかってて遅すぎ問題あったので対応した
sagemaker初めまして。結局これはCSVをparquetにするだけで劇的な改善になった。これはブログに書いた。
それはそうと、一番初めにわりとちゃんと勉強した言語がRubyだったので、Pythonも雰囲気で読めるだろうと思ってたが、全然読めないことに驚きだった…
原因はいくつかありそうなんだが、一つは型の情報がないというのが大きいと思う。自分が思ってた以上に普段型の恩恵受けてるんだなと思った
12月: リファクタリング
夏にやったのとは別の場所でリファクタリングが必要な箇所があったので対応
仕事の振り返り(技術以外)
なんと言っても今年一番大きかったのは開発責任者になったこと
10月くらいから引き継ぎとかしつつ12月から本格的に
EM的なことも兼務になるのでピープルマネジメントをする必要が出てくる
これまでピープルマネジメントとは無縁の人生だったし、特にやりたいとも思ってこなかったので責任者の話は正直すごい迷った
ただ、今のチームメンバーはとてもやる気も向上心もあるしいいメンバーに恵まれていると思えたので、そこまでピープルマネジメント自体に思い悩むこともなさそうだしいい経験だからやってみようと思えた
まだ始めたばっかりで試行錯誤してる途中だが、やったらやったでマネジメント術とか組織論とかに興味湧くようになったのでいい傾向かもしれない
このことを妻に話したら、そういうの興味も能力もない人にマネジメントなんかされたくないよねって言われてたしかに…と思ったw
やってみて改めて思うのは、技術とかと違ってできてなくてもできてないということが可視化されにくいなあと
これはハッキリと職能だと思っているので、どこまでできるか分からないがやれるだけやってみようと思う
色々とやれることはありそうだが、最近よく思うのは「ブロックになっているものを取り除くこと」が一番の責務ではないかなと思っている
この辺はもう少し自分の中で整理ついたら別途書き起こしたいお気持ちがある
とは言え、自分自身まだまだ一技術者として成長していきたい気持ちはあるので、2024年は全力で二足の草鞋を履いていこうと思う
仕事以外の振り返り
2023年は1ミリも副業やらなかった。本業全振りだった
自分の副業のスタイルとして、お金というより本業で身につけられないことを副業でやりたいというスタンスなのだが、本業の方が色々とやれることがたくさんあったので本業だけで満足してしまったというのが大きい
2024年もそんな気配が漂っているのだが、収入が1円もないと個人事業主としての経費がもったいないので少しは何かやりたいなと思っている
というわけで、いい感じの副業のお誘い待ってます
あとは読んだ技術書もこれまでと比べて格段に少なかった。多分年間10冊くらいではないだろうか
本業での学びが大きかったのとプライベート充実を掲げていたので全く後悔はないが、2024年はもう少し本業以外のことも勉強したいなと思っている
本読むのもいいけど、久々に手を動かしながら学ぶということをしてみたい
プライベートでは引越しと新婚旅行が大きなイベントだった
ピアノの先生からアップライトピアノを譲ってもらえることになったので、2階建ての戸建賃貸に引っ越した
1階にピアノ置いて毎日弾いている。やっぱ電子ピアノとは全然違う
収納もかなり増えていい感じだし、田舎価格なのでQOL爆上がりになった。もう都会には住めないなあ…
新婚旅行はアイスランドに10日くらい行った
「大自然」という言葉のスケールが違いすぎて本当に行ってよかった
滝のスケールもすごいし、氷河もめちゃくちゃ広大。一方で間欠泉や火山もあってまさに火と氷の国、赤犬と青雉って感じだった。パンクハザードってアイスランドのことだと思ってる
死ぬまでに生でオーロラを見たいという夢も叶った
写真として見ても綺麗なんだが、リアルタイムで揺らいでるの見ると本当に神秘的だった
基本的に花より団子で、旅行には景色よりもその土地ならではの食べ物とかを求めるタイプなのだがそれでも普段体験できない自然の連続でめちゃくちゃ楽しめた
その代わり物価はアホみたいに高い。食べ物は美味しいとこもあったけどコスパはだいぶ悪い
旅行のためにカメラを買ったんだけど、レンズやフィルターなど沼なのがよく分かった
設定とか撮り方によって見え方が全然違うものになるから楽しい
2024年はもっと勉強して色々撮りに行く気でいる