新卒2年目のエンジニアのmaseです。
1年目が終わり気づけば3ヶ月経ってしまいましたが、新卒1年目でやったことを振り返っていこうと思います!
私は、内定者アルバイトで入社してから2024年12月まで STORES 予約 のチーム配属で開発を行い、2025年1月からはプロダクト統合に関わるチームで開発を行っています。 1年間を通して本当にいろいろなことを学ぶことができました。その中でも特に印象深いものについて書いていきます!
STORES 予約 : 外部APIの仕様変更に伴う改修
初めてチームで設計からリリースまでしっかり関わることになったプロジェクトでした。
この開発では、リリースに向けて責任を持って進める「エピックオーナー」を任せてもらいました。
今までは、基本的には任されたタスクをこなす感覚で、全体像の把握などできていなかったのですが、外部APIのドキュメントを読み込んで仕様を理解したり、実装中に気づいたタスクを整理してissueに起こしたりと、自分なりに考えて動くことができました。
仕様や実装で分からないところは質問したり、ペアプロをお願いしたりしながら、最後までやりきることができました。
また、苦手意識のあったレビューにも積極的に取り組み、特に指摘すべき点が見つからないようなPull Requestに対しても、自分なりに内容を読み解いて、理解したことや気づいたことをコメントとして残したりしていました。
そうした積み重ねで少しずつレビューにも慣れ、レビューを通してコードや仕様への理解も深まり、自分のタスクを進める上でも役立つことが増えてきました。
一方で、チームの中で進行をリードしたり、設計の議論にしっかり入っていくのが難しく、頼りきりになってしまった部分もありました。
それでもこの経験を通して、「任されたことをこなす」から「自分で考えて動く」意識へと少しずつ変わってきたと感じています。
STORES 予約 : 予約者のふりがな登録
この開発でもエピックオーナーを任せてもらいました。1度目に任せてもらったときに、うまく立ち回れず悔しい思いをしたこともあり、今回はなんとかやりきりたいという思いで、気を引き締めて取り組みました。
「予約者のふりがなを登録できるようにする」という一見シンプルな機能追加でしたが、必要なタスクを洗い出していく中で、ふりがなに関するデータの種類や設計の複雑さに徐々に気づいていきました。
予約者の名前にはさまざまな出どころがあり、たとえば「顧客として登録された名前」「予約時点で入力された名前」「予約者アカウントで登録された名前」「月謝や回数券を購入したときの名前」など、複数の名前の情報が存在していました。
また、名前の形式も「姓」と「名」が分かれていたり、結合されていたりといった違いがありました。
さらに、オーナーさんが予約や月謝・回数券購入時の入力フォームをカスタマイズできる「予約者情報カスタマイズ」「購入者情報カスタマイズ」といった機能にも対応が必要で、単純に「ふりがなを入れる」という実装だけでは済みませんでした。
この構造を理解するために、チームで何度も調査会を開き、整理して理解を深めていきました。
実装フェーズでは、複雑な部分はペアプロで相談しながら進めたり、既存の大量のレコードにふりがな情報を追加するためのバッチ処理を書いたりと、新しい技術的なチャレンジもできました。
リリース計画も単純にはいかず、たとえば実装したコードのデプロイとバッチの実行タイミングがずれると、データの不整合が起きてしまう状況だったため、リリースの順序を整理し段階的に進めることで、整合性を保ってリリースを行うことができました。
このプロジェクトで、設計からリリースまでオーナーシップを持って取り組むことができたので、かなり自信につながりました。
チームのメンバーに「予約者情報カスタマイズ機能に関しては一番詳しいと思う」と言っていただけたのは、とても嬉しかったです!
複数のプロダクトを横断する統合管理画面
2025年1月に STORES 予約 から、あたらしくプロダクト統合チームに配属され、3月末リリースの複数のプロダクトを横断する統合管理画面の開発を行いました。
今まで STORES 予約 のメンバー以外と関わることがほとんどなく、大きく変わるリリースであることに加えて、期日がしっかり決まっていたので、あたらしく作り上げていくワクワク感もありましたが、うまくやっていけるのか不安の中のスタートでした。
私は、主にフロントエンドを担当しました。チームの先輩と React Router プロジェクトを新規で作ったり、テストライブラリやバリデーションライブラリの選定を行い導入したりもしました。業務でプロジェクトを新規に作成するフェーズはなかなかできることではないと思うので貴重な経験でした!
当初、リモート中心だったのもあり、設計がなかなか固まらなかったり、うまくコミュニケーションが取れなかったりで、Pull Requestをなかなか出せなかったりしていたのですが、2月中旬からはチームで毎日出社が始まり、そこからは怒涛の日々でリリース日まで走り抜けました。
Pull Request数が3月だけで2024年下期の合計Pull Request数を超えていて、やろうと思えばこのスピードで開発できるんだと、自分自身に驚きました!
チームの先輩方に助けてもらいながらではありましたが、当時の統合管理画面のフロントの大部分は自分が担当したと言えるくらい取り組めたと思います。
リリースしてからもそれで終わりではなく、オーナーさんからのフィードバックをいただいて、改善のために動いていて、いち早くオーナーさんの要望に応えられるよう頑張っていました。個人的に、ホームのアプリ一覧がカード形式だったのをリスト表示にも切り替えられるようにした改善を、リリース日当日にできたのは嬉しかったです!
急な毎日出社で体が慣れなかったり、仕様の変更が重なり大変だなと思うときもありましたが、チームのメンバーに恵まれていたおかげで、これまでにないスピード感で成長できて、振り返るととても楽しいと思える期間でした!
イベント参加
開発業務以外でも、さまざまなイベントに参加する機会がありました。
RubyKaigi や iOSDC などの技術カンファレンスに参加して、普段一緒に働いている人が登壇している姿を見て刺激を受けたりしました。
また、自分自身も New Engineering のスピンオフイベントで登壇する機会をいただき、人前で話す経験を積むことができました。準備は大変でしたが、資料作成のコツを教えてもらったり、チームのメンバーからフィードバックをもらえたのでとてもありがたかったです!自分の学びを言語化して発信でき、良い経験になりました。
New Engineering: Spin-off はじまりました!
— STORES Tech (@storesinc_tech) 2024年10月16日
maseが『入社初期のタスクから学んだ、運用されているサービスを開発する上での新しい視点』というテーマでお話しています。https://t.co/lkgVHfz0UV #stores_tech pic.twitter.com/kVBzPbe138
その他にも、逆求人イベントや女性学生エンジニア向けの座談会にも参加しました。今までは学生側だったのが、気づけば話す側になっていて不思議な気持ちでした。
「Tech Girls Camp お茶の水女子大学 × STORES」でTAとして参加する機会もありました。人に教える難しさを感じつつも、学生の方とお話しできてとても楽しかったです!こうした機会がきっかけになって、女性エンジニアがもっと増えていくと嬉しいなと思いました。
おわりに
1年間を通して、気づけばできるようになっていたことがたくさんありました。これからも日々の積み重ねを大切にして頑張っていこうと思います!
ここまで読んでくださり、ありがとうございました!
また STORES ではエンジニアを絶賛募集中です。 ぜひ採用サイトにも遊びに来てください。