はじめに
こんにちは、RyutaroMです。
2025年夏にフリー株式会社という企業でインターンをしてきたのでまとめておきます。
これからフリー株式会社のサマーインターンを受けたいという方の参考になればと思います。
フリー株式会社とは?
「スモールビジネスを世界の主役に」というミッションを掲げ、会計、人事労務、販売などのバックオフィス系のクラウド型サービスを提供している企業です。
サマーインターン参加理由
- freee開業、freee会計というサービスを個人的に利用していたから
- 実運用されている大規模サービスの開発経験を積みたかったから
- チームでの開発経験が積みたかったから
- 工数の見積もり方法を知りたかったから
選考
選考フロー
選考フローは以下の通りでした。(参考までに括弧の中に僕の場合の日程を記載しています。後々他のインターン生に聞くと、これは割と早めの日程でした。)
- 会社説明会への参加 (4/24)
- コーディングテストの受験 (4/29)
- コーディングテストの通知、面接日程の調整、履歴書の提出 (5/7)
- 面接 (5/15)
- 選考結果の通知 (5/19)
- インターンの事前面談 (5/26)
コーディングテスト
コーディングテストに関しては、お題が2問与えられてコーディングを行いました。
いかに難しい問題を解けるかというよりもどれだけ試行錯誤しているかを見ているような印象でした。
面接
面接ではこれまでの開発経験やキャッチアップのときに意識していることなどを聞かれました。
個人的には自ら学んでいく力があるかを重要視している印象を抱きました。
インターン内容
概要
このサマーインターンは実務型のインターンで、期間は2週間(10days、フルタイム)でした。
実際のプロダクトが抱えている問題を与えられ改善を行っていくという内容でした。
基本的にはリモートでしたが東京・愛知・大阪にあるオフィスへ出社して作業することもできました。
(僕は3つとも行かせてもらいました。どのオフィスもそれぞれ良さがあって良かったです。)
1〜3日目
まずは前日に送られてきたPCのセットアップを行いました。
それが出来次第、各チームに配属されました。
僕が配属されたのはfreee会計の中でも外部サービスとの連携に関する開発を行っている外部連携チームでした。
僕含め3人のインターン生がいました。
与えられたお題は「freee会計のホーム画面上部に表示されるメッセージに関するUX改善」というものでした。
その後、プロジェクトの環境構築を行なっていきました。
プロジェクトが大規模すぎて驚きましたが、社内ドキュメントがとても充実しており、何か分からないことがあれば社内ドキュメントもしくはSlackを検索すれば解決できました。(フリー株式会社には「あえ共(あえて共有する)」という文化があり、その文化に肌で触れることができました。)(もちろんメンターの方に聞くととても優しく教えて下さりました。)
4日目〜6日目
与えられたお題について問題分析から解決策の案出しまでを行なっていきました。
フリー株式会社の文化の1つである「マジ価値」をもとに、ユーザーに本質的な価値を届けるにはどうすればいいかを常に考えながら案出しを行なっていきました。
そして、PRD (Product Requirements Document) と呼ばれる要件定義書や、DD (DesignDoc) と呼ばれる詳細設計書を書いていきました。
その中で、メンターの方やPM、PdM、デザイナーの方にまで意見をいただきに行きました。
コードが大規模で担当している箇所がそれぞれ異なるため、他チームの方など様々な方とコミュニケーションをとりながら設計書を書かないといけないということをとてもよく学べました。
7日目〜最終日
この期間はひたすら実装を行なっていきました。
当初はリリースまで持っていきたかったのですが、お題を深掘りしていくと他チームとの案の擦り合わせがもっと必要だということが分かったため、インテグレーション環境という開発者用の実験環境へデプロイを行うところまでを目標にして開発しました。
その過程でPull Requestの切り方、書き方だったり、タスクの分担の仕方だったりを学ぶことができました。
最終的に僕は大小合わせて4つのPull Requestを出しメインのブランチにマージすることができました。(最後の最後までレビューをしてくださったメンターの方には本当に感謝しかないです。)
また、インテグレーション環境へのデプロイまで持っていくこともできました。
最終日前日には実際にfreee会計を使用しているユーザー様に、僕たちが開発したプロトタイプを見せ、意見をいただくというとても貴重な場に参加させていただくことができました。
僕たちのプロトタイプが好評だったのでとても達成感がありました。
最終日には最終成果発表を各チームで発表しました。
どのチームもマジ価値をいかにして届けるかということを考えられていてすごいなと思いました。
その後は懇親会がありました。
他のインターン生やメンターの方と交流をすることができとても楽しかったです。
学び
コミュニケーションについて
実際の現場では自分1人で技術選定したりできないし、簡単にコードも変えられません。そのため、他の人とコミュニケーションをとりながら認識の擦り合わせを行っていくことがとても重要だということを学びました。特に実際の現場では貴重な人的リソースを効率良く使うために、後戻りがないように事前に認識を擦り合わせをしっかりと行うことが大切だということも学びました。
Pull Requestについて
Pull Requestは様々なバックグラウンドを持つ人がいます。自分が所属しているチームだけでなく全く別のチームの方に見てもらうこともあります。そのため、コードレビューしていただく方の負荷を減らす努力をしないといけないということが分かりました。そのためには(個人開発ではやってしまいがちな)リファクタリングと新機能開発を一緒にやるのではなくそれらを別Pull Requestに分けPull Request1つごとの修正コード量を減らしたり、Pull Requestの説明文に背景・問題・目的などをしっかり書いたりする必要があることを学ぶことができました。
最後に
10daysがあっという間に感じるくらいとても充実したサマーインターンでした。
メンターの方には暖かく迎えてもらえて本当に感謝しかありません。
この経験を今後にいかしていけたらなと思います。
最後まで読んでいただきありがとうございました。