はじめに
こんにちは。2024年サマーインターンシップに参加させていただきましたふじじです。この記事では、2024年7月29日から8月9日までの平日10日間、GMOペパボで行われたサマーインターンシップの感想や学びを共有します。
インターンシップに参加した経緯
サポーターズ主催の技育博に出場した際、さまざまな企業の方々からチラシをいただいた中で、ひときわ目を引いたのがGMOインターネットグループのチラシでした。「新卒年収710万プログラム」というキャッチーなフレーズに目が留まり、詳細を見てみると普段使っているSUZURIがGMOペパボのサービスであることを知りました。普段使っているサービスの開発に携われることにワクワクし、また優秀な人材に多くの投資をする理念に共感し、応募に至りました。また、インターンシップが他社よりも早い時期に実施される点も魅力的でした。
インターンシップ概要
GMOペパボのインターンの最大の特徴は 「実際に使われるプロダクトや機能を作り、リリースすること」 です。インターンのためのタスクではなく、実際の開発組織の一員として働きます。今年は計11人のインターン生が4人ずつ3グループに分かれ、カラーミーショップ、SUZURI、LOLIPOP! for Gamersの3サービスの機能開発を行いました。私はSUZURIユーザーであり、普段から使っているサービスの開発に携わりたいと思い、SUZURIの開発チームを希望し、配属していただきました。
インターンシップ期間
1日目
初日はオリエンテーションや貸与PCのセットアップを行いました。PCについてはキーボードの配列まで希望を聞いていただき、使い慣れている配列で開発を行うことができたのは地味に嬉しかったポイントでもあります。同じSUZURIチームのメンバーともここで初めて顔合わせしました。チームのメンバーの中には自分のサービスで収益化をしている人もいれば、起業経験のある人もいて刺激しかない環境でした。 SUZURIの実際の開発チームのメンバーとも顔合わせをし、早速開発内容のすり合わせの会議(mtG)を行いました。今回のインターンシップでの開発内容は大きく2つありました。
- アナリティクス画面に1日ごとの閲覧数を表示する
- iOS版SUZURIにおいて、フォローしているユーザーが新着商品を出品したらバッジをつける
4人のチームだったため、2:2に分かれてそれぞれの機能を10日間で実装することになりました。私はiOS版の新着バッジの機能を実装するチームに入りました。新着バッジ機能のバックエンドを実装することになったのですが、iOSチームと連携しながらどのように実装するか、どこまでをバックエンドで実装するか、など詳細の仕様もすり合わせていきました。 その後、実際にSUZURIの環境構築を行い1日目が終了しました。
2日目~4日目
2日目の午前中までに環境構築を終え、実際の開発に入りました。バックエンドはRuby (Ruby on Rails) で書かれており、iOSアプリでは主にAPIのクエリ言語としてGraphQLが使われていますが、GraphQLについては2人にとってほぼ初めての技術でした。しかしながら、お互いにキャッチアップしながら、わかったことを適宜共有し、学びを深めました。声に出す、書くというアウトプットを行っていたため、1人で独学するよりも何倍も深く早い学びができたと感じています。 具体的な実装
- クリエイターが出品した商品の最終公開日時を返すロジックの実装
- iOS側で情報取得のGraphQLクエリの実装
ただ実装するだけでなく、保守性やパフォーマンスについて細かくレビューをいただき、大規模なユーザーを抱えるサービスにおける開発に対する理解を深めることができました。 また、本番環境へのデプロイが毎日何度も行われている点にも驚きました。大規模なサービスでも細かいアップデートが可能なのは、テストが細かく行われ保守体制が整っているからだと思いました。小さくアップデートすることで不具合に気づきやすいというメリットも感じました。 4日目まででインターン期間中に実装すべきバックエンドのタスクを終わらせることができました。せっかくのこの機会、まだまだ学びを深めアウトプットを出していきたいと考え、予定していなかったiOSアプリ側の実装タスクも急きょ担当することになりました。
5日目~8日目
この期間ではiOSアプリの実装を必死に行っていました。2人ともバックエンド寄りの指向であるため、モバイルの開発経験はありませんでした。まずはiOSアプリの環境構築を行い、実装のキャッチアップから入りました。SUZURIのiOSアプリの技術スタックはSwiftUIとアーキテクチャーフレームワークとしてTCA(The Composable Architecture)を用いていました。モバイルチームの社員の方と適宜会議を行い、特にアーキテクチャの部分など親身にサポートしていただきました。 具体的に行った実装
- GraphQL APIから目的のデータを取得
- クライアント側でユーザーの閲覧日時を保持
- APIから取得したデータとクライアント側のデータを比較し、適する条件の際はバッジをつける
大まかな流れですが、この他にもパフォーマンスの最適化やSUZURIを利用するユーザーの傾向を考慮しながら実装を進めました。大規模なユーザーを抱えるサービスの開発の難しさを肌で感じることができ、非常に良い経験になりました。
9日目
この日の朝、ついに実装を完了し、手元で確認することができました。GraphQLやTCAなど初めて触れる技術が多く、終わらないのではと思った瞬間もありましたが、チームメンバーとの協力やメンター、社員の方々のサポートのおかげでもともとの予定になかったiOSアプリの実装までやり切ることができました。大きな達成感を覚えました。
また、この日はSUZURI事業部の社員の方に誘われ、「夏の怪談会」にチームメンバーとともに参加しました。お菓子や飲み物を皆で買い出し、持ち込んだ怪談話を出し合いました。開発部だけでなく、同じプロダクトを作るSUZURI事業部全体でこのような交流があるのは非常に魅力的で楽しかったです。後ろに見えてはいけないものがいて怖かったですね。
10日目
最終日は成果発表会です。1チーム20~25分の持ち時間が与えられました。私の経験上では一般的なプレゼンよりも長く感じ、アウトプットを大切にするペパボの文化が色濃く出ているのを感じました。
楽しんで聞いてもらえるようなアウトプットにしたい!ということでチームメンバーと相談してプレゼンにさまざまなタネを仕掛け工夫を施しました。(2024年8月8日現在はパリオリンピック真っ最中です)
実際発表してみると10日間の成果を20~25分で発表するのは短く、改めて濃密な10日間を過ごしたのだなと感じました。ちなみに他のチームも短く感じていたようで成果発表会の時間が少し押してしまうほどでした笑
また、最終成果発表には大勢の社員の方に参加していただき、Slackのスレは盛り上がりを見せていました。このように暖かくアウトプットを受け入れる姿勢もまた、アウトプットを大切にしているペパボの文化が出ていて非常に気持ちの良いものでした。
インターン後の懇親会ではピザパーティーを行い、就職のことや技術のことについて各々楽しく交流することができました。その後2次会にも連れて行っていただき、帰るのが惜しくなるくらい本当に楽しい10日間だったなと感じました。技術面での成長はもちろん、レベルの高い同年代の仲間たちと交流を持てたことが非常に刺激になりました。
その他
SUZURI事業部全体の昼会にも毎日参加させていただきました。インターン期間がSUZURIのサマーセール期間と重なっていたため、毎日の昼会で現状と次の施策について報告が行われ、マーケティングやデータ分析の部分も体験することができました。非常に学びが多かったです。
そして、福利厚生が素晴らしいです。GMOYoursというGMOインターネットグループの社員が利用できる食堂ではカフェが併設されており、タンブラーを持ち込めばドリンクが飲み放題です。また、昼にはビュッフェ形式で無料ランチが提供されます。さらに、ケーキが出される時間があり、皆が盛り上がっていました(笑)。
最後に
このインターンは他の会社のインターンがまだ始まっていない比較的早い時期に行われます。そのため、同年代の中でも技術力が高く志の高いメンバーが集結するのではないかと思いました。そんな中で過ごす10日間は非常に刺激的で、参加することができたのが非常に良い経験になりました。また、実際のユーザーに提供する機能を10日間で本番環境へデプロイすることができるという点も非常に素晴らしい部分だと思います。toCのサービスであるので友達や家族に自慢できるところも良いポイントです(笑)。