【サマーインターン】~ フリー株式会社 ~
はじめに
2025.09.01 ~ 2025.09.12
今回はフリー株式会社のサマーインターンに参加させていただきました!
会社の規模としてもかなり大きく、これから拡大していく企業にサマーインターンとして入社し、多くのことを学び、感じることができました!
会社の雰囲気、文化、コミュニケーション、技術的な話などたくさんのことをギュッとまとめて記事に残します!🔥
この記事を書く理由
- freeeにインターンとして入社し感じたことを言語化し残したいから
- データベースについてかなり調べたから、残したい
フリー株式会社
インターン内容
スケジュール
全体的な流れとしては以下のようになっています。
day1:オリエンテーション
day2-day11:開発(day5:自己紹介タイム)
day12:最終発表( + 懇談会)
個人的には開発にがっつり取り組みつつ、他のインターン生が取り組んでいる内容もチラチラ覗けて、過ごしやすい日程でした!
チーム配属
僕が配属されたチームは従業員統合というチームでした。
全てのプロダクトにおいて「企業の従業員」向けの統合機能が開発しやすくなるための「従業員マスタ基盤」の開発に取り組んでいるチームです。freeeの巨大なサービスから基盤として切り出し、かつ今まで通りに機能をユーザーに提供する、というとっても大変なことに取り組んでいました。
タスク
一言で言うと、パフォーマンスチューニングです!
freeeサービスは中小規模の企業ですが、企業の規模が大きくなってくると、データの増加はかなり激しくなります。部署が増えて、部署間のつながりなどを考えていくと...、データの量が増えていくことが想像できると思います。結果として、特定のメソッドのレスポンスがかなり遅くなっていました。その原因追及と解決策の考案・提示、実装、検証を2週間でやるというのが今回のテーマでした!
取り組んだこと
原因分析
処理の流れをコード上で追ったり、ログを挟んで計測したりしてどこがボトルネックになっているのかを追っていきました。進めていると、DBでデータを取得するところや、取得してきたデータを加工するところがボトルネックになっている?と認識できました。
解決策考える
実現可能性と効果の2軸で実装の選択肢の中から最適なものを考えました。
特に2週間(開発時間はさらに少ない)だったので、実現可能性を意識していました。
実装・計測
- RDBにインデックスを追加
- 既存関数の最適化
主に上の2つの実装に取り組みました。
計測は本番環境程度の検証環境で行いました。
感じたこと(タスク)
-
パフォーマンスチューニング大変だけど面白い
DBデータ取得のところを改善したのに効果があまり出なかったことはかなり悲しかったです...。これは計測をサボったことがよく無かったな...と反省しています。数字や事実を積み上げることの大切さを実感しました。
また個人的にはシステム全体を眺めることになるのですごく面白いと感じました。また、必ずトレードオフ的な要素が出てくるので、環境に合った最適解を目指していくというところも楽しいです。
-
実際の現場だと複雑性ある...
これが今回は厄介でした。既存のシステムを崩す可能性が常に付き纏い、試行錯誤のサイクルがどうしても落ちてしまう...。だからこそ、1回でどれだけ有益な情報を得られるか、がすごく大切だし、常に影響範囲を認識することが大切だと実感しました。
-
意外と環境を整えることで突破できる
環境構築や使用するツールなどメインの問題から派生したサブ問題みたいなものを解決することで、大きな問題は小さくなっていくと実感しました。1つの手段として他の人に便利なツールや、ドキュメントがないかきいてみることが大切です。これらを聞き出し、より本題に集中することができるようになります。
-
データベースを鮮明に意識するようになった
インデックスを追加した際に意図したインデックスが使われないという事件が起きました(さらに既存のものを悪化させました...)。チームの方から実行計画を確認するように薦められ実践しました。
最終的にはデータベースについて調べまくり、インターン後はデータベースを鮮明に認識できるようになりました!
感じたこと(freeeに入って)
-
あえて共有
freeeのマジ価値指針の中で僕が特に好きで、インターン中も積極的に自分の中に取り込んでいた文化があえて共有です!✌️
僕がこの指針を落とし込んだ方法が、スレッドの垂れ流しです!
インターン中はチームチャンネルに自分のスレッドを立てて、ひたすら垂れ流していました(波はありますが)。垂れ流すと、「このツール使えばいけそう」、「xxxの可能性はあるね」、「yyyさんに相談してみるのいいかも」と自分の取り組むタスク、頭の中を共有し話し合うすることができます。質問するときもスレッドで時系列で頭の中を見せることができます。
この指針好きです😊
-
言語化能力たか...
僕の配属されたチームは、僕がインターンとして参加している時上流工程の真っ最中でした(忙しい時期に本当にありがとうございました)。問題点や設計などを、スピードを遅さず、でも間違った方向に行かないように、話し合っている姿を間近で観察することができました。1人1人の言語化能力の高さに圧倒されました。
-
働くにフォーカス
入社してオフィスで社員の方が働いているのをみて、自由だなと感じました。これは、パフォーマンスを上げるために最適化されているということです。不必要なストレスをできるだけ排除し、自分の仕事にフォーカスできる環境が整っていました。
インターン前後での自分の変化
-
あえて共有の尊さを知る
先ほども書きましたが素敵です。この文化はfreeeだけでなく、すべての会社、業種に広まるべき指針だと思います。たまに働いていると自分で情報を抱え込むこともありますが、今後は積極的に共有したいです。それとこれはメンターさんが言っていたことですが、共有しやすい雰囲気づくりも大切だと思います。今回はその雰囲気に救われていましたが、自分も雰囲気作りにもっと関心を持っていきたいと感じました。
-
現場の密度の濃さ
今回は主にデータベースの領域をがっつり触りました。書籍や個人開発などで学習してはいましたが、現場に入った時の知識吸収は、書籍や個人開発の比ではなかったです...。基礎知識はもちろん、システムをもっと鮮明に見れるようになったと思います。やっぱり実践で一番伸びるということを実感しましたし、その実践環境が整っているfreeeってすごいな...と思いました。
-
コミュニケーションの大切さ
コミュニケーションが大切だということは何度も実感していましたが、今回強く実感したのはチーム外とのコミュニケーションでした。これは規模の大きい組織だからこそ感じられたことだと思います。普段コミュニケーション頻度が少ない方への過不足ない情報の伝え方をこれからは身につけていきたいと思いました。
最後に
2週間freeeの皆様には大変お世話になりました!
大規模な環境構築や、実際の開発など1人だと苦労することも、サポートがあることで苦労だけでなく学びや楽しさを感じることができました。この経験を糧にさらに精進します。
2週間本当にありがとうございました!
最終日ではこのようなノベルティをいただくことができました!
修了書も!!😊
うまくできたかはわからないけど、やり切ったんだなーと幸せな気持ちになれました。
Discussion