Supershipテックインターンシップ2022に参加した話

はじめに

Supershipテックインターンシップ2022 プロダクトコースに参加させた頂きましたので、体験記を書いていきたいと思います。

Supershipテックインターンシップ2022 とは

Supershipテクインターンシップは2つのコースに分かれています。

  • テクノロジストコース(3人チーム * 1)

    • 広告チーム

    • 国内最大規模のDSPプロダクトである『ScaleOut』の開発チームに実際に入って、プロダクト開発を体験

    • 課題解決とプロダクトの改善提案

  • プロダクトコース(3人チーム * 2)

    • 検索チーム

    • 通常業務で使っている大量のWeb検索のログデータを使って検索サービスにおけるサジェストを作る

開発の詳細

  • 開発人数:3人

  • 開発期間:10日

  • 開発内容:検索サジェストシステムの作成

    • バックエンド

      • FastAPI(Pythonの軽量フレームワーク)

      • Elasticsearch(全文検索エンジン)

    • フロントエンド

      • React

    • インフラ

      • docker-compose

      • Google Cloud

    • バージョン管理等その他

      • git

      • Gatling(Scalaを使用した負荷テストツール)

参加したきっかけ

夏に短期インターンシップに参加したいと漠然と考えていて、色々と情報を探っていたところサポーターズさんから招待が来て情報検索をやっていることを知り興味を持ちました。
また、大学でも情報検索を学習していることから実際の事業にどのように使われているのか気になっていた点や、かなり滑り込みの申し込みだったのですが、他の会社と悩んでいる旨を伝えたところ現場のエンジニアの方と選考面接の後にもミーティングの機会を作っていただいたりと、凄く丁寧に対応していただいたのが参加の決め手になりました。

インターンシップで学んだこと

インターンで学んだことをプロセスと技術的な2つの面で書いていきたいと思います。

プロセスに関して
①チームでタスクや方針をしっかり擦り合わせる
当たり前かもしれませんが、インターンで初めて会う方とチーム開発をするということで凄く大事でした。(ちなみにチームの方やメンターの社員さんたちとはすぐに打ち解けて、かなり良い雰囲気で2週間開発を行うことが出来ました。)
開発に使う言語やツールはElasticsearchを使う以上のことは指定されていなかったため、初日からGitHubのProjectsにタスクを洗い出して、達成目標やメインの担当について決めるという方針で開発を行っていました。
Doneに進捗が溜まっていくのが自動的に可視化されていくのでモチベーションにもなっていました。

実際に使用したGitHub Projects技術に関して

②適度に休憩を取る
 昼休憩とは別に適度に休憩をとっていた(特に行き詰まった時)のが、チーム全体の効率や心理的安全性が結果的に上がったなぁというように感じました。
 社員さんからも適度に休憩ね、と何度も声をかけていただいたのもありがたかったです。チームメンバーの中には散歩休憩をしている方もいたりして、かなり個人個人のペースで開発を進めていたのですが、開発自体は円滑に進んでいたのは個人的には大きな発見でした。(もちろんチーム内の雰囲気にもよると思いますが…)

③分からないことや不明なこと、やりたいことは口に出す
 こちらもかなり社員さんから気を使って声をかけていただいて、すぐにSlackでメンションして相談できる環境があったのは凄く良かったです。Supershipのプロダクトコースはかなりハッカソンに近い形のインターンなので、基本的には自分たちですべて計画して作りこんでいく形でしたが分からないことをすぐに相談できる環境があったのが非常に良かったです。
 また、チーム内で次に開発する機能のロジック等を相談する中で、仕組みや開発の流れが分からないときにすぐに分からないと言い出せる雰囲気がチームの中であり、置いて行かれる形にならなかったのもチームメンバーには凄く感謝しています。お互いに調査している内容や詳しい分野が違ったので、教えあいながら開発を行っていました。これまでやってきたチーム開発の中でもかなり会話が多かったんじゃなかったかなと思います。

技術的な面に関して  
 技術的な面だとElasticsearchはチーム内で使ったことがある人が誰もいなかったため、すごくいい経験になりました。
 最初はデータの入力にも四苦八苦していましたが、10日間あったため、かなり時間に余裕をもってElasticsearchの勉強ができたのは非常に良かったです。私が担当した部分だと、

  • マッピング(データ構造を決めるもの)の作成

  • データをElasticsearchに入力する際に不快な単語の除去

  • 形態素解析エンジンKuromoji(アナライザ)の導入

  • アナライザやフィールドごとの重み付けを利用した検索クエリをquery_stringを使用して作成

などですが、これらを分からないところについては社員さんに解説してもらいながら、しっかり理解して開発を行えたのが非常に良かったです。(ハッカソン等で急いでいるとコピペして理解を置き去りにしてしまうことも多いので。。。)
 また、プロセスの面に若干戻りますが、基礎部分の構築が終わるまでは全てVSCode Liveshareを使用してモブプログラミングを使用して開発を行っていていました。そのため、自分が担当していた箇所以外についてもどういうコードや機能を作ったかを把握できたため、自分が書いていない場所以外についても勉強できたのはチーム運営がかなりうまく行っていたのではないかなぁと思います。

インターンシップの感想

  凄く楽しかったし、いい経験になったなと思っています。4日以上のインターンが初めてだったこともあり、技術的にもコミュニケーション的にも不安があったのですが、初日からSuper自由な雰囲気をかなり実感できて良い意味で力を抜いて取り組むことが出来ました。月曜日の午前中が毎週有給(ハッピーマンデー制度)だったり、趣味を理由にした有給が社内で定着していたり、凄く働きやすそうな環境だなと思いました。
 また、技術のところには書いていませんが、DockerやGoogle Cloudを運用したりと今まであまり触ってこなかった環境を使うことが出来たり、インターン初日と2日目に広告技術や検索技術の基礎について実際に働いている方から教えてもらうことができたのも非常に学びになりました。
 基本的にどんなことに関しても基本的に自分たちの裁量で自由に色々と触れることができて、かつ実務に近い体験ができるという中々ない機会に恵まれたなと思っています。
 インターン前からかなり親切に対応してくださった社員さんたちには凄く感謝していますし、Superいいインターンだったと思っています。検索技術や広告技術に興味がある方であれば、かなり楽しめると思いますので来年も開催されるなら是非応募してみて下さい!
 

 

社員さんや他の参加生の方の記事

インターンのメンターをしてくださっていた社員さんの記事
https://qiita.com/westtail/items/ba153936a058994f10eb

同じチームにいたメンバーの記事
https://qiita.com/ishidao/items/9caf1e5c6525f301e6af

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