はじめに
こんにちは!2024 年の GMO ペパボのサマーインターンシップに参加しましたインターン生のはくです。インターンではホスティング事業部の LOLIPOP! for Gamers チームに配属され、二週間という期間で多くの知識を学び、たくさんの素晴らしい思い出を作ることができました。この記事では、私の感想や学びについてまとめていきます。
この記事を読んでほしい人
- GMO ペパボや LOLIPOP! for Gamers に興味がある方
- アウトプットをしたい方
- 夏のインターンで成長したい方
- 自分の制作物をリリースしたい方
- 楽しくチーム開発を体験したい方
- スキルに自信がなく不安な方
インターンシップの概要
- 業務概要:ペパボのエンジニアと学生チームを組み、以下の 3 サービスへの機能開発を体験する
- 配属部署: LOLIPOP! for Gamers, SUZURI, カラーミーショップ
- 期間: 2 週間(07/29 - 08/09)
- 勤務形態:オフィス出社
私は LOLIPOP! for Gamers に配属され、インターン生 4 人で認証関連のタスクを担当しました。具体的には以下の内容です:
- 基本タスク:ブルートフォース攻撃を防ぐための実装
- 応用タスク:認証方式をマジックリンクから認証コード方式へ変更
このインターンシップに応募した理由と選考過程
応募した理由
このインターンシップを知ったきっかけは魔法のスプレッドシートでした。
そこから以下の理由で応募しました:
- 10 日間のインターンシップであること
- コーディングにしっかり取り組める環境で成長できそうだったこと
- 会社のミッションが自分の考え方に合っていたこと(アウトプットの重要性など)
- 他のインターン期間と重ならないこと
- 時給が発生すること
- BtoC のサービスであること(今まで BtoB のサービスしか経験したことがなかったため)
特に大きな理由としては、昨年の参加者であるりゅうせいさんのインターン体験談を見て、大変魅力を感じたことです。 体験談を読むと、非常に楽しそうな雰囲気と成長できる環境が伝わってきて、ぜひ参加したいと思いました。そして、実際に参加してみると、その雰囲気はりゅうせいさんが書いたものとそっくりでした。今年はバトンを引き継ぎ、私も体験談をアウトプットして、もし来年この記事を見て参加したいと思う人がいたら嬉しいです。
選考
選考フローは、エントリーシート(ES)と面接のみでした。10 日間のインターンシップとしては選考フローが非常に短く感じましたが、倍率は高いため、しっかりと対策する必要があります。
私は ES ではこれまでの経験やアピールポイントをスライドにまとめて提出しました。面接の対策では、自分の経験を整理し、企業理念に照らして自分の過去の経験を振り返ることを意識しました。特に意識したのは、ペパボが最も大切にしている 「みんなと仲良くすること」、「ファンを増やすこと」、「アウトプットすること」 の 3 点です。
参考 ・GMO ペパボ 企業理念
面接本番では、2 人のエンジニアの方が対応してくれました。最初は緊張しましたが、エンジニアの方々が優しく対応してくれたおかげで、次第に緊張が解け、自分の考えていることを楽しく話すことができました。雰囲気がとても良く、まるで友人に趣味を話しているような感覚でした。
インターンシップで期待していたこと
インターンシップで期待していたことは主に 2 点ありました。 まず 1 点目は、GMO ペパボを内部からもっと知りたかった点です。昨年のりゅうせいさんの体験談を見て、会社の実際の雰囲気を感じてみたいと考えていました。また、これまで自分は BtoB の会社でしかインターンに参加したことがなかったため、BtoC のサービスに触れてみて、その違いを知りたかったのです。次に 2 点目は、他のインターン生から刺激を受けながら、自分の力を試し、成長したいという点です。今回のインターンシップは倍率が高いため、参加するメンバーは技術力が高く、志の高い人ばかりだと思い、彼らからさまざまな分野の知識を学びたいと考えていました。また、自分の力を試し、チームで楽しく成果を残したいという期待もありました。
結果的に、期待していたことは 120%達成されました。
インターンシップ当日
1 日目
初日はオリエンテーション、貸与 PC のセットアップ、環境構築を行いました。オリエンテーションでは marin さんにオフィスを一周案内していただきました。まず感動したのは、無料でソフトドリンクが飲めることです。しかもソフトドリンクの種類が豊富で、カプチーノ、抹茶ラテ、牛乳などさまざまなものがありました。これでインターンシップへの期待が高まり、たくさん利用しようと決めました。実際、初日から最終日までチームの 4 人で 1 日に 4 回くらい一緒にソフトドリンクを取りに行き、飲みながら雑談をすることで、チームの仲が深まりました。
初日は都合がつかない人が 2 人いたので、インターン生 9 人で集合写真を撮りました。
お昼はチームのパートナーさんと一緒に会社の近くの中華料理店に行きました。とても美味しく、ここでもインターンシップへの期待がさらに高まりました。
環境構築については、私たちのチームは速やかに終えることができ、初日の午後には基本タスクの要件定義に入ることができました。要件定義の際は、セキュリティに詳しい同じチームのインターン生に多くの質問をし、非常に勉強になりました。翌日から実装に入れる見込みで、インターンシップへの期待が最高潮に達しました。
2~5 日目
基本タスク(ブルートフォース攻撃を防ぐための実装)は、2〜5 日目で終わらせることを目標に、チーム全員で時間を意識しながら協力して要件定義と実装に取り組みました。要件定義では、セッションに回数制限と時間制限を設け、それらをログとして残すことにしました。Protocol Buffers、sqlc、runn など、初めて触れる技術ばかりで、学びながらにぎやかに進めた一週間でした。Go の知識が浅かったため、同じチームのインターン生に多く質問し、その結果、Go の理解が一気に深まりました。また、git についても曖昧だった部分を同じインターン生の助けを借りて、rebase などに対する理解が向上しました。自分が期待していたチームメイトからの刺激を受けながら成長する経験ができ、自分もチームのために頑張ろうとモチベーションが上がりました 🔥
チームでの協力のおかげで、5 日目に基本タスクの実装が無事に完了しました。5 日目の夜はオフィスでパートナーさんたちと一緒に一週間の終わりを祝う打ち上げをし、Switch でみんなで協力するゲームを楽しみました。協力しながら遊ぶゲームのおかげで、さらに絆が深まった気がしました。
6~9 日目
2 週目は応用タスク(認証方式をマジックリンクから認証コード方式へ変更)に取り組みました。チームでシステムの後方互換性を考慮して、既存のコードを変更せずに新しく関数を実装しました。また、チームで「認証コードの検証回数を制限してもアカウントの登録に対するブルートフォース攻撃は防げるが、メールの送信は防げない」ということに気づき、追加のタスクとして Cloudflare Turnstile を導入することにしました。
実装の中で最も苦労したのはコンフリクトの解決でした。チーム全員が頑張ってコードを書いて実装を進める一方で、コンフリクトの発生も止まりませんでした。ここで反省したのは、タスクやプルリクエストをもう少し小分けにするべきだったという点です。
この一週間を通じて学んだこととしては、Next.js、Go、Protocol Buffers を用いた Connect による通信、ワンタイムパスワード(OTP)による認証フローなどの理解がかなり深まりました。
また、フロントエンドのデザインについては、デザイナーさんとコミュニケーションを取りながら実装するのが新鮮で、貴重な経験となりました。パートナーさんの chun さんには本当に大変お世話になりました。
タスクやコンフリクトが増える中で、結局予定されていた 9 日目までに実装を終えることができませんでした。そこで、10 日目が勝負となりました。
2~9 日目の他のイベント
インターンシップ期間中、ありがたいことに毎日さまざまなイベントが用意されていました。おかげで、実際にペパボで働いた時の雰囲気を感じることができました。
- 人事面談
- 配属事業部や今年入社したパートナーさんたちとのランチ会
- CTO とのトークセッション
- 配属事業部のパートナーさんたちの進捗報告会に参加し、リアルな業務の流れを体験
- 毎日の困ってること相談
- お茶会
- etc…
お茶会は、インターン生同士や先輩パートナーの皆さんとお菓子を食べながら気軽に雑談を楽しむ場です。この場を通じて、他のチームのインターン生とも交流することができ、皆さんの素晴らしい経歴やスキルセットに大いに刺激を受けました。また、異なる価値観に触れることで視野が広がったと感じました。さらに、先輩パートナーの皆さんには、ペパボでの実際の仕事やキャリアについて相談する機会をいただき、大変参考になりました。
毎日夕方に行われる「お困りごと相談」では、donokun さんに大変お世話になりました。要件定義から実装に至るまでさまざまなアドバイスをいただいたおかげで、開発をスムーズに進めることができました。
10 日目
実装パート
最終日はコンフリクトを解決するために多くの時間を費やしました。最終的に発表の 10 分前になってようやく動作するものの動画を撮ることができました。時間が足りなかったため、最終的にバックエンドとフロントエンドの繋ぎや Cloudflare Turnstile のフロント側の調整が完了せず、パートナーさんの nacal さんに引き継ぎをお願いすることになりました。悔しい気持ちもありましたが、チーム全員が全力で取り組み、たくさんのプルリクエストと Issue を残し、やり切った感がありました。
発表パート
成果発表会で、午前中に作成した資料を発表しました。発表では以下の内容を説明しました。
- 自己紹介およびインターンシップに期待していたこと
- インターンシップでやったこと
- インターンシップで学んだこと・成長したこと
作成したフロントエンド側の画面は以下の通りです。
発表会は和やかな雰囲気で進行され、オフラインで集まったパートナーさんは 30 人以上いました。インターン生の皆さんの発表はどれも素晴らしく、非常に楽しい時間でした。中でも、オリンピックを題材にした発表がとても面白かったです。
打ち上げ
発表が終わった後はピザパーティを行いました!今後のキャリアの話やペパボについてなど、多くの有意義な話ができました。また、チーム同士で振り返りを行い、本当に良いチームで楽しかったと感じました。ピザパーティが終わった後、二次会として近くのバーに行きました。
感想
今回のインターンシップに大変満足しています。ここでの経験を通じて感じたことをまとめてお伝えします。
まず、ペパボのパートナーの皆様はどなたも技術力が高く、温かい方ばかりで、ペパボという職場が楽しく成長できる場所であると強く感じました。特に、社員の皆様がお互いを尊重し合い、協力し合っている姿勢には感銘を受けました。
また、インターンシップを通じて、技術力とチーム開発力を大いに向上させることができました。具体的には、Docker、Go、Next.js、Protocol Buffers など、バックエンドからフロントエンドまで幅広い技術に触れ、学ぶ機会を得られました。これらの経験は、今後のキャリアにも大いに役立つと思います。
さらに、大きなやりがいを感じることができました。引き続き作業を担当してくださった nacal さんのおかげで、自分たちが取り組んだ認証画面が本番環境にリリースされ、多くのユーザーがこの画面を通じてアカウントを作成し、サーバを立ち上げていく様子を想像すると、とても感慨深いです。nacal さん、本当にありがとうございました。
また、同じ業界を志す優秀なインターン生たちと楽しく交流し、新たな友人を作ることができたのも大きな収穫です。
そして、「アウトプット」の重要性を改めて認識することができました。毎日日報を書くことで、自分の学んだ知識の理解を深めることができましたし、他の人の日報を読むことで、自分が気づいていなかったことを学ぶこともできました。やはり「アウトプット」は常に意識していかなければならないと再認識しました。
おわりに
最後に、今回メンターとして支えてくださった donokun さん、yukyan さん、そしてペパボのパートナーの皆様、一緒に過ごしたインターン生の皆さんに、たくさんの刺激と学びをいただき、非常に充実した 2 週間を過ごせたことを心から感謝いたします。本当にありがとうございました!