2023年の振り返り


こんにちは。もうすでに 2024 年に入ってしまいましたが、2023 年も毎度のことながら振り返りを残します。年次の振り返りはなんとか続けられていて、かれこれ 4 回目となりました。

2022年の振り返り 技術と仕事と生活

2022年ももうすぐ終わりですね。毎度のことながら今年も振り返りブログを残します。今年は技術的なことがらだけでなく、仕事や生活についても触れます。

2022年の振り返り 技術と仕事と生活

2021年 ソフトウェアエンジニアとしてできたことと振り返り|miya

昨年に引き続き、備忘録として今年も振り返りを残そうと思う。前回の記事はこちら。 独立 今年起きた最も大きな変化として、3年お世話になったタイミーを退職しフリーランスとして独立したことがある。2021年の前半はかなりの時間悩んでいた。当時の経緯としてはこちらにまとめた。 現在4社で色々な立場で関わらせてもらっている。独立にあたった目的は何点かあるが、概ね満たすことができ楽しくやれていて、このトピックだけで結構書けそうなので別で記事にしようと思っている。この記事では技術的な取り組みについて記載していく。 触った技術 言語:TypeScript, Ruby, Go フレームワー

2021年 ソフトウェアエンジニアとしてできたことと振り返り|miya

2020年 ソフトウェアエンジニアとしてできたことと振り返り|miya

エンジニアとして働き始めて2年目が過ぎた2020年。備忘録として今年の振り返りを残しておく。今年もたくさんの挑戦機会をいただくことができて、1年前と比べて成長を実感できたと思う。 立場 2018年からタイミーでソフトウェアエンジニアとして働いています。主にRails/AWSで開発をしています。 この記事では主にタイミーでの経験について書きますが、会社を代表するものではないことを先に記します。 触った技術 Ruby, Rails:リリースから2年程度のプロダクトの保守や、APIモードでのプロダクトの0→1、外部API(Stripe, Hubspot)との連携など Go:他の方が作

2020年 ソフトウェアエンジニアとしてできたことと振り返り|miya

フリーランスから正社員に戻った#

2 年弱ほどフリーランスとして複数社に関わる働き方を続けていましたが、2023 年はその稼働先の 1 社に正社員として入社しました。現在は副業等もせず 1 社フルタイムで働いています。 昨年の振り返りでは以下のように記載していました。

自分はフリーランスとしての働き方を「キャリアの試行錯誤のために、自身の責任範囲内で自由に仮説検証できる場」として捉えていて、意図的に複数社並行して稼働していました。そのあたりはこの記事に書きました。

フリーランスエンジニアになって半年が経った| miya | note

上記の記事ではフリーランスという働き方の良さを以下のように捉えています。

  • 時間的・金銭的余裕を作れる
  • 複数のチームに参加することにより幅広く浅く技術を学びやすい

今でもその感覚は変わっておらず、ある程度この働き方を楽しみました。しかしそのトレードオフとして一つのプロダクトを長く保守することで得られる知見やシステム全体のアーキテクティング能力などは得づらいと考えており、少しずつこちら側にチャレンジしたいと感じ始めています。並行で稼働していた会社さんに少しずつ契約を解除させてもらい、いまは週 4 稼働で 1 社で働いています。

Ref: https://mh4gf.dev/articles/2022-summary

ここで記載した通り、一つのプロダクトを長く保守することで得られる知見やシステム全体のアーキテクティングの経験を積みたいと思い、3 年以上腰を据えて取り組める大きな課題を探していました。
そんな中出会ったのが後述する ROUTE06 で、まず業務委託で少ない日数から関わり、その後正社員として入社しました。2022 年 8 月から週 1、 9 月から週 2、 11 月から週 4、 そして入社の 2023 年 2 月から週 5 というわかりやすいほどのコミットメントシフトの形です。最初から「入社の可能性を前提にお互いのマッチングを測りながら業務委託をさせてほしい」と伝えていたのですが、その意図を汲んで定期的な面談で丁寧に期待値の調整をしていただけたのもありがたかったです。

一度フリーランスとして業務委託で働き、その稼働先にコミットメントシフトするという転職活動方法は自分にとってかなり良い体験でした。採用候補者と企業のマッチ度を見極めるには、やはり一定期間一緒に働いてみるのが最も測りやすいと考えています(もちろん全ての人がやるべきとは考えていません)。もし次回転職するとしてもまず辞めてからフリーランス期間を挟むと思います。

ROUTE06 への入社#

前述した通り 2023 年 2 月から株式会社 ROUTE06に入社しました。
ROUTE06 はエンタープライズ企業のデジタルトランスフォーメーションを支援するプロダクトサービスおよびプロフェッショナルサービスを提供している会社です。いくつかのプロダクトを運用していますが、自身は現在クラウド EDI を中心とした商取引 DX に注力しプロダクト開発を進めています。
入社のタイミングで Twitter Space で不定期配信しているルートシックスラジオに出演させてもらいました。

