🪼

freee株式会社実務インターン記

に公開

はじめに

本記事では、2025年9月1日から9月12日までの10営業日で参加したfreee summer internship2025の学びを書いていこうと思います。
2週間という短い実務インターンでしたが、いろんな人に助けていただきとても充実したインターンシップでした!

参加までの流れ

2024年の夏前ぐらいにあったfreee技術の日2024というイベントが最初にfreeeさんに興味を持ったきっかけでした。
自社開催で大規模な技術イベントを行なっている会社はそこまで多くないためカルチャーに関心を持ちましたし、当日開催されていた講演がどれも素敵で今でも内容をしっかり覚えています!
しかしその年の夏は休学して海外に行っていたため、満を持して2025のサマーインターンに申し込みました。
選考は、コーディングテスト1回と面接1回のシンプルな形式でした。
面接はリラックスした雰囲気で、自分の考えていることを話しやすかったです!

配属

実は一番楽しみにしてました。
なぜかというと、freeeさんのグローバルチームで働いてみたかったからです!
エンジニアのグローバルチームがある会社は日系企業だとそこまで多くはなく、freee技術の日2024に行ったのもfreeeさんにはグローバルチームがあるらしいと知ったからだった気がします。
そのため、配属希望を出す前から今年はグローバルチームの募集はあるかとしつこく聞くマンになっておりました笑(リクルーターさんすみません)
今年のサマーインターンは、事前に配属希望を出せるチーム一覧とそれぞれの紹介が書いてあるドキュメントが渡されその中から希望を出すというものでした。
そして無事に希望通りグローバルチームである人事労務の健康管理チームに配属されました🎉
私の配属されたチームは、エンジニアはみんなフィリピンオフィスに所属していたのでやりとりは全てオンライン(かつ英語)でしたがPMの方は日本にいたので要所要所で助けていただきました⭕️

当日

概要

  • インターン生は1~3人で一つのチームに配属されます
  • 複数人の場合はインターン生同士でチームになってタスクを行います(私は1人パターンでした!)

全体の流れ

Day1~Day3

セキュリティ研修や環境構築を行いました。
freeeさんでは巨大なマイクロサービスアーキテクチャを採用していることもあり、環境構築には少し手こずった印象があります。
ただ、チームの人がずっとハドルを繋いで助けてくださり、無事に終わった時はみんなで喜んでとっても楽しかったです。

Day3~Day9

合計で3つのタスクの実装を行いました。
特にふたつ目のタスクは、バックエンドとフロントエンドの両方を担当して一つの機能を実装するものだったので達成感がありました!
詳しい開発フローや開発文化に関しては後述で詳しく書こうと思います。

Day10

最終日には全体の成果発表と懇親会がありました!
懇親会では、それまであまり交流のなかった他のチームに配属されていた人の話を聞けたり、成果発表で気になる内容を話していた人に質問したりしてとっても盛り上がりました。
美味しいご飯もありがとうございました!

開発

このインターンシップに参加する前にもいくつかの大規模コードに関わるインターンシップに参加していましたが、freeeさんでのプロダクト開発は特に以下の点で新しい学びがありました。

  • マイクロサービスアーキテクチャ
  • feature flag方式でのデプロイ
  • 厳密なセキュリティチェック
  • 開発フロー

マイクロサービスアーキテクチャ

マイクロサービスアーキテクチャとは、一つのプロダクト(どこをプロダクトの区切りとするかは難しいですが)をいくつかのサービスの集合ととらえて開発を行います。
例えば、今回自分が配属されたfreee人事労務というプロダクトの中でも、私は健康管理サービスの開発を行いました。
freee人事労務は一つのプロダクトとして存在していますが、その中でさらにコンテナや運用は分かれています。
それによって、一つのバグが仮に健康管理で生じても人事労務全体への影響はないような構成を目指すのがマイクロサービスアーキテクチャです。
この記事がとてもわかりやすかったです。
freeeプロダクトの中でも、どれほど厳密なマイクロサービスアーキテクチャを採用しているかはチームや部署にもよりますが、そのメリットデメリット含めてとても興味深かったです。

feature flagデプロイ

freeeさんでは、feature flagと呼ばれる開発手法でデプロイを管理しています。
Feature Flagは、アプリケーション内の機能を動的に有効/無効化できる開発手法で、コード内に条件分岐を設けることで、特定の機能の利用可否をフラグで制御することができます。
この手法の大きな利点は、新機能のリスク管理と開発効率の向上です。新機能を本番環境にデプロイした後でも、フラグによって機能をコントロールできるため、段階的なリリースや問題発生時の即座な機能無効化が可能となります。
また、開発中の機能を本番コードに含めたままデプロイできるため、フィーチャーブランチを長期間維持する必要がなくなり、継続的デリバリーの実現を支援します。
毎日大量のサービスで大量のリリースがあるため、このデプロイ方式は理にかなっていると感じました。

厳密なセキュリティチェック

新機能を開発する際に仕様書や設計のドキュメントを作成するのですが、設計ドキュメント(Design Doc)の時点でPSIRTと呼ばれるセキュリティ部門のチェックが入ります。
お金や機微な個人情報を多く取り扱うfreeeeプロダクトにおいて、設計書の時点でセキュリティのチェックが入るのはすごく重要なプロセスだと感じました。
また同時に、設計書の時点で脆弱性についての考慮を行えるセキュリティ部門のレベルの高さに驚きました。

開発フロー

私がいたチームは、1スプリント2週間のスクラム開発を行っていました。
スプリントの始まりの日にプランニングを行い、最終日にスプリントレビューやチームとしてのレトロスペクティブを行うという一連の流れを経験することができてよかったです。

おわりに

freeeさんのミッションは「スモールビジネスを、世界の主役に。」というものです。
そのため、より多くのバックグランドを持つ人が快適に使えるように配慮された仕組みになっていたり、働く側もさまざまな属性の人が働きやすいようにサポートされていていると感じました。
そのため、心理的安全性が非常に高かったです!
技術的にも発見があり、たくさん学べた2週間でした。
本当にありがとうございました!

Discussion