はじめに
はじめまして!2025年のGMOペパボサマーインターンに参加しましたインターン生のマッチーノです!インターンシップでは事業開発部のAlive Studioに配属され、9日間でたくさんの経験や学びを得させていただきました。この記事では、アウトプットも兼ねてインターンシップでの体験や感想を書き留めていこうと思います!
この記事を読んでほしい人
- GMOペパボや Alive Studio に興味がある方
- 夏のインターンで成長したい方
- 楽しくチーム開発を体験したい方
- ライブ配信やVTuber向けのプロダクト開発に興味がある方
インターンシップの概要
- 業務概要:機能改善や新機能の開発
- 配属サービス:
- 期間:9日間(09/08〜09/19 10:00〜19:00)
- 勤務形態:原則出社
- 参加人数:
- Alive Studio:4人(自分はここ!)
- LOLIPOP! for Gamers:2人
- SUZURI:4人
- カラーミーショップ:4人
- 待遇:
- Claude Code 使い放題!
- MacBook Pro 貸与(Windowsも可)
- ランチ無料
- ドリンク飲み放題
- 交通費宿泊費支給
- 時給:1,700円
インターンシップに参加するまで
参加するまでの経緯や応募理由について書いていきます!
応募した理由
GMOペパボのサマーインターンを知ったきっかけは、大学でのインターン説明会でした。そこからインターンの内容やGMOペパボの事業内容について調べ、「就活が本格化する前に実務を経験したい」 という思いと、「プロダクトやミッションが自分の軸と合致している」 と感じたことが決め手となり、応募に至りました。
選考フローは書類選考と面接のみで、選考スケジュールは、
7/10 書類提出 → 7/14 書類選考通過 → 7/23 面接 → 7/25 合格
と、書類提出をギリギリに出したことも相まってかなり短い期間での選考だったと思います。他社のインターンシップ選考がひと段落したタイミングで応募を受け付けていた点も、応募理由の一つです。
面接
面接は、人事の方、SUZURIのエンジニアの方、Alive Studioのエンジニアの方の3名とオンラインで行いました。特に印象に残っているのは、書類選考で書いたプロダクトについて深く掘り下げられたことです。開発で苦労した点や技術的な判断について、次々と質問をいただきました。自分の中ではまだ言語化できていなかった部分を的確に突かれ、面接を通して自身の経験を再発見する気付きの多い時間になりました。
インターンシップで期待していたこと
晴れて合格となった後、Alive Studioへの配属が決定しました。事前のチームミーティングでいただいた「ペパボでしか経験できないことを経験してほしい」というお話を受け、自分の中でこのインターンで成し遂げたいことを明確にしました。
-
一つ目は、「エンジニアとして働くとはどういうことか」を自分の言葉で説明できるようにすること。 実務経験が重要とは漠然と聞くものの、それが具体的にどのような行動や思考を指すのかを今回のインターンを通して肌で感じ学びたいと考えました。
-
二つ目は、GMOペパボという企業の「空気感」を理解すること。 どんなカルチャーのもとで、どのようなコミュニケーションを取りながらプロダクトが作られているのか。企業情報を調べるだけでは分からない現場の雰囲気を、この身で体験したいと思いました。
インターン期間中は、この二点について特に意識して行動することに決めました。
インターンシップのタスクについて
インターンシップで取り組んだタスクの内容と、その取り組み方について説明していきます!
インターンシップのタスク紹介
概要
Alive Studioでのインターンシップは、4つの開発タスク(ランキングボード装置・検索サジェスト機能・オムライス装置・YouTubeコメント投票装置)の中から、2人1組で2つを選んで実装するという形式でした。2週間という期間で最大限Alive Studio開発を体験するのにはピッタリなタスク構成だったと思っています。私たちのチームは 「オムライス装置」 と 「YouTubeコメント投票装置」 の開発を担当しました!
ここでAlive Studioについて簡単にご紹介します。Alive StudioはVTuberをはじめとするライブ配信者向けの配信画面デザインツールで、現在はOBS(配信者がオンライン配信や録画を行うためのソフト)上で動くプロダクトとなっています。OBS上でWebページを表示できる機能を活用することで、配信画面を賑やかにする背景や小物・視聴者と楽しむための様々な装置を簡単に導入できるようになっています。
要件
オムライス装置とYouTubeコメント投票装置、2つのタスクの主な要件は以下の通りです。
- オムライス装置
- コントロールパネル上で書いた絵がリアルタイムでオムライス画像に反映される
- 描画領域を制限する(皿の外には書けない)
- YouTubeコメント投票装置
- YouTubeのコメントから部分一致で投票を集計する
- コントロールパネル上での変更や集計結果がリアルタイムで投票画面に反映される
- YouTube未連携時や文字数制限など特定の条件下では投票を始められないようにする
実際の実装
1 日目
初日はもっぱらPCのセットアップとAlive Studioの環境構築に追われました。振り返ると、Homebrewのインストールから始めるまっさらな状態からのスタートだったため時間がかかりましたが、実際の構築自体はこの規模のプロダクトでありながらdocker composeを数回実行するだけで完了し、洗練された開発環境だと感じます。
また、タスクの説明もこの日に受けました。正直なところ初日に全てを理解できたわけではありませんでしたが、実装を進める中で一つひとつの説明が繋がり、理解が深まっていきました。
2~5 日目
2日目からはオムライス装置の実装に着手しました。既存の「フリップ」というお絵描き装置を参考にすれば、早めに完了できるだろうと見込んでいました。しかし、すぐに予期せぬ壁、「オムライス画像が上書きされる」という問題にぶつかります。
Alive StudioではLocal StorageやIndexedDBを駆使してコントロールパネルと配信画面を同期しています。既存装置のフリップでは描画ライブラリであるFabric.jsで生成した描画データ本体はIndexedDBに保存し、ペンを離したタイミングのような描画更新のきっかけとなるイベントはLocal Storageで通知する、という仕組みになっていました。この仕組みをそのまま流用したところ、IndexedDBから表示しているはずのオムライス画像の上に、空の背景が描画されてしまったのです。
これに関して2人で悩んでいたところ、サポーターのてつをさんから「IndexedDBで配信しているjsonの中身を見てみるといいかも」というアドバイスをいただきました。早速データを展開してみたところ、Fabric.jsが仕様としてbackgroundImageプロパティを自動的に付与していることが分かりました。そこで、この項目に明示的に空(undefined)を指定する一行を追加したところ、線だけをオムライスの上に正しく描画できるようになりました!こうして最初のタスク、オムライス装置が完成しました。
6~8 日目
週が明け、6日目からはYouTubeコメント投票装置の実装に取り掛かりました。この装置では、もう片方のチームが実装していた「ランキングボード装置」のコードを参考にすることができ、思わぬ恩恵を感じながらスムーズに開発を滑り出すことができました。
しかし、ここからは複数の壁が同時に立ちはだかりました。特に印象的だったのは、キーワード判定ロジックの思わぬエッジケースです。当初の実装では、例えば「東京都」と「京都」を投票のキーワードにした場合、「東京都」というコメントが来た際に、文字列に含まれる「京都」にも反応してしまい、意図しないカウントが発生していました。最終的には裏ロジックとして先に処理された方で集計するというロジックにしましたが、自分では思い至らなかった視点をサポーターの方に示していただき、仕様を深く考察することの重要性を学びました。
その他にも、「集計結果に応じてグラフのアニメーションを動的に変化させるCSSの調整」や、「YouTubeコメントを二重に取得しないための状態管理」など、多角的な課題に取り組みました。この過程で受けたコードレビューは多くの学びとなりました。特に命名規則の重要性はもちろんのこと、たとえClaude Codeに実装を任せたとしても、その処理の流れを自分の言葉で説明できないまま進めてしまうことの危険性を痛感しました。そして、サポーターの方々からの的確な指摘を受けながら、なんとか実装を進めることができました。
9日目
インターンシップ最終日。この日は残ったレビューの対応と、9日間の成果を発表する準備に時間を使いました。最終的に、自分が担当したCSSとOBSブラウザの互換が原因で、YouTubeコメント投票装置をリリースまで見届けることができず、正直とても悔しい思いをしました。 しかし、この経験から「機能はマージされて終わりではなく、リリースして初めて完了する」という、実務開発の厳しさを教えていただきました。この最後の学びも含めて成果発表を無事に完遂し、9日間のインターンシップを締めくくることができました。
日常について
感想に入る前に少しだけ、インターンシップでの実務以外での経験についても話します。
ミーティング
初日のオリエンテーションに限らず、「AIわいわいキープ」や「Pepabo Engineering All Hands」、チームの定例である「Alive昼会」など、社内の様々なミーティングに参加する機会をいただきました。Slackを含めGMOペパボの「空気感」はかなり体験できたのではないかと思います。
ランチ
ランチでは、配属先のAlive Studioの皆さんはもちろん、事業部や職種の垣根を越えて様々な方とお話しする機会がありました。GMOペパボに入ったきっかけであったり、今後のキャリアやちょっとここでは書けない話など色々お聞きできて楽しかったです。
福利厚生
人によってはこれが一番嬉しかったかもしれません。オフィス内のカフェはドリンク飲み放題ということで、開発を始める前や一区切りついた後に、コーヒーをもらいに行くついでに話すなんてことが多くありました。また、5日目夜にはGMOインターネットグループ共用のバータイムにも参加でき、GMOペパボだけでなくグループ全体のカルチャーも体感できました。
インターン生!
自分は遠方からということでホテル泊だったのですが、同じくホテル泊のインターン生やAlive Studio配属組でご飯に行ったり飲みに行ったり就活について話したり趣味について話したり!実務だけでなくそれ以外でも多くの思い出が残る楽しいインターンシップでした。
感想
楽しかったです!!!
真面目な話をするとインターン前に掲げた2つの目標、「エンジニアとして働くとはどういうことか」を自分の言葉で説明できるようにすること、GMOペパボという企業の「空気感」を理解することの2つは十二分に達成できたと思っています。前者に関しては課題の要件に関して限られた時間の中で将来の拡張性や保守性まで考慮しながら実装すること、後者に関しては 「みんなと仲良くする」「ファンを増やす」「アウトプットする」 という3つの大切にしていることがGMOペパボ全体でしっかり実践されていることがわかる素晴らしい機会でした。
また、当初思い描いていなかった知見としてClaude Codeによる開発や細かなレビューを通じて、今後エンジニアとして働くにあたって必要なもの・変わっていくものについても少し考えることができました。今回のインターンでは細部を突くような知識はあまり使わず、プロダクト固有のコードはClaude Codeに任せて実装しました。それよりも重要だったのは、今まで学んできたソフトウェアエンジニアリングやリーダブルコードの知識を駆使して、コードをレビューし修正する能力でした。事前に想像していた「プロダクト特有のドメイン知識をひたすら学ぶ」という場面は少なく、むしろプログラミング言語に寄らない基礎力の大切さを痛感し、今後のエンジニア観について就活を前に改めて見直す貴重な機会になりました。
おわりに
オムライスやランチなど何だかおいしそうな画像が多くなりましたが、ここまで読んでいただきありがとうございました!
改めて、一緒に過ごしたインターン生のみんな、サポーターとしてコードレビューをしてくださった、てつをさん、よしこさん、くれはじめさんをはじめ、GMOペパボのパートナーの皆々様に多大なる感謝を述べて締めくくりたいと思います。2週間本当にありがとうございました!!