# [業務内容]
* ノーコード AI 開発ツールである Web アプリケーションの開発運用
* ソフトウェアエンジニアとして、フロントエンド実装/システム設計構築/SLO 策定などアプリケーションの開発運用に関わる取り組みを幅広く実施
* 機能開発においては、機能次第でフロントエンドやバックエンドの実装、システム設計からインフラ構築を担当
* サービスのあるべき状態を定量的に定めるためにビジネス要件からブレイクダウンしてシステムの非機能要件を定めるといった SLI/SLO 策定にも取り組む
# [プロジェクト規模]
* 約 15 名
# [特筆すべき取り組み①]
## 期間/役割/規模
* 2024.10 ~ 2025.01
* クラウドアーキテクト、バックエンドエンジニア
* PO 1 名、テックリード 1 名、開発メンバー 5 名(私含む)
## 課題
* 従来のツールは GUI での操作のみを提供していたため、顧客にとって価値を最大化する手段としてシステムへの組み込みや自動化のために必要な仕組みを提供できていないという課題が存在した
## アプローチ
* システムへの組み込みや自動化の仕組みとして顧客が開発したモデルに対して API 経由で操作可能な状態を目指した
## 私の取り組み
* 開発したモデルに対して推論結果を得る API と学習を実行できる API が求められており、私は学習 API を担当した
* ビジネス要件から機能要件/非機能要件へと落とし込む要件定義からそれらを満たすシステムアーキテクチャの設計および実装をリードした
## 工夫
* AI モデルの学習はデータ量や学習パラメータによって学習時間が大きくことなるから、非同期処理として実装することで顧客には即時レスポンスをして、後から学習結果を得られる形とした
* これは UX を重要視する上で重要な選択だったと考える
* 将来的に数万の学習リクエストを受け付けられるようなスケーラビリティを備える必要があり、数値目標を非機能要件として組み込み、それを満たすシステムアーキテクチャ/アプリケーションアーキテクチャを設計した
* 具体的に Google Cloud の中でも Cloud Run jobs, Pub/Sub, Workflows を中心としてスケーラビリティおよび処理の隔離性を高めた構築を実現した
* Google Cloud のさらなら体系的な知識が必要と考え認定資格である Professional Machine Learning Engineer, Professional Cloud DevOps Engineer を含む当時全て認定資格である 11 種を取得した
## 結果
* 結果として、短期間で API 機能の開発を完遂できたことで将来的に数千万の収益を見込める案件の継続や他案件でも大規模な収益を狙える新たな収益モデルを生み出すことができた
## その他
・サービスを売り出すために社内のセールスチームへのサービス紹介やノウハウ共有といった社内コミュニティ活動のリードした
# [特筆すべき取り組み②]
## 期間/役割/規模
* 2025.01 ~ 2025.02
* クラウドアーキテクト、バックエンドエンジニア
* PO 1 名、テックリード 1 名、開発メンバー 5 名(私含む)
## 課題
* 提供した API についてのパフォーマンスの SLI/SLO を設定したが、特に推論 API が SLO を大きく満たせていない課題が存在した
## アプローチ
* API 提供を担うコンポーネントの大幅なリアーキテクチャを実施して SLO を満たせる状態を目指した
## 私の取り組み
* API 提供を担うコンポーネントの中でも推論を担う処理をワーカーとしてコンポーネントを切り出して、拡張容易性を重要視したアプリケーションアーキテクチャの設計および実装を行った
## 工夫
* 推論 API には顧客が開発した AI モデルの種別によって固有パラメーターや処理が異なる、さらに既存の十数種類の AI モデル種別に加えて将来的に別モデル種別の追加もあるため、アプリケーションコードとして追加される部分を適切に切り出して、後続の開発者がその部分のみを実装すれば容易に拡張可能とした