GO新卒エンジニアサマーインターン開催-GO事業の開発を経験して得られたこと
GO株式会社では今年9月に一か月間に渡り、当社初となるエンジニアサマーインターンを開催しました。
本記事では、インターンの企画から業務内容・エンジニア社員とのコミュニケーション設計等、初めてづくしのインターンについて、受け入れ先のエンジニアマネージャーと、今回のインターンに参加いただいた大島さん(写真中央)、佐久間さん(写真左)、山本さん(写真右)と共にレポートをお届けします。
エンジニアサマーインターンを実施するにあたって/現場の思い
今回のインターンは、開発本部ソフトウェア開発統括部バックオフィス基盤開発部副部長の待鳥を中心に企画されました。
[待鳥コメント]
2023年より新卒採用を始めましたが、今後、さらに新卒採用を強化していくために「GO株式会社」を深く知ってもらうことが必要だと思っていました。
そこで、今回自らインターンを企画・開始させて頂きました。狙いとしては下記の2点を早く知ってもらい就職活動時期に検討してもらいたいと考えてます。
タクシーアプリ『GO』は完成していない。
「GO株式会社」が展開している事業はタクシーアプリだけではない。
結果として、事業に関わる開発を通して、会社のこと、他の事業のことについて理解して頂けたと思います。
それでは、エンジニア達自ら企画したインターンプログラムを紹介します!
エンジニアサマーインターンプログラムの紹介
今回のインターンの配属先は、バックオフィス基盤開発部/バックエンド開発部の二つ。それぞれの配属先で開発業務を体験いただきました。
■バックオフィス基盤開発部
大島さん・佐久間さんには、『GO』の決済や支払請求・売上管理などの開発を行っているバックオフィス基盤開発部にて「リコンサイル処理(整合性チェック)」に関する開発に取り組んで頂きました。
社会人エンジニアでも決済に関する開発に携われる方は少なく、大量な決済トランザクションでの「リコンサイル処理(整合性チェック)」はとても珍しい開発体験となります。
決済処理において「整合性チェック」の大切さを知ってもらう事が目的です。
お二人には、以下の開発に携わっていただきました!
大島さん
外部連携先と決済情報を突合するための新機能を開発
外部連携先のmockサーバの実装
佐久間さん
外部連携先と決済情報を突合するための新機能を開発
シナリオテストの修正
また、エンジニア11名とそれぞれ1on1を実施したり、
チーム・ビルディングのワークショップ「ドラッカー風エクササイズ」に取り組んでいただきました。
受け入れチームとしては、大規模サービスであるため負荷をかけない設計や、外部サービスの仕様を理解した上で開発していただけるよう工夫しました。
また、チームDS(Daily Standup Meeting)に参加しチームメンバー全体で進捗共有し合う等、『GO』の複雑な決済基盤の開発にもしっかり取り組んでいただけるよう様々な取り組みを行いました。
特に、短い期間であっても成果が出るよう、日々こまめにコミュニケーションをとりながら大島さんには「大規模」、佐久間さんには「本番環境・安定稼働」をキーワードに業務をお任せする等、濃密な1か月のインターンになったかと思います。
■バックエンド開発部
山本さんには、『GO』やその他新規事業における、サーバサイド開発を行っているバックエンド開発部にて「『GO』 APIの負荷対策」に取り組んでいただきました。
大規模なトラフィックを捌くための負荷対策という、学生ではなかなか経験できないチャレンジをしてもらうことが今回のプログラムの目的です。
加えて、負荷試験を通じて『GO』にどのようなマイクロサービスが存在しているのか知って欲しいという思いもありました。
数々のシステムが関わり合ってプロダクトが動いていることを見渡せるようにすることや、普段どのようにエンジニアが動き、他のチームと『GO』を作り上げているのかを理解してもらうこと等を意識し、幅広いプログラムとなっています。
実際の取り組み内容
アプリケーションのコード変更によるDB負荷低減
コードやPRD、specを読んで仕様・挙動を理解していただく
参照先をマスターDBからレプリカに変更
不要なDBアクセスをなくす
DBのindexを活用した負荷低減
上記の改修のPR作成と社員によるレビュー
バックエンド開発部でも、日々のDSへの参加や、社員とのランチ・シャッフル1on1に参加してもらいながら、様々なエンジニアとの交流を深めていただきました。
また、ビジネス要件がどのように検討されて、Biz/Devが協同しながらプロダクトを作っているか工程を体感してもらえるよう、PdMやエンジニアが参加する、新規案件のPRD(要件定義書)レビューの見学も実施しました。
1か月のエンジニアインターンに取り組んでみて
今回、1か月という短い期間でしたが、『GO』の大規模なシステム開発に携わっていただいた3名にインターンの感想を伺いました!
[大島さんコメント]
抽象的な金融のドメイン知識のキャッチアップや、複雑なSQLクエリに調整を入れること、複雑な仕様を理解することがとても難しかったです。
金融基盤の可用性や信頼性を意識して業務をできたのは貴重な経験でした。
様々なマイクロサービスが存在して、それらが複雑に連携し合っている仕組みが大変興味深かったです。
[佐久間さんコメント]
今回のインターンでは、様々なサービスの仕様の確認が最も大変でした。
その一方で、サービス間での整合性を保証する仕組みがとても印象に残っており、個人の開発で意識することが少ない部分の実装に携われたことが楽しかったです。
[山本さんコメント]
大きなプロダクトの中身を理解するのはかなり大変でした。
技術スタックにも不慣れだったので苦労しましたが、チームの皆さんがあたたかく受け入れてくださり、たくさんのアドバイスを頂けたことが非常に嬉しかったです。
また、自分の作ったものがマージされ、本番環境にリリースできて良かったと感じています。
インターン最終日には、最終報告をかねたLT会を実施しました。
オンラインも含め30名近くのエンジニア社員が参加する中、それぞれに掲げていたインターンの目標と実際に取り組んだこと、そこから今後の自身の成長にどう生かしていきたいかをお話いただきました。
インターン生それぞれが自身の成長を実感していただけたことが、GOメンバー一同非常に嬉しかったです!
複雑な『GO』プロダクトの理解を深め、技術的にも難しいチャレンジをしてくださった、大島さん・佐久間さん・山本さん、本当にお疲れ様でした!
■採用情報
GOでは、新卒採用を行っております。
興味がある方は、お気軽にご連絡ください!