そろそろ 1 年が経つためそのタイミングで入社エントリも書こうと思いつつ、入社の決め手を簡単にだけ紹介すると以下の通りです。

  • エンタープライズ企業がデジタルトランスフォーメーションを進めるために大手 SIer が引き合いに出される中で、スタートアップにも関わらず着実に評価されているプロフェッショナルサービスの強さ
  • 単純な自動化・デジタル化だけでは解決できない複雑な業務フローに立ち向かうチャレンジングなプロダクト
  • GitHub を社内ドキュメント管理にも使うなど、エンジニアリング文化を全社に適用した尖った組織

2023 年の業務としては 1 つのチームのテックリードを担い、Web フロントエンド領域の技術リスクの軽減に取り組んだ一年でした。
「商社業務という複雑な業務ドメイン」 x 「個別カスタマイズ可能なマルチテナント SaaS を実現するためのアーキテクチャ」 x 「Web という領域のそもそもの複雑さ」 という複数の複雑さの掛け合わせに立ち向かい、日々楽しく過ごしています。
成果として出せるアウトプットはまだまだ少ないですが、フロントエンド領域の技術選定の記事を書いたのでそちらを紹介します。

Plainのフロントエンドにおける技術選定(2023年8月版) - ROUTE06 Tech Blog

ROUTE06 でソフトウェアエンジニアをしている @MH4GF です。 ROUTE06 ではエンタープライズ向けビジネスプラットフォーム「Plain」を開発しています。この記事では 2023 年 8 月に Plain クラウド EDI の Web フロントエンドで採用している技術について、その選定理由をまとめました。 現代の Web フロントエンド技術は領域ごとに選択肢が多く、プロダクトに最適な技術選定をする上で検討事項が多いと感じます。この記事がフロントエンド技術選定において参考になれば幸いです。 前提 プロダクトの特徴 技術選定に影響するプロダクトの特徴を箇条書きでまとめます。 エンター…

Plainのフロントエンドにおける技術選定(2023年8月版) - ROUTE06 Tech Blog

チームで蓄積している ADR をベースに全体的な要点をまとめた目次のような記事で、ある程度反響があったのでよかったと思っています。2023 年 8 月版としており、今もどんどん状況は変わってきているのもあって、その後の変化も記事にできるとよさそうです。

また、上記記事をきっかけに Findy さんからお声がけいただき、モノレポのイベントで登壇させていただきました。

学習しながらアーキテクチャを進化させていくためのモノレポ

2023/10/06 モノレポへの移行 LT -生産性の高いアーキテクチャに向けた第一歩- で発表したスライドです。 https://findy.connpass.com/event/296339/ 参照したURL - <a href="https://speakerdeck.com/m&hellip;

学習しながらアーキテクチャを進化させていくためのモノレポ

CfP 等ではなくお声がけをいただけた形での登壇は初めてでとても嬉しかったです。登壇は自分にとっては登壇日まで長期的に体力を削られる活動なのでキツさはありますが、メリットも大きいので今後も無理しない範囲で続けられると良いと思っています。

2023 年触った技術#

毎年の差分を確認するためにその年触った技術を振り返っており、2023 年も列挙します。

  • フロントエンド: TypeScript, React, Next.js(Pages Router / App Router), Chakra UI, Tailwind CSS, Kuma UI, testing-library, StoryBook, jest, vitest, Playwright, msw, graphql-codgen, urql, Vite, Biome, pnpm
  • バックエンド: Ruby, Rails, graphql-ruby, Go
  • インフラ: CloudFront, CloudFront Function, Amplify Hosting, AWS WAF, Amazon Cognito, Terraform
  • そのほか: GraphQL, GitHub Actions

触った技術としては昨年とはあまり変わらず、強いて言えば Biome や pnpm などのツールチェインが増えています。
昨年はフロントエンド : バックエンド : インフラ = 7 : 3 : 0 程度でしたが、今年はフロントエンド : バックエンド : インフラ = 7 : 1 : 2 程度でした。バックエンドを書くことはほとんどなく、インフラ周りは SPA のホスティングのためのリソースを触る形となりました。
昨年あたりからガッツリフロントエンド専門になってきているのは 3 年前からは想像できませんでしたが、数多くの変革が起きる昨今のフロントエンド領域はとても面白いです。

TypeScript / React#

昨年に引き続き TypeScript と React を主戦場にしています。React については Next.js が主流ではあるものの、業務ではプロダクトの性質と開発体験を踏まえ Vite による SPA を選択しました。ブラウザ上での動作だけを考慮すればよくなったり、Suspense によるコンポーネント設計がしやすいというメリットを享受できていますが、一方 Vite だとチャンク分割がうまくいかず大きなアセットにまとまってしまっている課題に苦労しています。来年はバンドラの挙動を理解しつつこの問題に蹴りをつけたいところです。

