【エンジニア職】Finatextグループサマーインターン開催レポ -2025年-
はじめに
こんにちは、Finatextでエンジニアをしているtoumakidoです。
Finatextグループでは、現場エンジニアが中心となって日々さまざまな施策を企画・実施しています。
今回はその中でも目玉施策である、サマーインターンシップ - 2025 を開催したので、その模様を紹介します。
エンジニア就職を考えている学生の皆さんは、ぜひ今後の参考にしてください!
なお、インターンプログラムの内容は、あくまで今年度のものとなります。今後内容が変更になる場合がありますので、あらかじめご了承ください。
エンジニアプログラムの募集と選考
エンジニア職はソフトウェアエンジニアプログラムとデータサイエンティストプログラムを募集しています。詳細につきましては以下のページをご覧ください。
ソフトウェアエンジニアプログラム
まずはソフトウェアエンジニアプログラムについて紹介します!
データサイエンティストプログラムを先に読みたい方はこちら に飛んでください。
プログラム概要
今年のプログラムのテーマは昨年度と同様、「証券取引システムを構築する」でした。
参加者の学生は3人1チームで、弊社の事業と関連が大きい、株式の注文受付システムを構築します。
ソフトウェアエンジニアプログラム詳細
最終日に社内で成果発表会があるので、それに向けて開発を以下の2ステップで進めていきます。
- 基本的な注文受付サーバのAPIの実装
- 1で作ったシステムに、追加したい機能を考えて、AWSサービスの選定から開発をしていく
スケジュール
昨年度に引き続き、今年のサマーインターンも5日間実施し、ガッツリ開発してもらいました💪
この5日間には開発作業以外にも、社内外のエンジニアによる講演や、メンターエンジニアとの1on1、ランチなど、様々な内容が組み込まれています。
スケジュール
AWS特別講義
初日のオリエンテーションとして、昨年度に引き続きアマゾンウェブサービスジャパン合同会社の高橋様(Yukkiさん)、穂高様をお招きし、前半と後半に分かれて、AWSについての特別講義を実施いただきました!
前半
高橋様によるAWS特別講義(前半)の様子
前半の講義ではそもそもクラウドとは何か、どんなところでAWSが使われているのかなどをお話ししていただきました。
身近なサービスを例に出しながら、クラウド、AWSについて説明していただき、クラウドという、最初は曖昧になってしまいやすい技術への理解を、よりクリアにしてくれる内容でした!
後半
穂高様によるAWS特別講義(後半)の様子
後半の講義では代表的なAWSの各種サービスの機能や、そのユースケースを紹介していただきました。
またAWS上でシステムを構成するときの主な考え方やベストプラクティスを教えていただきました。
Amazon EC2(以降、EC2)やAmazon Relational Database Service(以降、RDS)、AWS Lambda(以降、Lambda)といった具体的なサービスについて知ることで、実際にどのようにクラウド上でアプリケーションが動いているかをイメージしやすくなり、これからはじまる開発作業がよりスムーズになります!
学生にとって馴染みのないAWSについて、AWSの方に直接、基礎から教えていただけるのはとてもありがたいですね。
開発
オリエンテーション後、いよいよ開発作業に取り組み始めます。
まずは仕様と要件を確認し、ローカル環境で動かせるように、注文受付サーバのAPIを開発していきます。
開発初日の様子
開発は、チームで話し合いながら、協力して進めていきました。
開発に行き詰まった時には、メンター社員と相談したりしながら、一つずつ解決していきました。
そして順調に開発は進み、、
無事に3日目のお昼頃に、AWS上で注文受付サーバを動かすことができました👏
そしてこの後は追加実装に進みます💪
追加実装案は運営メンバーから提案したものから選んだり、学生自身でどの機能を追加するか決めて取り組んでもらいました。
追加実装では、一からその機能を作っていくため、AWS上でのサービス選定から実装まで、考えることがとても多いですが、チーム内で役割分担したり、一緒に協力したりと試行錯誤を重ねながら進めていきました。
成果発表会
さあ、あっという間に開発期間は終わり、いよいよ最終成果発表です。
プログラム最終日に、各チームごとに最終的なプロジェクトの成果発表をしました!
開発したシステムがどのように機能するのか、追加実装では何をしたのか、工夫したこと、学んだことなどを話してもらいました。
チームAの発表の様子
チームBの発表の様子
開発したアーキテクチャ
両チームが作成したアーキテクチャはこのようになっており、両チームともAmazon Elastic Container Service(以降、ECS)とRDSを使って、注文受付サーバを構成しました。
アーキテクチャ図
ここからは各チームの追加実装を紹介します。
チームAの追加実装
チームAは、以下の追加実装をしました。
* GitHub Actionsによる、デプロイの自動化
* Amazon Elastic Container Registry(以降、ECR)のライフサイクルポリシーの設定
* Amazon CloudWatch Logs、Lambda、Amazon Simple Notification Service(以降、SNS)を使ったエラー通知の仕組み
* RDSのリーダーインスタンスの追加
* ECSのCPU使用率によるオートスケーリング
* Lambda、Amazon Simple Queue Service(以降、SQS)による非同期注文
とても盛りだくさんな内容になっていますね。
特に、CI/CD、エラー通知、リーダーインスタンスの追加、オートスケーリングなどの運用面を効率化する機能や、サービスの信頼性を高める機能が充実していて、単発の機能実装ではなく、継続的なサービス運用の観点を持っているのが素晴らしい印象でした。
GitHub Actionsによる、デプロイの自動化
2日間でこれを仕上げるとは、GitHub Actions初めてとは思えないですね。
Lambda、SQSによる非同期注文
ECS-RDS構成だけではなく、Lambda-Amazon DynamoDB(以降、DynamoDB)-SQS構成も組んでくれました。
チームBの追加実装
チームBは、以下の追加実装をしました。
* 時間によるオートスケーリングで、株式市場でアクセスが集中する時間に対応する
* セキュリティグループの最小化
* AWS Identity and Access Management(以降、IAM)の最小権限化
* Amazon Cognito(以降、Cognito)によるユーザ認証の仕組み
こちらのチームもとても重要な機能を追加してくれました。
特に、セキュリティグループの最小化、IAMの権限最小化、Cognitoによるユーザ認証の仕組みと、セキュリティ面の機能が充実していますね。セキュリティはサービスを提供する上で、顧客の資産と信頼に直結する非常に重要な要素なので、より強固にしてくれたのは、とても素晴らしいですね。
IAMの最小権限化
既存で用意したロールの権限過多とそれによるリスクを指摘し、修正してくれました。
Cognitoによる、ユーザ認証の仕組み
実際のサービスでもよく利用されているJWT認証を一から実装してくれました。
講評、質疑応答
発表会にはアマゾン ウェブ サービス ジャパン合同会社よりゲスト審査員をお招きしました!
AWS社の方々からは、成果物に対するフィードバック(以降、FB)に加え、AWSを学んでいく上で、”各サービスが内部でどのように動いているか想像することがとても重要”といった貴重なアドバイスをいただきました。
また多くのエンジニア社員も、この成果発表会を聞いており、質問やアドバイスを積極的に投げかけてくれました。
講評の様子
データサイエンティストプログラム
データサイエンティストプログラムについては、ナウキャストでデータサイエンティスト/データエンジニアをしている岡田からご紹介します!
プログラムの概要
今年度は7名の学生にご参加いただきました!一昨年度は4名、昨年度は5名で、学生の受け入れ人数を年々増加させています!
学生は1チームあたり2~3人の3チームに分かれてもらい、チームごとに事前に割り振ったテーマに取り組んでもらいました!
- プライベートブランドの売上の指数を作成しよう(POSチーム)
- POSのデータを使って小売各社のプライベートブランドの売上に関する指数を作成し、全体の指数とどのような違いがあるか分析する
- 企業の成長性を評価しよう(企業成長性チーム)
- 求人広告データを使って企業の成長性を評価することで、将来的に成長を続ける企業はどのようなものなのか分析する
- 新規物件の賃料を予測するモデルを作ろう(賃料予測チーム)
- 周りの物件の賃料や様々なオルタナティブデータから賃料の予測を行う
インターン生には分析だけでなく、社員を前にした発表や、発表で使う資料の作成も行っていただきました!
分析環境
ナウキャストでは、多岐にわたるデータソースを一元的にまとめるDWHとしてSnowflakeを採用しています。今回インターン生にもSnowflake上で整備しているデータを使ってworksheetやnotebook上で分析をしてもらいました!
ちなみにナウキャストはSnowflakeについて、単なるDWHとしての利用に留まらず、ここ1年の間でリリースが続いている生成AIに関する機能もフル活用しています!詳細は以下のプレスリリースや社員によるテックブログをご覧ください!
Snowflakeの「Industry Solution Partner of the Year」を受賞| ニュースリリース | 株式会社ナウキャスト - オルタナティブデータで経済の"今"を知る
ナウキャスト Snowflake Summit 2025 参加レポートまとめ
実施内容
プログラムは、上記テーマの分析作業だけでなく、外部ゲストをお招きした学生向けセッションや社員との1on1など盛り沢山な内容となっています!
1日目
1日目の午後は、Snowflake合同会社のシニアソリューションエンジニアの方による勉強会がありました!
インターン生の中には経済学系の学生も多く、情報系の学生であってもデータ分析をメインで勉強していると、クラウドやRDBMS、DWHなどを知る機会はほとんどありません。勉強会ではその点を考慮いただき、上記の初歩的な概念の解説から始まり、Snowflakeのアーキテクチャの特徴、実際にサマーインターンで使うSnowflakeの機能をご説明いただきました!インターン生にとっては、そこからの5日間で扱うプラットフォームがどういうものなのかを理解するための時間になったと思います。また、社員としても、社内で活用を進めているデータクラウドの利便性を再認識できるような内容となっており、非常に有意義なセッションでした!
3日目
3日目の午後には、メンター以外の社員に向けた中間報告会を行いました。
内容は、取り組んでいるテーマの内容、テーマに対する仮説、どこまで分析できているか、分析の上でどのような部分に苦戦しているか、といったことを最初の15~20分程度でインターン生から発表してもらい、それを受けて社員のデータサイエンティスト・データエンジニアがFBをしたり議論を行う、というものです。中間発表より前の時点でメンターの社員が適宜FBをしていますが、知らない社員に向けた説明を行ってもらうことで、最終発表に向けた分析方針や発表方法の調整・練り直しをしてもらうことが目的です。
この中間報告会は昨年度までも行ってきたことですが、今年度から改善したのが時間の確保です。昨年度までは1チームあたり30分で、時間が不足してしまうという課題がありました。今年度はその反省を活かし、チームごとに部屋に分かれて同じ時間帯に1時間のセッションを設けました。
このおかげで、各チームは社員から多くのFBを貰うことができました!以下は賃料予測に取り組んだチームへのFBのごく一部を抜粋したものです。
- Streamlitを使ってEDAを効率化したのはgood
- 予測精度の説明にはMAPEが適切。賃料の分布はスケールが大きいため
- LightGBMは過学習しやすいため、train/ test/validの精度の確認が重要。validation / rmseの学習の回数を見るといい
- LightGBMはハイパーパラメータチューニングで結果が変わりやすいので、Optunaを使って調整するのがベスト
- 過学習しにくくするために交差検証をするべき
- 作成した特徴量に対して仮説を持つといい。実務で使う場合、根拠が一定あり説明がしやすい方が良いという考えがある
- どの特徴量が効いているのかSHAPを見て詳細に分析するといい
- 残差が大きい物件は、具体的な緯度経度をGoogle マップで調べてみるべき
学生にとっては一部難しいFBもあったと思いますが、この中間報告会について、多くのインターン生から以下のような高評価を貰いました!
- 的確なFBが頂けて、頭もクリーンになった
- 今後の分析の方針に迷っていたが、この発表会のFBを通して方針がまとまったので、とても良い機会だと感じた
- FBが適切でその後の作業がより効率化された。プロフェッショナルなデータサイエンティストの方と話せて非常に有意義であった
- 仮説を絞らないと価値を生み出せるか生み出せないかが運任せになってしまうというご指摘を受けてハッとした
5日目
最終発表会はオフィスのオープンスペースで実施しました。中間発表からの短い時間の中で、いずれのチームも発表として成立する形を作り上げることができていました!
限られた時間ではありましたが、各チームに対しては以下のようなFBがありました。このような充実したFBがもらえることも、当社のインターンシップの特長だと思います!
- POSチーム
- 中間発表時と比べて課題や分析がクリアになっていて良い
- プライベートブランドとナショナルブランドの差は、単純な価格戦略の差が出ているだけでは?要はPBとNBの値上げタイミングが逆なら結果も逆になるのでは?
- 「データが多い」のであればサンプル数を示すと説得力が増す
- 図やグラフの説明が欲しい
- 企業成長性チーム
- スライドが非常に分かりやすい
- 成長性の比較の仕方が分かりやすく、かつ適切
- 仮説を提示してデータで確認という流れが分かりやすくてよい
- グラフのどこを見るとよいのか、説明がほしい
- 「成長性」の定義として設定した売上高はたしかに客観性が高いが、データの更新頻度が非常に遅いという欠点がある。一方で求人広告データは週次で更新されるという速報性の高さに一つの価値がある
- 上場企業に絞っているが、上場していない企業の成長性を把握できることにこそ意義があるのでは
- 社員数を300人から500人に絞っているが、数十人レベルの企業がすごい売上を立てていて、事業拡大のために採用拡大をしているというようなケースが拾えるとより意義があると思う
- 回帰分析のモデルは全体の中から絞ったもの(要はサブサンプル)で推定しているので、その特定のフィルターの下での傾向しか反映していないのではないか。「その産業だから」というような固定効果を捉えれば成長性に寄与する変数が特定できるかも
- 賃料予測チーム
- 「外れ値」を何かしらの方法で特定して落とすという前処理をしなかったのか?しないのならそれはなぜか?(LightGBMは外れ値に引っ張られる可能性がある)
- 東京の中でも23区の中と外でかなり変わるのでは?
- 「同じ地区の平均賃料との差」を変数に入れるなら、他の変数も平均を引いてあげるべき
- 予測が外れる物件は、モデルとして考慮できていないことが原因なのか、それともそういう物件なのか
- 交通量のノイズが多いのであれば、考慮できるデータがあると望ましいと思うが、どういうデータがあると嬉しいか。もし取り除くことができるなら、どのような方法が考えられるか。といったことを考えると、新しいデータ開拓のヒントになるかもしれない
POSチームの発表の様子
企業成長性チームの発表の様子
賃料予測チームの発表の様子
その他イベント
5日間の中で、開発以外にもいろいろなイベントがあったので、2つピックアップして写真と共に紹介します。
ランチ会
初日のお昼にAWSの方も交えてオフィスでお昼ご飯を食べました!
みんなでランチを食べる様子
プライベートなことから、就活についてなど、色々なことをざっくばらんにお話ししました。
CTO/CISO田島による講演
2日目の朝には、弊社CTO/CISO田島がFinatextグループの開発組織について講演しました。
CTO/CISO田島による講演の様子
Finatextがどのように開発効率を落とさずに、セキュリティを強固に保っているか、その技術や考え方について説明いただきました。
参加者の声
プログラム全体を通じて参加者から以下のようなコメントを貰いました!
ソフトウェアエンジニアプログラム
5日間の中で、現場での作業や、AWSを使った開発など、新鮮で学びの多い体験ができたようです。
- 個人ではなかなかできないAWSの経験をできて知識・経験をつけることができた。メンターの方も丁寧に質問に答えたり、アドバイスをくれてよかった
- 個人でクラウドを触るのは利用料的にもハードルが高いのでインターンを通じて様々なサービスに触れることができてよかった。追加課題も制約がなく自分がやりたいことをできた
- 実際にオフィス内で作業することができ、現場の雰囲気を感じられた点がよかった
- 職種に関わらず多くの方々とコミュニケーションを取る機会があり、社内全体の雰囲気を知ることができた
データサイエンティストプログラム
プログラム全体を通じて実務的なデータ分析の特徴や難しさを実感し、学びの多い時間を過ごしてもらえたようです。
- 今回のテーマが比較的抽象的だったため、方向性を決めるのに時間がかかってしまったり、また、複雑なデータを処理することにも時間がかかってしまったり、結果的に分析にかけられる時間が短くなってしまった。データの処理や分析設計に慣れ、より深い分析にも今後挑戦してみたいと思った
- 精度を重視するより、より簡単なモデルでお客様に説明するという観点に魅力を感じた
- データ分析については、統計的な知識が必要な部分があったり、どう前処理をするかといったり、結構AIではできない部分の作業が多いなと感じました
- 困難な場面も多くありましたが、メンターの方に聞いたりLLMを活用して解消したり、完走する方法を知り、自走力がつきました
- メンターからわからない部分に対してすばやくレスポンスをいただけ、悩む時間を減らすことができました
- 最終発表会で難しかった点を評価していただけて、素直に嬉しかったです。また、抽象的なお題に対しどうまとめるかを悩んだが、しっかりと結論を出せてよかったです
まとめ
今年も無事サマーインターンプログラムを完走することができました 👏
本当にあっという間で、とても充実した5日間になりました!
学生にとって馴染みのないクラウドでシステムを構築することは、本当にわからないことの連続だったと思います。
そんな中で一つ一つわかることを増やしていき、チームで目標に向かって課題解決をしていった今回の体験が今後の糧となれば幸いです。
Finatextグループではインターンを経て活躍する新卒社員も多く、スキルアップを図るのに充実したプログラムを提供しています。これからも参加者の目線で内容をブラッシュアップしていきますので、ぜひ次回以降の開催をお楽しみに!
Discussion