今回ご紹介するのは、neoAIで大企業向けAIシステムの開発に携わる、東真史(ひがし まさふみ)さんです。
2025年3月にneoAIへ参画し、現在はAIエンジニアとして自社プロダクト「neoAI Chat」をはじめとした開発に取り組んでいます。
入社直後から社内DX推進を担い、要件整理から設計・実装、運用立ち上げまでを一気通貫でやり切ってきた東さん。ドキュメントが整っていない領域や制約の多い実装にも粘り強く向き合い、現場で通用する開発力を着実に磨いてきました。
現在は複数人でのプロダクト開発の中核として、アーキテクチャや開発プロセスを踏まえた実装に取り組んでいます。AI支援ツールも適切に使い分けながら、チームの一員として継続的に価値を届けているのが印象的です。
本稿では、東さんが任された開発のリアルや、チームの開発文化を掘り下げていきます。
目次
自己紹介をお願いします。
なぜ数あるAIスタートアップの中から、neoAIを選んだんですか?
社内DX推進プロジェクトについて教えてください。
現在メインで関わっている開発プロジェクトについて教えてください
普段使用してるAI支援ツールについて教えてください
やりがいと成長について教えてください。
尊敬する人について教えてください
neoAIの開発文化と向いている人について教えてください。
これからの目標について教えてください。
最後に、読者へのメッセージをお願いします。
自己紹介をお願いします。
東京大学工学部電子情報工学科の東真史(ひがし まさふみ)です。2025年3月からneoAIにジョインし、現在はAIエンジニアとして自社プロダクト neoAI Chat の開発に携わっています。
大学では機械学習やプログラミングを学んでいて、授業で学んだ知識を実務で活かしたいと思っていました。以前も別の会社でインターンをしていたんですが、もっと本格的にAIを活用したアプリケーション開発に挑戦したくて、新しい環境を探していたときにneoAIを見つけました。
なぜ数あるAIスタートアップの中から、neoAIを選んだんですか?
テレビに取り上げられているのを見たのが、neoAIとの初めての出会いでした。最初は有名そうだな、という印象でしたが、調べていくうちに、他社とは明確に違う点がいくつか見えてきたんです。
まず、本格的にAIを活用したアプリケーション開発をできる環境があったこと。それまでは個人の受託会社の社長さんの開発を手伝っていたのですが、AIを活用したものではなく、少し物足りなさを感じていました。なので、本格的にAIを活用している実践的な開発に挑戦したいと思っていました。
次に、ソフトウェアエンジニアリングの力が強そうだと感じたこと。カジュアル面談の時にソフトウェアチームで働いている方とお話ししたのですが、話を聞いててそう感じました。AIスタートアップって多くの場合、研究寄りかビジネス寄りに偏りがちですが、neoAIは実装力にこだわっているのが伝わってきました。実際に入ってみて、その印象は正しかったと実感しています。
そして、昇給制度がしっかりしていることも決め手でした。neoAI ではJobGrade(※1)という制度を導入しているのですが、インターンでも実力に応じてきちんと評価してもらえる環境があるのは、モチベーション的にも大きかったですね。
社内DX推進プロジェクトについて教えてください。
入ってからすぐに社内のDXを推進するプロジェクトにアサインされ、なんと開発を基本的に一人で任されました!COOのこうしろうさんから「こういうものを作ってほしい」という大枠をもらい、そこからどう作るかは自分で考えて1ヶ月かけて設計・実装しました。入社してすぐにこんなに自由に開発できるとは思っていなかったので、正直びっくりしました。
- 具体的にどんな機能を開発したのですか?
主に3つの機能を開発しました。
まず、1on1のリマインド機能を作成しました。これまで部長陣が手動で毎週行っていたリマインド作業を完全に自動化しました。Slack Botを使って、定期的にリマインドを送る仕組みです。
次に、CRM(売上管理システム)も作成しました。もともと月次の実質的な売上が可視化されていなかったので、それをダッシュボード化しました。月次売上のチャートはよく見られているようで、嬉しいですね。
そして、Excel連携機能。売上分析をExcelからNotionに移行したいという要望に対応しました。連携したいExcelシートのURLを入力したり、Notionのデータベースを指定できるといった、汎用的な仕組みを作りました。
開発では、Python、FastAPI、Azure Queue Storage、Azure Table Storage、Slack Bot を主に使用していました。
- 開発で苦労した点はなんですか?
一番苦労したのは、Notion APIの扱いですね。DatabaseとDatasourceの違いなど、Notion上で見えるテーブルの意味を理解するのが本当に難しかったです。いい感じのSDKもなかったので、結局、自分でSDKを作ることになりました。
ドキュメントがない実装との戦いも大変でした。Notionのスケジュール機能でWebhookを送る「Automation」機能が必要だったのですが、仕様がドキュメント化されておらず、自分で手を動かし試行錯誤しながら完成させました。Microsoft Graph APIのSDKも不完全で、直接APIを叩くことで対応しました。
Slackの「3秒以内にレスポンスしないといけない」というタイムアウト制約も、実際に使ってみて初めてわかったことでした。この制約にも悩まされましたが、結局QueueとJobを使った非同期実行で解決しました。こういう泥臭い実装経験って、座学だけでは絶対に学べないので、とてもいい経験になりました。
- 開発をしていて意識していたことは何ですか?
まず大前提、リリース前には必ず自分でしっかり動作確認をしてちゃんと動くかどうかを確認していました。
また、「汎用性を意識する」ということも心がけていました。これは開発途中でこうしろうさんから頂いたアドバイスの一つです。今回のNotionのSDKを自作したのも、汎用性を意識するようアドバイスをもらったからです。コードレベルでも常にそれを意識するようになり、現在の開発にも大きく役立っています。
あと、実際に作ってみて、ユーザーに実際に使ってもらえるものを作ることの大切さにも気づきました。1on1のリマインド機能を作ってみて部長陣がリマインドする機会は激減したものの、やはりまだリマインドを放置してしまいうっかり入れ忘れてしまうケースは存在します。どうリマインドしたらそのようなケースまで無くすことができるのか、そういった実際に使用するユーザーの目線になって機能を設計することの大切さを改めて意識させられました。
現在メインで関わっている開発プロジェクトについて教えてください
現在は、大企業向けのAIシステムの開発を担っています。
現在まで続いているメイン機能の開発はある程度終わり、動作確認やデザインの詰めのフェーズです。2月には総合テストを予定しています。
- 開発に使用している技術スタックについて教えてください。
バックエンドはFastAPI、フロントエンドはNext.js、そしてDockerでコンテナ化された開発環境で再現性の高い開発を行っています。CIではコンテナを利用した、DBまで含めたテストを実行しています。総じて、モダンな技術を使用して開発しています。
アーキテクチャはDDD(※2)とオニオンアーキテクチャを採用していて、ビジネスロジックとインフラとの連携を分離する設計になっています。どのレイヤーで何をやっていいのかを常に意識しなければなりません。基本的に無駄のないコードを書くようにチーム全体で意識していて、短くかけるところは短く書くという文化があります。
- 開発体制について教えてください。
開発体制はスクラム開発(※3)です。Epicという機能単位の大きなタスクがあって、PdMのひろとさんやりくやさんが進捗を管理しています。Epicがメンバーごとに割り振られ、メンバーがそれを小さなタスクに分解し、タスクごとにPRを作成します。毎日のデイリースクラムでは、ガントチャートで管理されている開発の進捗確認や、レビューが必要なPRの確認、技術的に難しい部分の相談などを行います。
- 開発のどんな部分を担当しているのですか?
私が担当しているのは、AIによる分析の部分ですが、これがまた奥が深いです!単にAPIを組み合わせるだけじゃなくて、情報をどう指示するか、情報をどう構造化するか、といった細かい部分まで考える必要があります。
他にも、システム開発に必要な機能もちょくちょく担当させてもらっています。誰にどの権限をつけて、この権限を持っている人はこの機能まで使用できるようにする、といった権限まわりのロジックは特に難しいですね。
- 開発をしていて大変なことは何ですか?
開発で大変なのは、チームメンバーの設計思想を理解することですね。加藤さん(開発責任者)がソフトウェアアーキテクチャに強いこだわりを持っていて、他のメンバーもそれぞれこだわりがあります。みんながどういう思想で書いているのかを理解した上でコードを書く必要があるので、このコードはどういう思想で書いているのか、といった細かい部分はよく加藤さんに聞きに行き、思想のすり合わせを行うように心がけています。neoAIは基本オフライン稼働なので、聞きたい時にすぐに聞きに行ける環境にはとても助かっています。
僕もうっかりミスをしてしまう事もあります…。動作確認をしっかりせずに出してしまったり、場合分けの考慮漏れがあったり、環境変数への考慮が漏れてしまいdev環境では動かないコードを書いてしまったり…。でも加藤さんはおおらかなので、ミスっても許してくれます(笑)。今後は動作確認をしっかりすることは特に意識して開発していきたいと思います。
普段使用してるAI支援ツールについて教えてください
普段の開発では、Cursor、Codex、Claude Codeを使い分けています。
Cursorは学習コストなしで使えて開発速度が上がるので、手続き的な処理や同じパターンの繰り返しはガンガン任せています。
Codexは遅いけど、その分思考が深くて賢い印象です。難しいエラーや設計判断で悩んだときに相談しています。
Claude Codeはレスポンスが速くて精度も高く、CursorとCodexのいいとこどりなイメージがあります。特にフロントエンドに強いと感じており、フロント開発でよく活用しています。
また、普段の開発では「どのレイヤーに何を書くか」という設計・切り分けは自分で行い、自分は主にロジック(ドメイン)レイヤーに集中するようにしています。
DDDはレイヤーごとの責務が明確なので、ロジックレイヤーは自分が書き、それ以外はAIに任せる、という分担がしやすいです。
ただ、neoAI Chatはコードベースが大規模なので、AIでは厳しいところもあり、そういう部分はソフトウェアチームの人が手で書いたりしています。
やりがいと成長について教えてください。
一番やりがいを感じるのは、チーム開発過程で、他の人の役に立てた時ですね。
一人で開発するよりも、みんなで開発するのが楽しいと感じます。一人じゃ作れなさそうなものを作っている時、みんなで開発して形になった時は本当に楽しいです。一人だと限界を感じますからね。
現在の開発プロジェクトでも、学生社会人含めた多くのエンジニアの方々と一緒に、それぞれの強みを活かしながら開発を進めています。設計思想を共有して、みんなが同じ方向を向いて開発している感覚が本当に楽しいんです。
もちろん、「AIエンジニアって難しいなぁ」と思うことはあります。AIをどう組み合わせるか、情報をどう指示するか、ドキュメントのパースの仕方とか…APIを組み合わせるだけじゃないので、そこに難しさを感じつつも、奥が深いところだと思っています。
尊敬する人について教えてください
neoAIで一番尊敬している人は、COOのこうしろうさんです。
初めてレビューをいただいた時から、その厳しさと頭の回転の速さに圧倒され続けています。コーディングに限らず、どんな話題でも一瞬で本質を理解する姿勢には、いつも驚かされます。
特に印象的なのは、コードレビューの深さです。わずかな時間で、私が見落としていた問題点を次々と指摘される様子を見て、「この短時間でここまで深く理解できるのか」と衝撃を受けました。
こうしろうさんのレビューでは、1つのPRに対して総コメント数は約30件にも及び、4〜5往復のやり取りを重ねることも珍しくありません。加藤さんは1往復でLGTMの写真を貼ってくるスタイルですが、こうしろうさんは厳しい(笑)。
しかし、その厳しいレビューを通じ、多くのことを学ぶことができました。特に重点的にコメントをいただいたのは、命名の重要性、early returnとearly continueを活用した可読性の高いコード構造、そして漏れのない例外処理でした。命名については一見細かいことのように思えますが、コードの可読性と保守性に大きく影響する重要な要素だということを実感しています。
こうしろうさんはoverload/カスタムデコレータ/抽象クラスの継承などといったPythonのtypingをフル活用する人なので、それらを積極的に活用するようコメントをもらったり、汎用化を意識して将来的に共通化できそうなところは切り出して開発をするよう助言をもらったりもしました。
レビューで「この機能はPython 3.14からじゃないと使えないんだよね」と指摘された時は、本当に衝撃的でした(笑)。Pythonの一つ一つの機能についてversionまで把握してるの!?ってびっくりしましたね(笑)。
でも振り返ってみると、この厳しいレビューのおかげで、コードの品質に対する意識が劇的に変わりました。「汎用性を意識する」といった設計思想が身についたのは、間違いなくこの経験のおかげです。
COOのこうしろうさんからのレビュー
neoAIの開発文化と向いている人について教えてください。
neoAIのソフトウェアチームでは、全員が「汎用性を意識する」ことを大切にしています。日々の開発で常に求められる一方で、実践しきるのは難しいテーマでもあります。加えて、各メンバーのアーキテクチャや設計思想へのこだわりも強く、そうした議論を通じて、思想だけでなく“汎用性をどう設計に落とすか”まで深く学べる環境だと感じています。
チームには強いエンジニアが多いです。みんな知識がすごいし、それだけでなく根性もある。自分のタスクを開発し切るところに責任を持っている人ばかりです。あと、仲がいいですね。みんなでシステムを作っている感じがします。
なので、「みんなでワイワイしながら開発したい」というマインドの人にはとてもいい環境なのではないかと思います。
入って伸びる人の共通点は、疑問をちゃんと持っている人です。どういう思想で書かれているのか、もっとよく書けないか、読みやすくなっているか──そういうところに意識が向けられる人は伸びると思います。
これからの目標について教えてください。
今、自分に足りていないと感じるのは、まずAIエンジニアのAI部分の能力です。
AIを「使う側」だけでなく、学習から推論・運用まで自分で設計・構築・管理できる力を身につけたいと考えています。普段の開発では抽象化されたサービスを利用することが多いですが、研究室ではモデル内部や実行基盤まで踏み込むテーマを扱っているため、より土台の理解が必要だと感じています。 そのため、Transformerの原理に加えて、学習環境の設計、推論サービング、APIとして安定提供するための仕組みまで体系的に学び、研究で得た知見を実務の改善につなげていきたいです。
インフラ周りも学びたいですね。強いエンジニアがインフラを担当する傾向があると思ってて、実際現在の開発でも加藤さんがインフラを担当しています。neoAIでは、成長して行けばそういった経験もできそうで楽しみです。
それ以外では、顧客の要望を理解して仕様に落とし込む力を身につけたいと思っています。どういった要望があってこの機能を追加するに至ったのか、といったユーザーストーリーの解像度を上げていきたいです。現在ではPdMの方々がここの部分を担っていますが、これができないとそもそも開発もできないので、自分もできるようになりたいと思っています。
最後に、読者へのメッセージをお願いします。
neoAIは、本当にいろんなソフトウェア開発の経験ができる環境です!
会社の規模が絶妙で、一人では絶対にできないような大規模開発に携われるけど、整備されすぎていないから、一人でしっかり裁量を持って開発できる。ちゃんと勉強できるし、タスクが細分化されすぎていない。この「ちょうどいい裁量」が、成長には最適だと感じています。
一定のコミットを必要としますが、優秀な先輩エンジニアに囲まれて、最先端の技術を使いながら、実際のプロダクトを作る経験は、大学の授業では絶対に得られません。汎用性を意識したコーディング、厳しいけど愛のあるコードレビュー...すべてが自分を成長させてくれます。
「みんなで大きなものを作りたい」「チームで貢献したい」そんなマインドを持っている人には、本当にうってつけの環境だと思います。一緒に、時代の最先端を走りながら、爆速で成長しませんか?
※1. JobGrade : 従業員が担当する仕事・職務・業務によって等級分けする制度のこと。
※2. DDD:
ドメイン駆動設計(Domain-Driven Design)のこと。
※3. スクラム開発:
短い期間(スプリント)で計画→実装→レビューを繰り返し、優先度の高い成果物を継続的に提供しながら改善していくアジャイル開発手法のこと。短いスプリントで優先度の高いものから作ってフィードバックを反映し続けることで、変更に強く、価値提供とリスク低減を早いサイクルで実現できる点が特徴。