Treasure2024 インターンシップ体験記
はじめに
現在、26卒としてエンジニア就活を行っています。今回は、株式会社CARTA HOLDINGS主催のサマーインターン「Treasure」に参加してきたため、その体験記を記事にしました。
参加の目的
参加のきっかけは、サポーターズの1on1イベントでした。
自分がこのインターンに期待していたことの一つに、「0からモノを作れるようになること」があります。これまで約1年の実務経験があるものの、個人で何かを作る際には「どこから手をつければいいのか」「どう方針を立てるべきか」と悩むことが多く、プログラミングを学んでも「自分で何かを作れる」という実感が湧かない状態でした。
Treasureでは、チーム開発における重要なポイントや、フロントエンド・バックエンド・データモデリングの講義、そして「何を作るのか」を考えるアイデア出しの講義が含まれ、0から1にフォーカスした内容となっていました。結果として、このインターンに参加して本当に良かったと心から思っています。
日程
1週目
- 全体ガイダンスおよびチーム開発の講義
- DBモデリング講義
- バックエンド講義
- フロントエンド講義
2週目
- プロダクトマネジメントの講義
- チームで開発するプロダクトのアイデア出し
- Design Doc作成
- DBモデリングおよびスキーマ決定
3週目
- 開発フェーズ
- 発表
チーム開発について
私たちのチームでは、エンジニア間の質問と回答の効率化を目指したツール「Qflow」を開発しました。このプロジェクトのきっかけは、リモートワークで質問を行った際、返信が遅くて解決に時間がかかるという経験に基づいています。特に、質問者と回答者の間で「十分な前提情報を提供したい」という思いと、「簡潔に伝えたい」という思いがあり、そのトレードオフを解消するためのシステムを設計しました。
具体的には、非同期のコミュニケーションを少ないやり取りで効率的に行うことを目指し、質問者の前提知識を保存できる場を提供しました。さらに、過去の類似質問とそれに対する回答を表示することで、質問者が追加の前提情報を提供しやすくする機能も実装しました。この機能はRAG(Retrieval-Augmented Generation)を用いて、入力された質問に対して過去の類似質問を推薦する仕組みです。
結果として、このプロジェクトでグランプリ(最優秀賞)を受賞しました。RAGを活用した技術的な挑戦や、今後の実用性、そして実際に使用する場面が想像できる点が高く評価されました。
現在は、インフラが削除されたため、動作しないのですが、現在移行作業中のため、今後も開発を続けていきたいと考えています。
プロダクトの特性上、質問が行われれば、行われるほど、推薦の精度が向上する点で非常に興味深い機能ができたと考えています。また、今後は、自分が作成した質問の一覧や、カテゴリーごとにどのような質問が行われたのかを閲覧できるような機能を実装していきたいと考えています。
得られたもの
技術面
DB設計のノウハウ
これまで曖昧に行っていたDB設計を理論的に学ぶことができました。講義の後、コンビニシステムのER図を作成し、それを修正するプロセスで理解を深め、チーム開発で即座にアウトプットできたことが大きな学びでした。
RAGの実装経験
RAGの理論は知っていましたが、実際に実装する経験は初めてでした。動作するか不安でしたが、成功した時は非常に嬉しかったです。
1からの設計手法
アーキテクチャ設計や関心ごとの分離など、普段の個人開発では見過ごしがちな部分にこだわり、チームで徹底して開発に取り組みました。
コードレビュー経験
これまでレビューを受ける側でしたが、今回はレビューする側として参加しました。自分が知らない技術についてもレビューの中で質問し、チーム全体で知識を深めることができました。コメントは批判的な伝え方をしないようにし、チームの雰囲気を良好に保ちながら開発を進めることができました。
行動面
タイムマネジメント
短期間でアイデアをまとめ、開発を進める必要があったため、細かく締め切りを設定し、チーム全体で時間感覚を共有しながら作業しました。また、議論が行き詰まった際には「10分ルール」を設け、外部の意見を取り入れて効率的に進めました。
チームとしての意見のすり合わせ
同じホワイトボードを使っていても、言葉の認識が異なると全く別のものを想像していることがあります。議論の際には全員が共通の理解を持てるよう、細かく確認する姿勢を徹底しました。
雑談の重要性
ただ作業を続けるのではなく、適度に雑談を挟むことで、心理的安全性を高め、重要な議論の際にも発言しやすい環境を作り出しました。
他チームからの学び
他チームのホワイトボードの使い方や議論の進め方を積極的に観察し、自分たちのチームに取り入れることで、独自のスタイルを確立することができました。
おわりに
3週間、本当に楽しい時間でした。それに加えて、自分自身も設定していた目的を達成することができ、大きく成長できました。インターンに参加した仲間やサポーターの方々、そして運営の方々に心から感謝申し上げます。
Discussion