ゼスト Tech Blog

ゼストは「護りたい。その想いを護る。」をミッションに、在宅医療・介護業界向けのSaaSを開発しています。

これまでのインターンを振り返る

こんにちは!株式会社ゼストでバックエンドエンジニアインターン中の奥田です。

今回は1年2ヶ月になるインターンで行ってきたことの振り返りと、自分の考えるゼストインターンの魅力をお伝えできればと思います。

少しでもゼストでのインターンを検討している方の参考になればと思い、今回の記事を書かせていただきます。

背景

自分は現在、東京大学修士1年生で、学部2年生の際にUTokyo Tech Club (UTTC)という学生団体に入ったことがきっかけで、webアプリケーションの開発を始めました。

www.uttc.dev

ここで学んだ後、フロントエンド領域でインターン等を行っていましたが、バックエンドでも実務経験を積みたいという思いがあり、ご縁があってゼストインターンを始めさせていただきました。

インターンで行ってきたこと

自分がゼストインターンでこれまでに行ってきたことを振り返ります。
特に印象に残っている3つのタスクについて具体的にご紹介します。

外部システムとのデータ連携機能の実装

ゼストでは、「オープンエコシステム」を掲げ、複数の外部システムとの接続を行っています。 techblog.zest.jp

インターンを始めてまず主に携わったのが、外部システムとのデータ連携機能です。
具体的にはCSVエクスポート機能や連携先フォーマットに対応したCSVインポート機能、外部連携用に登録・更新・取得を行うAPIの開発に参画しました。

この開発においては、CSVAPIにてそれぞれでの登録・更新という軸と、それぞれの外部システムという軸の2軸で、マトリックス的に場合分けが生じます。
各場合について仕様を整理し、PdMの方々と細かい確認をとりながら開発を進めていきました。

また実装については、今後も外部連携先のシステムの追加が考えられるため、外部連携の共通基盤を作成して、型付けまで含めて拡張性の高い設計になるように意識しました。
一連の開発を通して、保守性・可読性・パフォーマンスの高い実装を行う基礎的な力がかなりついたと感じます。

曖昧なジオコーディング結果の検知機能の実装

もう1つ印象に残っているタスクが、住所から経度・緯度を取得するジオコーディングに関わる機能です。
ZESTシステムは訪問スケジュールのサービスということもあり、住所を技術的に扱うシーンがよくあります。そのためには住所をもとに、バックエンド内部においてGoogle MapのGeocoding APIを呼び出して経度・緯度に変換するのですが、その結果がうまく一意に定まらないという問題がしばしばありました。
この問題は取り込んだ住所の文字列が不完全であったり、日本特有のイレギュラーな地域の住所が原因で起こるものでした。

開発自体は、Geocoding API利用時にその結果が不正確な懸念があるかを判定し、懸念がある場合は社内用の管理画面で警告を出す機能を実装する、比較的単純なものでした。
しかしこのタスクでは実際に様々な住所でAPIの挙動を調査するところから始め、調査結果をもとに警告条件や警告取り消しの仕様をPdMの方等と話し合ったため、調査から仕様決定まで関わったという点で印象に残っています。

経営指標ボードの開発

直近の2ヶ月間はZEST BOARDという経営指標ダッシュボードの開発に参加しています。
これはZESTシステムのデータウェアハウスに蓄積された企業のデータに対して経営指標となる統計情報の可視化を行う開発になります。
技術的には、DWHとしてBigQuery、BIツールとしてLookerに触れています。

これまでのバックエンド開発では、開発対象に関連するテーブルだけを把握していれば済みましたが、この開発では既存の様々なテーブル構造を理解・把握する必要があります。プロダクトの全体像への理解が深まるとともに、今までの機能開発とは異なる観点での成長を日々感じています。

ゼストインターンの魅力

ゼストインターン経験を積むことの魅力について 、自分の考えを述べたいと思います。
魅力の主なものとして3つの観点を挙げさせていただきます。

挑戦の幅が広く、自由度が高い

まず一番に感じるのは、挑戦できる領域の広さです。
自分自身、はじめはバックエンド開発からスタートしましたが、現在はZEST BOARDのBIツール開発へと分野を変えて挑戦させていただいています。
ゼストでは他にもフロントエンド開発や生成AIの応用など、挑戦できる領域が幅広く用意されています。そして個人の興味関心を尊重してアサインしてもらえるため、これをやってみたいという意志があればかなり応えてもらいやすい環境です。

また技術スタックがFull-Stack TypeScriptであるため、フロントエンドとバックエンドの垣根を超えた開発に挑戦しやすいのも大きな特徴だと思います。

高い実装力が養われる

ただ動くコードを書くだけでは許されない環境も、成長できる要因です。
可読性や保守性、そしてパフォーマンスの高い実装が求められます。
作成したPRに対しては、必ず2名以上のエンジニア社員の方(最近ではAI Reviewerも)がレビューをしてくださいます。
自分では気づかない視点や、より良い設計のアドバイスを丁寧に頂けて着実に成長を実感できます。

事業の急成長を間近で実感できる

ゼストは週次単位での継続的なリリースを行っており、改善系のリリースもあれば、大規模な新機能リリースも続いている状況です。
導入事業所数もどんどんと増えており、プロダクトと事業の規模が急拡大していることを肌で感じられます。
事業の拡大に伴いパフォーマンス改善などの新たな技術的課題も生まれますが、そうした課題に対しても技術的なアプローチで解決していくプロセスに関われることも、急成長中のスタートアップ企業ならではの面白さだと思います。

最後に

今回はゼストインターンで自分が実際に行ってきたことの振り返りと、インターンの魅力についてまとめてみました。 この記事を読んで、自分も挑戦したい!と思う学生の方がいれば幸いです。

最後まで読んでいただきありがとうございました。