マネーフォワードでの1年間のインターンを振り返る
はじめに
私は2024年1月から1年ほど、マネーフォワード大阪開発拠点でバックエンドエンジニアとしてインターンをさせていただきました。このインターンを通じて、新規機能の設計・開発・テストコードの作成、CIパイプラインの作成など、さまざまなバックエンド業務に携わらせていただきました。
インターンを始めた当初のレベル
- 情報系大学3年(休学中)
- フロントエンドのインターン経験(半年ほど)
- Kotlin、Spring Boot、GraphQLの知識はほぼゼロ
- クリーンアーキテクチャ?
取り組んだこと(オンボーディング)
先輩社員の方にメンターについてもらい、開発現場で使用している技術スタックで、オンボーディング用レポジトリにPRを作成しました。ここで簡単にクリーンアーキテクチャの概要、Kotlin、Spring Boot、GraphQLでの開発を学びました。常に質問できる環境ではあるのですが、特にこの期間は15分に1回くらいは質問していたと思います。
また、空き時間にマネーフォワードについて理解を深めるための講習をオンラインで受講していました。
ここまでを2週間ほどで行いました。
取り組んだこと(オンボーディング後)
-
Feature Flag切り替え機能の導入
オンボーディング後は、社員の方が引き続きメンターについてくださり、このタスクを行いました。もともと、Feature Flagのstatusがバックエンドにハードコードで記述されており、エンジニアがon,offの切り替えを行い、それをデプロイすることでFeature Flagを切り替えていました。それをデータベースに切り出し、社内のアプリからon,offの切り替えを行うためのapiを作成するというものでした。ここではオンボーディングで学んだことにプラスして、テストの作成も行いました。
ここからは実際の開発チームに入り、プロダクトの機能開発をしました。開発内容を書くのは、長くなりすぎるので、どういった流れで開発していったかを書きます。
スクラム開発を取り入れており、1 スプリントを 2 週間に設定し開発サイクルを回しています。スプリントが開始されると、フロントエンドとバックエンド合同でgraphql schemaを作成します。その後、バックエンドでは各々が独立して開発できるように、各種 interface を作成しチーム内で合意を得た上で、メンバーにタスクを割り振り開発を開始します。
もっとマネーフォワード関西開発拠の日々の開発について知りたい方はこちらで詳しく知れます。
インターンを通して
1. 開発スピードと品質
ペアプロをしていただく機会がたまにあり、社員の方の開発スピードに圧倒されることが多々ありました。社員の方が、普段どういうことを考えながら開発や設計を行なっているかを直接聞ける、ありがたい時間でした。また、効率的で品質の高いコードを書くためにはテストが必須であると、テストの重要性を実感しました。開発だけではなく、業務に対する社員の方の姿勢も勉強になりました。
2. ドメイン知識の理解の重要性
インターンで直面した最大の課題の一つは、ドメイン知識の理解でした。スクラムのイベントでリファイメントというものがあるのですが、ここで疑問点の洗い出しをします。ある程度理解ができるまでに3,4ヶ月はかかった気がします。これは慣れかなとは思うのですが、毎リファイメント緊張していました。
3. チーム開発
スクラム開発やチーム開発など、実際に企業に入ってみないと経験できないことを経験させてもらいました。また、質問を気軽にでき、開発がしやすい環境でした。
4. 挑戦しやすい環境である
したいことをさせてもらえる環境で、手を挙げれば、どんどん挑戦できる環境であると感じました。github actionsを使ってciの作成をしてみたかったので、希望後すぐさせてもらいました。
5. 業務後
オフィスがWeWorkということもあり、業務後にオフィスでビールを飲んだり、飲みに連れていってもらったりと、業務外で社員の方とお話しできる機会がありました。社員の方と業務以外で交流できるのは、学生にとって経験し難いものなので、非常に貴重な時間でした。
最後に
この1年間のインターンを通じて、エンジニアとして成長することができました。しかし、より一層成長したいなと思うようになりました。マネーフォワードでインターンとして働くことで、エンジニアとしての当たり前の基準がものすごく上がり、自分にとってすごくいい経験となりました。この環境を用意してくださったマネーフォワードにすごく感謝をしています!
最後まで読んでいただきありがとうございました。
マネーフォワードの関西拠点では、インターン生を絶賛募集中です!
Discussion