.png?tr=w-1000,h-1000,c-at_max?tr=w-1000,height-1000,c-at_max)
プレイドインターン体験記:フロントエンドからバックエンドまで挑戦した2ヶ月
Posted on
はじめに
こんにちは!
プレイドで6月から7月末までEngineerインターンとして働いていたアボンデットルイです。現在はアメリカのマサチューセッツ工科大学(MIT)でコンピューターサイエンスを専攻している大学生です。
高校でエンジニアリングに興味を持ち、知識を活かして価値のあるものを作り出せることに魅力を感じました。そこからプログラミングを始め、今ではコンピューターサイエンスのさまざまな分野を幅広く探求しています。
同じくCSを学んだ兄が以前プレイドでインターンをしたことがあり、とてもいい経験だったと聞いたので、僕も挑戦したいと思い今回応募しました。
今回が初めての日本の企業での実務経験で、エンジニアとして働くことの楽しさや難しさを実感しながら、たくさんのことを学ぶことができました。このブログでは、インターンでの経験を振り返りながら、自分が学んだことについて共有したいと思います。
① UI基礎の習得
インターンに参加する前から、個人でWebアプリをいくつか作っていたこともあり、特にフロントエンド開発にはある程度慣れていました。その経験を活かして、最初はKARTEのフロントエンドに関わる開発に取り組みました。
インターン開始直後は、Vue.jsやKARTEのコードベースに慣れるため、比較的シンプルなUI改善のIssueをいくつか対応しました。たとえば、検索機能の追加、ツールチップによって長いタイトルを全文表示する対応、ユーザーの入力形式に応じて表示を変えるフォーマット処理など、ユーザー体験を少しずつ向上させるような細かい変更です。
このようなタスクは、一見すると単純で地味に思えるかもしれませんが、実際には多くの工夫が必要でした。どのように既存のコードと整合性を保ちながら変更を加えるか、パフォーマンスに影響がないように注意すること、そしてUIコンポーネントの再利用性を損なわないように設計することなど、意外と奥が深い作業でした。
また、Vue.jsを本格的に使うのは今回が初めてだったため、最初はコンポーネントの設計思想やReactとの違いに戸惑うことが多くありました。特にKARTEのコードベースは大規模で、どこに何が定義されているかを見つけるだけでも最初は時間がかかりました。
とはいえ、こういった小さなIssueを積み重ねる中で、だんだんとVue.jsの書き方にも慣れ、大規模なコードベースのスタイルや構造にも自然に馴染めるようになっていきました。レビューで指摘された内容を意識して、自分なりにルールやベストプラクティスを積み重ねていったことで、次第に自信を持ってコードを書けるようになりました。
この時期は、「まずは手を動かして学ぶ」ことの重要さを実感した期間でもありました。コードを書くこと自体は目的ではなく、ユーザー体験をより良くするための手段であるということを、タスクを通して実感できたと思います。
② UI刷新の経験
Vue.jsに慣れてきたころ、管理画面のあるページを新しいデザインに全面的に改修する、大きなUIの仕事を任されました。この仕事は、Figmaで用意されたデザインをもとに、今あるUIを最新の仕様に合わせて見た目を新しくするものでした。
この作業は、画面をゼロから作るのではなく、既存の構造をできるだけ活かしながら新しい条件を満たすという、バランスの難しいものでした。全てを作り直すか、一部だけ変えるか、既存のスタイルや使いやすさを考えて、自分で最適な方法を考えながら進めました。
特に苦労したのは、コードの中でどこにどんな処理やデザインが書かれているのかを見つけることでした。画面は複数のパーツに分かれていて、データのやりとりも複雑だったため、「どこをどう変えれば見た目も動きも正しくなるか」を理解するのに時間がかかりました。
最初は難しさを感じましたが、コードの中にある意図を理解する力が少しずつつき、「なぜこう書かれているのか」「どのパーツが何を担当すべきか」といった視点で実装の方針を決められるようになりました。自分なりに工夫した実装方法を考えながら進める中で、コードの理解が深まり、自信にもつながりました。
最終的にFigmaのデザインとぴったり合う画面が完成したときは、とても達成感がありました。そして何より、自分が作ったものが実際にユーザーに使われるという実感が、エンジニアとしてのやる気をさらに高めてくれました。
具体的なタスクとしては、行動チェーン(β)のフォルダ機能における改善と、ユーザー構成比の画面改善でした。
③ バックエンドへの挑戦
インターン後半では、「バックエンドにも挑戦してみたい」と相談し、データ周りのIssueを対応させていただきました。タスクの内容は、ある管理画面の既存のフィルター機能に新しい条件を追加するため、SQLクエリの生成ロジックを修正し、BigQueryを用いた集計処理に新しいフィルター条件を組み込むというものでした。
このタスクは、技術的にも認知的にも非常に難易度が高かったです。まず、BigQueryもSQLも初めて触る技術であり、構文や最適なクエリの書き方に慣れるまでにかなりの時間がかかりました。また、複数のイベントテーブルをJOINしたり、ユーザー単位で集約したりといった処理が必要で、そもそも「このデータがどうやって構成されているのか」を理解するところからのスタートでした。
特に苦労したのは、巨大なコードベースの中で「どこがボトルネックなのか」「この値はどこからきて、どこで使われているのか」といった、データの流れを追いかける作業です。関数が分散していたり、抽象化されているレイヤーが多かったりと、全体像を把握するには時間と根気が必要でした。
ただ、その分だけ得られる学びも大きく、「なぜデータ処理をこのように設計しているのか」「フィルター条件が一つ増えるだけでも、どのような設計的配慮が必要か」といった、普段の個人開発では触れない視点を身につけることができました。
最初は不安でしたが、バックエンド開発に興味を持てるようになったのは、自分にとって大きな成長の一歩でした。
プレイドの文化
今回のインターンで一番印象に残ったのは、プレイドの働きやすさとカルチャーでした。初めての実務経験だったので、最初はもっと簡単な作業ばかり担当するのかと思っていたのですが、実際には自分が関わったタスクはどれもプロダクトにしっかりと関係していて、やりがいのある内容でした。常にメンターの方がサポートしてくださり、困った時には丁寧に説明してくれたので、安心して新しいことに挑戦できました。最初はうまくいかないことも多く、戸惑うこともありましたが、その経験が逆に自分の成長につながったと感じています。
2ヶ月という短い期間だったので、自分が関われた範囲は限られていましたが、それでも多くの方が自分に声をかけてくれて、新しいツールや機能の開発に参加するチャンスを与えてくれました。タスクを進める中でも、自分の興味や学びたいことを考慮してくれる雰囲気があり、インターンとしてとても充実した経験ができたと感じています。
インターンに参加してから、一緒に機能開発を行うチームの定例ミーティングに参加し、他のメンバーがどのような仕事をしているのかを聞くことで、プロダクト全体の流れやチーム間の連携の重要性を学ぶことができました。日々のやりとりを通じて、インターンであっても一人のメンバーとして扱ってもらえる環境にとても感謝しています。
最後に
今回のインターンを通して、エンジニアとして働くことの楽しさや難しさをたくさん学びました。最初は不安もありましたが、周りの方がいつも助けてくれて、新しいことにも安心して挑戦できました。
実際にプロダクト開発に関わる中で、自分の書いたコードがプロダクトの一部になる経験はとてもやりがいがありました。うまくいかないこともありましたが、そのたびにサポートしてもらい、少しずつ自信を持てるようになりました。
2ヶ月という短い期間でしたが、いろいろな技術に触れ、チームの一員として働くことができたのはとても貴重な経験でした。今回の経験を通して、エンジニアとしてもっと成長したいという気持ちが強くなりました。これからもプレイドの成長を楽しみにしつつ、自分もこの経験を活かして努力を続けていきたいと思います!
プレイドはエンジニアインターンを募集しています! 興味を持った方は是非応募してみてください!
サマーインターン
通期インターン