マネージャーの常松です。 Rettyでは毎年学生向けにインターンを開催していますが、昨年夏に行ったマイクロサービス開発の企画が非常に好評でした。今年も規模を拡大して開催いたします!
Rettyのサマーインターンは何をやるの?
Rettyのプロダクト開発は「チーム開発が基本」で、「短いサイクルで価値を出していくアジャイルなやり方」を志向しています。Rettyの普段の様子がそのまま伝わるよう、昨年のインターンは下記のプログラムを組みました。
- マイクロサービスを0から(リポジトリ作成から)作り、本番環境で使うところまでを目指す。
- 学生(4〜5名)と社員メンター(1名)の混成チームを作り、全てモブプログラミングで開発を進める。
- Go / gRPC / CleanArchitectureといった既存マイクロサービスで採っている技術スタック・構成に合わせて開発してもらう。
野心的なインターンのため3週間と長丁場でしたが、8名の方に参加いただき、ユーザーアイコン管理とOGP画像生成サービスが本番環境で動作するようになりました。昨年参加者のブログは下記で公開しています。
- インターン参加したら学びしかなかった件について - Retty Tech Blog
- サマーインターン ユーザーアイコンのマイクロサービスと店舗詳細のOGP生成を実装しました! - Retty Tech Blog
- サマーインターン モブプログラミングに挑戦しました! - Retty Tech Blog
参加者の満足度も高く、サポーターズさんの「参加してよかったエンジニアサマーインターンランキング」では「技術力の向上」で1位、総合でも4位に選んでいただきました。
今年も同フォーマットで開催予定のサマーインターンですが、選考も徐々に進んでいます。その過程で「今年はどんなことをやるのでしょうか?」といった質問をいただく機会も増えてきたため、今年のコンテンツ案を紹介します。
今年のコンテンツ案
1. 予約電話番号の管理をマイクロサービスに切り出す (バックエンド)
Rettyと契約いただいているお店の紹介ページ(やまよこ鮮魚店さんの例)では、電話予約のための専用電話番号を発行しています。仕組み自体は外部のサービスを使用して実現していますが、お店の契約に応じて発行・廃止といった作業が都度必要となり、その処理がお店管理を司るサービスのあちこちに散らばってしまっているため不整合がたまに発生しています。
そこで分散した責務をまとめ、toB領域のモノリスからマイクロサービスに切り出す開発を行います。
【ここが面白い!】
- 0からのマイクロサービス開発に携われる。
- 実際に業務で使われているコードを読み解き、サービスに影響が出ないよう作業を進める経験ができる。
- toB領域のマイクロサービスは2022年に始まったばかりで、考えること・決めることが沢山ある。
2. retty3-service-image の責務見直し およびGo言語での再実装 (バックエンド)
retty3-service-image(Kotlin実装)は投稿画像を管理する責務を担う役割として生まれたマイクロサービスです。当初はお店とも投稿とも切り離して画像を管理する責務が重要と考えていたものの、投稿画像は「お店」または「口コミ」に紐づかないと存在し得ない、かつ並び替えなどのロジック実装を考えると責務がまたがってしまい、マイクロサービスとしてうまく分割できていないと考えが変わりました。
retty3-service-imageにある画像に関する処理をお店サービスや口コミサービスに寄せる移植を行いつつ、残る処理を新たにGo製のマイクロサービスとして作り直す開発を行います。
【ここが面白い!】
- マイクロサービスの責務見直しが体験できる。
- 関連するマイクロサービスに広く目を通す機会がある。
3. フォロー/フォロワーページを作る(フロントエンド)
先の2つはGo言語のマイクロサービス開発ですが、こちらはNuxt.jsでフロントエンド開発を行います。
昨年夏にユーザーページ(常松のユーザーページ例)のリニューアルを行いましたが、フォロー・フォロワー一覧がまだ用意できていません。スマホアプリでは確認できますが、ユーザーのつながりは「人からお店を知り、探すことができる」体験の提供を目指すRettyに重要な要素ですのでWebで使っていただいているユーザーにも提供したいと考えています。
【ここが面白い!】
- GraphQL、Nuxt.jsを使った開発が経験できる。
- ページ構成やデザインについてプロダクトマネージャー・デザイナーと議論しながら開発する経験ができる。
おわりに
サマーインターンは下記からご応募できます。
応募しようか迷っている方には座談会もあります。
Rettyの普段の開発が体験できるコンテンツになっていますので、ぜひご検討ください。