マイナビのハッカソン型インターン「フルスタック開発プログラム」に参加し、グランプリ賞を獲得することができました
インターンを振り返りつつ感想などをまとめます!
ハッカソンの概要
<NDA>の<NDA>による<NDA>のためのプロダクトが用意されており、そのサービスを1万ユーザーから10万ユーザーにグロースさせるという目標が与えられました。
10万ユーザーに合わせたインフラ設計やユーザー獲得のための機能改善・新規機能開発を行いました。
1チーム4人で割り振られ、そこにインフラメンターとアプリメンターが付いてくださりました。
4日間と8日間のインターンがありましたが、私は時間の都合上4日間の方に参加しました。
フルスタック開発というだけあってインフラ設計からバックエンド・フロントエンドもできるといったほぼ全てを行える充実したインターンでした!
初日
最初にチーム発表がされ、その後自己紹介や、簡単なレクリエーションを行いました。
ハッカソンを進めていくうえで、リーダーを決める必要があったのですが、お互いにめちゃくちゃ遠慮して結局自分がリーダーになりました。
正直風邪をひいていたのでリーダーは避けたかったのですが、その後のサービス選定などで結局リーダーっぽい動きをしていたのでやってよかったです。
インフラ設計
AWS固定でインフラ設計を行っていきました。
現状課題としてEC2にコンテナ化されたWeb・API・DBがすべて入っていたため、ほぼ0からのインフラ設計となりました。
メンバー3名はクラウドを触った経験が無くAWSへの知識差があったため、サービス選定の際にそれぞれのメリット・デメリットや関係性を説明しつつ全員で選定を行いました。
また、その説明と同時並行でインフラ構成の図を自分以外の3名に作成していただきました。
AWS全く触ったことが無かったそうなのですが、流れまで完璧に図へ落とし込んでおりその理解力に驚きました...
こんなこと考慮するといいよ〜と予め資料に課題感が書いてあるため、それを参考にしつつ、可用性やセキュリティ、運用・保守性など様々なことを考慮しながら設計を進めました。
↓2日目に出来上がった構成図(モザイク加工してあります)
わからないことがあれば気軽にインフラメンターさんに聞けるため、AWSの知識がほぼ0でもなんとかなると思います。
私はCI/CD周りでわからないことあったのでメンターさんに聞きまくりましたが、快く一緒に調べていただけました。
構成レビュー会では、お褒めの言葉を頂きつつも、考慮不足の点を丁寧に教えていただき大変勉強になりました!
Webアプリ開発
2日目の午後からWebアプリ開発のワークが始まりました。
といっても最初から手を動かすのではなく、以下のように進めていきました。
- ターゲット・コンセプト・ベネフィットを考える
- サービスの改善点を見つける
- 優先度を決める
- 役割分担し各々のタスクを決める
上記手順を真剣に行ったことが、結果に繋がったのではないでしょうか。
タスクを決める際、せっかくならこのインターンで挑戦的なことをしたいと思っていたので、私はAIを使用した重めの新規機能開発にしました。
サービスはTypeScript/Next.jsで書かれており、普段バックエンドをメインにしている私にとってはほとんど経験がありませんでしたが、なんとか締め切り1時間前ぐらいに終わらせることができました。
TypeScriptは型による補完や早期エラー発見に繋がってありがたいなという思いと、例外的な場合でも型に合わせなくてはいけない大変さがありました。
any使ったら負けだと思って、歯食いしばってコーディングしてました。
昨今TypeScript好きな人が多いですが、しっかり言語仕様まで学べばたしかにハマりそうな予感はしました。
ちなみにどんな開発を行っていたかの詳細は、サービス内容がわかってしまう可能性があるため伏せさせていただきます。
インターンに参加してからのお楽しみというやつです。
成果発表・結果
最終日にインフラとWebアプリの両方を含めた成果発表を行いました。
私たちのチームは最後だったので少し緊張しましたが、説明やデモも問題無く終わり、無事に良い発表ができたと思います。
結果としてグランプリ賞をいただくことができました!
評価されていた点としては色々ありましたが、まず個人的にはスライドがとても良かったと思っています。
メンバーの方にデザインつよつよの方がいたので、アイコンやグラフを使用しつつシンプルで見やすいスライドを作成していただけました。
また、技術的な点を多く評価していただけました。インフラにしろwebアプリにしろ、かなり挑戦できていたのではないかと思います。
ですがグランプリ賞にあたってはビジネスにどう貢献しているか、という部分がとても重要視されていた気がします。
私たちのチームはアプリワーク初期に、どのような機能を実装したら顧客が増えるか、如何にユーザーを獲得するかの分析を重点的に行いました。
そのおかげか、「目的が一貫しており、目標のユーザー数10万人の達成方法が現実性のあるものになっていた」と好評を得ることができました。
また+αとして機能レベルでマネタイズを考慮していたチームは私たちだけだったので、その点も評価いただけました。
施策・インフラ・アプリにおいて、どのような課題・目的があり、それをどう解決するか全員で議論し発表で伝えられた結果、グランプリ賞を獲得することができたんじゃないかな〜と思います。
インターンに対する感想
ハッカソンと言えば0からサービスを作成するイメージですが、グロースに焦点を当てるという点が面白かったです。
実際の業務でも 0->1 より既存サービスをグロースさせる方が圧倒的に多いと思うので良い経験になりました。
巷におけるフルスタックインターンは「フルスタック(フロントエンド・バックエンド)」ということが多いですが、マイナビのインターンではインフラ設計から始められるので、なんでもやってみたいフルスタックエンジニア志望の方にぜひオススメです!
全体の感想
風邪をひきつつもなんとか気合で乗り切ることができ、さらにグランプリ賞までいただけて達成感でいっぱいです!
教えられそうな部分などは積極的に知識共有し、少しはチームの役に立てたんじゃないかと思います。
また各々の得意分野が異なっていたおかげで、適材適所にタスクを割り振り円滑に進めていくことができました。
メンバーと支えてくださったメンターの方に大感謝です!
ありがとうございました!!