また Next.js も引き続き動向は常に追っており、今年は Server Actions を利用した Web サイトを作ったりしました: github-nippou の Web 版を App Router + Go + Vercel で作った
とはいえ to B アプリケーションを構築するとなると App Router の目指す方向や提供機能はちょっとずれているのかも?と思ってきていたりはするのですが、Web の最前線にいるフレームワークであることは間違いないので、来年も引き続き動向を追っていくことになると思います。

また pnpm workspace を利用したパッケージ分割にも関心があり、登壇の機会をいただいたのでその内容で発表しました。(誘ってくれたReact おじさんありがとう)

pnpm workspace実践ノウハウ

~ 秋のエンジニア大交流会 & LT会!!~( https://devguil.connpass.com/event/290596/ )で発表したセッションのスライドです。 サンプルリポジトリ: https://github.com/MH4GF/pnpm-workspace-knowhow-sample

pnpm workspace実践ノウハウ

SPA に伴うインフラ#

今年は久々に Terraform を書いた年でした。SPA をホスティングするための CloudFront (+ Function), S3 などのリソースを触ることが多かったです。新しく追加された import ブロックや moved ブロックの存在を知り、めちゃくちゃ便利やん!となりました。
エンタープライズ向けプロダクトでの SPA を開発していることもあり、ある程度堅めのセキュリティやキャッシュの設定を意識することとなったのは勉強になりました。この辺りは近いうちに記事に起こしたいところです。
CloudFront Functions も色々できて便利ですね。

hiroppy さんとの週次での会話#

ROUTE06 社に技術顧問として参加してくださった @hiroppy さんと「hiroppy さん わいわい相談会」を開催しており、週次での会のファシリテーションを半年ほど担当していました。フロントエンドメンバーが集まって技術的な悩み相談をしたり、ADR の各意思決定を 1 から読み直しては最近どう?みたいな話をわいわいする会です。
この会は社内フロントエンドメンバーの福利厚生的な立ち位置で、hiroppy さんに困りごとをなんでも相談できることがメリットです。ただ、この会のメリットを最も享受したのはファシリテーションを担当させてもらった自分だったと思っています。 hiroppy さんの助言に対して自分の理解が追いついていないことをその場で確認したり、自分の言葉として説明できるようにする過程でかなり学習が進んだ気がします。この機会をいただけたことは本当にありがたかったです。

OSS コントリビューション#

2023 年は 61 件の PR を投げていました。2022 年は 31 件なので、ほぼ倍増した形です。

https://github.com/search?q=created%3A2023-01-01..2023-12-31+author%3Amh4gf+-owner%3Amh4gf++is%3Apublic&type=pullrequests

mdn/translated-content, biomejs/biome, kuma-ui/kuma-ui, masutaka/github-nippou, vitejs/docs-ja, vitejs/vite, storybook/test-runner, rossjrw/pr-preview-action, reg-viz/storycap などにコミットすることができました。

ただ大半がドキュメントへのコントリビュートとなり、コードでの貢献はまだ難しいと感じています。ここは長いこと悩んでいるところですが、できる範囲で貢献を続けていきたいところです。

記事執筆#

2023 年は 19 件の記事を書きました。2022 年は 14 件なので微増しています。

Articles | Hirotaka Miyagi

My personal website.

記事を書くことはかなりレバレッジの効く活動だと改めて感じています。自身のブランディングという側面ももちろんありますが、記事に起こす際に情報を整理する過程でより良い解決策が見つかることもあり、学習が大きく進むことを実感しています。
2024年は意識して記事の公開回数を増やしていきたいと思っています。

Sony α7CII を買った#

生活の話題です。直属のマネージャーがかなりのカメラ趣味ということもあり、1on1 などで色々聞いているうちにフルサイズミラーレスが欲しくなってしまい買いました。フルサイズすごい。楽しい。

α7cii + TAMRON 20-40mm F/2.8|Hirotaka Miyagi

439字 · 4枚の画像

α7cii + TAMRON 20-40mm F/2.8|Hirotaka Miyagi

2023/12/2-3 広島旅行|Hirotaka Miyagi

302字 · 14枚の画像

2023/12/2-3 広島旅行|Hirotaka Miyagi

こういう旅行ログも残していきたいなーと思っています。死ぬ間際の走馬灯に流す思い出を増やしていきたいですね(?)

2024 年#

2023 年を振り返ると想像以上に ROUTE06 での内容が大半を占めていました。フリーランスでの技術的な武者修行期間が終わり、2023 年からは 1 つの大きな課題に腰を据えて取り組むことを目的としていたので、その意味では納得感がある結果でした。
2024 年も事業やプロダクトを伸ばすためにできることをとにかくやっていきたいです。テクノロジーマネジメントを中心に据えていますが、必要に応じてプロダクトマネジメント・エンジニアリングマネジメントに手を広げることもあり得ると思っています。

2023 年関わった皆さん、改めてありがとうございました。2024 年もよろしくお願いします!