思考の備忘録
2024/3/1

エンジニア長期インターンシップ体験記

目次

はじめに

こんにちは。 株式会社Next Finance Techで2022年6月から長期インターンシップ(業務委託)をしている平野と申します。 この記事では、私のインターンシップ体験について共有します。 主に、参加の動機、業務内容、よかったこと、学んだことを順に説明します。

著者の自己紹介

私は現在大阪大学大学院情報科学研究科に在籍している大学院生です。 本インターンシップに参加するまでは、趣味でiOSアプリを個人開発したり、研究や授業でPythonを利用していましたが、エンジニアとしての実務経験はありませんでした。 最近はフルスタックエンジニアを目指し、TypeScript・AWSを主軸に勉強・開発をしています。

参加の動機

個人で開発をしていた時期に、エンジニアとしての実務経験がないことに不安を感じていました。

そこで、

  • チームで開発をしてみたい
  • 最新のテック環境で開発をしてみたい
  • すごい人たちと一緒に働いてみたい

という思いがありました。

その時、偶然にも、大学の先輩であり私のiOSアプリの開発の話等を知っていたCEOの徳力さんから「フロントエンドの開発に関わってみないか?」と声をかけてもらい、インターンシップに参加することになりました。 ちょうど、Bitcoin: A Peer-to-Peer Electronic Cash Systemを読んでいたこともあり、暗号資産・DeFiに興味があり、参加する他ないと思いました。

業務内容

業務内容は、フロントエンドの開発・保守運用とAWSのインフラの構築タスクがメインです。

タスクはイシューボードから適宜割り振られたり、バグ等を発見したら自分でタスクを切ります。 そして、その実装をPull Requestとして提出し、コードレビューを受けた後、マージするという流れでした。 その他、週時定例ミーティング、Slack、月時1 on 1ミーティング等で相談、報告を行い、詳細が決まっていないものは議論して詳細を練っていきました。

最初はフロントエンド開発初学者だったため、要件と方針を提示してもらっていましたが、最近は技術選定も一部関わったり、ライブラリの提案等も行っています。

主な使用技術: TypeScript, Next.js, Astro, AWS, Docker, GitLab CI/CD, GraphQL, Strapi, Tailwind CSS, MUI, PostgreSQL, bash

よかったこと

本インターンシップを通して、自分の思いとしてあった、

  • チームで開発をしてみたい
  • 最新のテック環境で開発をしてみたい
  • すごい人たちと一緒に働いてみたい

をすべて満たすことができました。

まず、チーム開発ならではの体験をたくさんできました。 色々な方からコードレビューをもらい、実務でのコーディングのノウハウを学べました。 さらに、各人の考え方やコーディングのフィロソフィーを学べ、価値観が広がりました。

さらに、モダンな技術に強いエンジニアが多く在籍している会社なため、最新の開発を経験することができました。 業務内容を見ていただければわかるかと思います。

そして、すばらしい経歴を持つ方々と一緒に仕事ができました。 Goldman SachsやAmazon Web Service等の大手外資出身者、本業がメガベンチャーの方、フリーランスで独立して活躍されている方等、様々な業種の様々な経験を持っている方と共に仕事ができたことは、本当に貴重な経験でした。 皆さんは何よりも頭の回転が早く、仕事のスピードが速く、かつ正確です。 将来の目標にしたい方だらけで、本当に刺激を受けました。

優秀なエンジニアとともに働いたからこそ学べたこと

多方面で活躍されている一流のエンジニアから、技術面以外に、

  1. 問題に直面した際の解決の方法
  2. 質問の仕方
  3. 技術選定のための情報のインプットの方法

について学べたことが大きく印象に残っています。

問題に直面した際の解決の方法

インターン生とはいえど、立ち上げて間もないスタートアップの会社であり、インターン生の対応に多くの時間を避けないフェーズでした。 従って、問題に直面した際には、自分で解決する能力が必須でした。 最初は、問題に直面した際に、どうすればいいかわからないことが多くあり、幾多の「わかりやすい」を売りにした二次ソースを読み漁り、解決を試みることが多かったです。 しかし、そう簡単に解決するものばかりではなく、問題解決できないことも多々ありました。

そこで、巷で(そして特にNext Finance Tech社テックリードの栗原さんに [1])よく言われている「公式ドキュメントを読め」という言葉の重要性を身をもって体感しました。 最初は解決するならどのようなソースでもいいのではと思っていましたが、情報の新しさ、そして正確性が保証されていない二次ソース(技術系記事等)では問題解決できないことが多々ありました。

ただ単にバージョンが古いため動かないってこともあるのですが、さらに公式ドキュメントでは他ソースに比べ、よりよい解決策やオプションが提示されていたり、「セキュリティ的にリスクになる恐れがあるから〇〇せよ」等警告をしてくれる場合もありました。

また、公式ドキュメントに加え、Github IssuesやRelease Notes (CHANGELOG)の重要性にも気がつくことができました。 情報が新しすぎてGoogle検索ではヒットしないことが多々あったため、そのノウハウを学べてよかったです。

この経験を身をもって体験できるのは、小規模スタートアップならではと感じました。

[1]: 栗原さんの前職がAWSのサポートエンジニア(エンジニアがお手上げになった問題をサポートする部署)であり、問題解決のスペシャリストならではの言葉だなと感じました。

質問の仕方

質問の仕方についても、多くのことを学びました。 問題の解決方法をいくら学べたとしても、まだ私は経験年数が浅いため、どうしても解決できない問題もたくさんありました。 また、リリースが迫っているタスクが多かったため、手詰まっていると多大な迷惑をかけてしまうこともあり、定期的に「ほうれんそう」は欠かしませんでした。

ただ、質問1つするにしても、相手に伝わるように質問することは(自分のその領域の語彙が不足している場合特に)、とても難しいことでした。

その時に教えてもらって、実践を頑張っているのは、下記フォーマットで質問すると意図が伝わりやすく、上長な言葉で何を言っているかわからない状況になりづらいってことでした。

## 今発生していること

## 解決したいこと

## 調べたこと・考えてた仮説

このフォーマットを使うことで、質問者の意図が伝わりやすくなり、回答者も回答しやすくなるということでした。 このノウハウを社会人になる前に学ぶことができたのは本当によかったです。

技術選定のための情報のインプットの方法

そもそもエンジニアで仲のいい知り合いがいなかったため、定期的な情報収集方法がわかりませんでした。 そこで、情報収集方法を教えてもらいました。 エンジニアとしてこれから行きていくに当たり、とても大切なことだと感じました。

終わりに

この1年半、様々なことを学ばせていただき、本当にお世話になりました。

この経験がないと、

  • そもそもエンジニア職を志望していない
  • 志望していても、様々な会社から内定をもらえていない

ということになっていたと思います。

また、

  • 興味があることを学びながら給与をいただける
  • 自由な時間に働ける
  • 厳しいコードレビュー等で成長を実感できる

環境は他には無い最高なものでした。

特に、フロントエンドとインフラについて0から根気よく指導してくださった栗原さんには本当に感謝しています。 コーディングのフィロソフィー、就活のアドバイス、そして何よりも、エンジニアとしての姿勢を学ばせていただきました。

今後もどうぞよろしくお願いします。 一度就職で離れることになるとは思いますが、またの機会に一緒に働けることを楽しみにしています。 そのために、これからもさらに高みを目指して成長していきます。

稚拙な文章ではありますが、最後まで読んでいただきありがとうございました。