受託会社でのエンジニアインターン(2023/1~2023/11)を振り返って
概要
今回は受託会社でバックエンドエンジニアのインターン生として大学2年の1月から大学3年の11月までの11ヶ月ほど働いていたときのことについて書いていこうと思います。
なぜ長期インターンを始めようと思ったかというと、自分で簡単なアプリを作るだけでなく、実務としてのプロダクト開発に関わることで実践的なスキルを身に着けいたいと考えたからです。
その中でも私がつばさ株式会社を選んだ理由は2つあります。1つ目が業務内容と使用技術がとても良いと思ったことです。2つ目が自社開発のプロジェクトも近々始めるつもりだということを面接の際に聞いたたことです。メインのプログラミング言語として、Pythonを使っていて、業務領域もバックエンドが多いという話を聞いて、自分の一番親しみのある言語で興味のある領域の業務をできるということがとても魅力的だと思いました。
参画したプロジェクト
電動機付き自転車のシステム開発
私が最初に携わったプロジェクトは電動機付き自転車に関するプロジェクトでした。
1ヶ月半ほどの研修が終わったあとに、このプロジェクトがあることを知りました。Pythonでかつバックエンド開発ができるかもしれないということで、ぜひこのプロジェクトをやってみたいと申し出て、入れてもらいました。
具体的には、スマートウォッチや自転車に取り付けられたスマートデバイスから自転車を漕いでいる人の心拍数やギアの段数、ペダルの回転数などを取得して、そのデータを分析して電動機のアシストを最適にするといったものでした。
開発に携わった期間は3ヶ月ほどでした。開発体制はサーバーサイドでのAPI開発では上司と私の二人で主に開発をしており、プロジェクト全体としては5〜6人くらいのものでした。
そのプロジェクトでの私の立ち位置
こちらのプロジェクトではバックエンドでの開発を任せていただきました。
スマートウォッチやスマートデバイスから取得したデータをバックエンドで加工してフロントエンドに返すようなものでした。
主にPythonとDynamoDB(NoSQL)を用いたCRUDのAPI開発やOpenapiでのAPI設計をしていました。
DynamoDBを使っていた理由はAWSのLambda関数を用いた開発をしていたことが挙げられます。
初めての実務経験&API開発であったため、最初はわからないことだらけでした。
開発業務を進めていく中でわからないことがあった際にも、そもそもWeb技術に関する知識が少なかったため上司へわからない部分の説明をすることや、上司からのタスクやエラーの解決策に関する説明を受けた際にその場で理解して議論することが難しいといった問題がありました。
そこで、専門知識の習得についてはWebシステムの全容が学べる本を買ったりなど、業務に必要な領域の本を買って自主的に勉強しました。
言語化の部分については上司に質問を聞きに行く前にSlackなどに不明点や疑問点を箇条書きでまとめて、自分なりに要点を整理してから伝えるようにしました。
勤怠管理システムの開発
2つ目に携わったプロジェクトは勤怠管理システムに関する開発でした。
こちらは自社内に向けた開発プロジェクトでした。
一般的な勤怠管理システムと同様に、勤怠開始や終了、休憩のボタンが押された際にデータをバックエンドに送って処理をするようなものでした。
開発期間は4ヶ月、開発体制は全体で上司と役員の方と私を含めたインターン生4人で、バックエンド側は上司とインターン生3人で開発を行っていました。
そのプロジェクトでの私の立ち位置
こちらのプロジェクトでも前回に引き続きバックエンドでのAPI開発をしていました。
前回のプロジェクトでAPI開発の経験を積めたこともあり、今回のプロジェクトでは一人でもAPIを作成することができるようになっており、成長を実感することができました。
こちらのプロジェクトでは一人でもある程度のAPI開発ができるようになっていたこともあり、上司とどのような機能が必要なのかについて話合ってまとまったタスクをもらうことが多かったです。
上司は他にもプロジェクトを兼任していたためオフィスに居ないことも多かったです。そのため、オフィスに上司がいる間にどのような機能が必要なのかを話し合って多めにタスクを決めておくことが多かったです。私には簡単でも、このプロジェクトが初めての他のインターン生にとっては丁度いいレベルのタスクがあれば積極的にタスクを振り分けて、逆に他のインターン生にとって難しいタスクなどは教えてあげたり、私の方で巻き取ったりといった感じで業務を進めていました。
自分が他のインターン生に渡したタスクについては、開発に詰まったりしていないかなど積極的に聞くようにしていました。その二人のインターン生と仲が良かったこともあり、タスクなどでわからないことがあったときに教えてあげたりするのはとても楽しかったですし、私自身もわからないエラーなどに遭遇したときには、どのようにしたら解決できるのかをみんなで議論するのがとても楽しかったです。
食品会社の受託開発案件
最後に携わったプロジェクトは食品会社のシステム開発に関する案件でした。
こちらのプロジェクトは大学での実験や研究室と就活との兼ね合いで、途中でインターンを辞めることになってしまったため携わった期間は1ヶ月ほどでした。
そのプロジェクトでの私の立ち位置
こちらのプロジェクトでは今までとは違いNode.jsとPostgreSQLを用いたバックエンド開発でした。
Node.jsを使うのは初めてでしたが、PythonでのAPI開発に慣れてからの開発だったこともありすぐに慣れることができました。こちらではAWS S3というストレージサービスを初めて使いました。画像やデータなどを手軽に保存できる点がとても便利だなと思いました。
使用技術
Category | Technology |
---|---|
Backend | Python, Node.js |
Infrastructure | AWS (Amazon S3, CloudWatch) |
Database | PostgreSQL, DynamoDB |
Version Control | Git, GitHub |
Tools | Postman |
まとめ
つばさ株式会社をインターン先に選んでよかったなと思っています。
実務未経験にも関わらず0→1でのAPI設計からAPI開発まで任せてもらえたりと、とても貴重な経験をすることができました。
0→1でのAPI開発など貴重な機会を与えてくださったり、わかりにくい質問をしてしまっても嫌な顔ひとつせず丁寧に教えてくださった上司や、わからないことがあったときに質問に来てくれたりと自分を頼ってくれたチームメンバーにはとても感謝しています。
チームメンバーがわからないところを教えたり、一緒に意見を出し合って開発を進めることはとても楽しかったです。
実務での実践的な開発スキルだけでなく、相手がわからないところがどこなのかを想像したり、わかりやすく説明するにはどうしたらいいかを考えたりなど、ソフトスキルの面も伸ばすことができました。
Discussion