見出し画像

エンジニアが5ヶ月で5つの部署を回ってみた

こんにちは!
2023年にGMOペパボに新卒入社し、エンジニアをしているyumuです。

この記事は🎅GMOペパボエンジニア Advent Calendar 2023の6日目の記事です。
昨日の記事はkosukeさんのフォトグラファーがNAS導入を検討して、購入した話でした。

さて、ペパボでは、新卒研修の一環として「サイクルOJT」という独自の取り組みを行っています。
一般的に、OJT(On-the-Job Training)は配属された部署で行われ、実務経験を通じて職場で必要な技能や知識を学ぶ訓練方法です。
しかし、サイクルOJTでは配属前に複数の部署をローテーションしてOJTを行うことで、特定の部署に限定されない幅広いスキルと視野を獲得することを目指しています。

今年のサイクルOJTでは、4週間ごとに異なる部署に移動しました。
このような短期間に色々な部署で実務経験を積む機会は珍しいと思うので、この経験から得た学びや感想を書きます。


それぞれの部署で取り組んだこと

GMOグループ合同の研修やペパボの基礎的な研修が終わった8月からサイクルOJTがスタートしました。
毎月取り組んだ内容についてテックブログを書いているので、詳細はそちらをご覧ください。

8月:技術部データ基盤チーム

技術部は事業部を横断する組織であり、その中でもデータ基盤チームは「bigfoot」と呼ばれるデータ基盤の開発を主に担当しています。

私は、多腕バンディットアルゴリズムを用いて自動的なA/Bテストを可能にするgemである「bigfoot-bandit」の導入プロセスを簡略化することに取り組みました。
bigfoot-banditはSUZURIminneで既に使われていますが、新しい機能に導入する際のステップが多く時間がかかってしまうことが課題でした。
導入プロセスの簡略化により、社内でのデータ活用をより推進するための基盤を整える
ができました。

このプロジェクトを通じて、Gemの開発方法やBigQueryに関する知識を深めることができました。

9月:EC事業部

EC事業部では、わずかな設定変更だけでユーザーの行動ログを容易に収集できる体制を構築しました。
これにより、Google Analyticsなどの外部サービスに依存しない、独自のロギング機構を実現しました。

また、そのロギング機構を用いて、カラーミーショップのAI関連機能の使用状況を詳細に計測できるようになりました。
これらのデータは、将来のAI機能の開発と改善において貴重な情報源となります。

このプロジェクトで私はフロントエンドを担当し、Vanilla JSとTypeScriptを組み合わせてViteを使用したnpmパッケージを作成しました。
フロントエンド開発はほとんど経験がなかったため、非常に良い経験になりました。

10月:ホスティング事業部

ホスティング事業部では、ロリポップヘテムルの管理画面のバックエンドであるRailsアプリケーションを、VMからコンテナ化し、Kubernetesに移行しました。

最初は現状のアプリケーションの役割や構成を把握するところから始め、コンテナの作成、Kubernetesマニフェストの作成、動作確認、そしてモニタリング周りの整備といった手順で進めていきました。

インフラ初心者なので少し不安でしたが、SREチームの皆さんに助けられてスムーズに進めることができ、インフラが面白いと感じるようになりました。

11月:SUZURI事業部

SUZURI事業部では、モバイルアプリのパーソナライズプロジェクトに取り組みました。
このプロジェクトでは、アプリ内の各画面で表示されるグッズをユーザーごとにカスタマイズして最適化することを目指しています。

具体的には、複数のグッズ推薦アルゴリズムを比較検討するためにbigfoot-banditの導入を行いました。
また、推薦アルゴリズムの一つとして類似画像検索機能の拡張にも取り組みました。

bigfoot-banditの導入には、データ基盤チームやEC事業部でのOJT経験が役に立ちました。
類似画像検索機能ではVertex AIやApache AirflowのDAGを使用しているため、これらの技術に関する知識が必要になりました。

12月:minne事業部

minne事業部では、Seller Domainに所属し、作家さんが使用する画面の新機能開発に取り組んでいます。
Railsアプリケーションなので比較的馴染みがありますが、未経験のGraphQLを使用しているため勉強しながら開発しています。

まだテックブログは公開されていませんが、完成を楽しみにしていてください!

サイクルOJTをして良かったこと

ここからは、5ヶ月に渡るサイクルOJTに取り組んでみて良かったことについて書いていきます。

未経験の技術領域について学べた

一番は、短期間で多くの技術領域に取り組めたことです。
私の得意分野はRailsとバックエンドですが、前述の通り、Railsに限らず様々な技術に挑戦しました。
最初の頃は自分にできないことが多すぎて愕然としましたが、最終的にはデータ基盤の整備、フロントエンド、インフラといった幅広い知識を得ることができました。
特にインフラ周りのログを解析する知識はどの部署でも役立っていて、本当に経験できてよかったと思っています。

人脈が広がった

色んな部署に関わったことで、どの部署の人にも気軽に声をかけることができるようになりました。
『〇〇に関して、この部署の知見を知りたい』という時に、誰に相談すれば良いかわかるだけで質問するハードルが下がります。
特に、最初にデータ基盤チームでOJTをしたことで、その後のデータ活用タスクで積極的に相談しながら進めることができました。

事業部横断的な知識が身についた

〇〇事業部で得た知見を、××事業部で活かせる、という機会が多くありました。
例えば、minneでcolimaを使った環境構築を経験していたので、EC事業部でcolimaを用いた環境構築を円滑に進めるのに役立ちました。
また、SUZURIでデータ活用を進める際に、minneでのデータ活用事例を知っていたのでそれを参考にして設計を行うことができました。

いろいろな仕事の進め方を知れた

部署ごとに仕事の進め方が異なるので興味深かったです。

例えば、minne事業部ではスクラム開発を採用しており、スクラムイベントのMTGが頻繁にあります。
しかし、MTG中に機能の仕様をある程度決定し、見積もりも細かく行うため、実装が人によって大幅に変わることは少なく、期限の遵守もしやすかったです。
一方、SUZURI事業部では、より自分の判断で仕事を進めることができ、『自分に任せてもらえているのだからがんばるぞ!』というモチベーションを持つことができました。

仕事の進め方の多様性を知ったことで、常により良い進め方を模索できるようになりました。

まとめ

結論として、サイクルOJTをやらせてもらえて本当によかった!と思っています。
9ヶ月の研修がもうすぐ終わりますが、学んだことを忘れず、配属後もいい意味で部署に染まらずに、サイクルOJTで他の事業部を経験したからこそわかることを共有していきたいと思っています。

2024年もがんばるぞ!!!!!!🐲

この記事が気に入ったらサポートをしてみませんか?