野心的なスタートアップをよく見てみると、その根底に闘志が潜んでいることに気づくでしょう。企業が実現したいものの価値を揺るぎなく信じる頑固さは、往々にして成功の最大の原動力であり、そうした企業の社員にもこの資質が共通して見られるのです。
Expensifyの社員たちは、最終的には会社の利益のために、頑固な人たちだと言っても、それほど的外れではないでしょう。経費管理アプリの開発に着手したこのP2P海賊/ハッカー集団は、自分たちの直感に忠実に従い、独自のルールを作りました。彼らは、ほとんどの人が考えつかないような疑問を投げかけました。例えば、「少人数で仕事をこなし、高い収益を上げる方法があるのに、なぜ大勢の従業員を抱える必要があるのか?」「インターネットがあればどこからでも、たとえカリブ海のヨットからでも仕事ができるのに、なぜサンフランシスコのオフィスで働く必要があるのか?」といった疑問です。
ある意味、納得できます。海賊ならルールなんてどうでもいい、ですよね?そもそもルールを説明できる人がいないならなおさらです。
こうした点を踏まえると、Expensifyは自問自答したと言えるでしょう。「なぜ完全にカスタマイズされた独自の技術スタックを構築しないのか?」と。実際、Expensifyはオープンソースのフロントエンドやクロスプラットフォームのモバイル開発、AIのトレーニングのための請負業者の雇用、オープンソースの貢献者の採用など、周囲から信じられないような技術上の決断をいくつか下してきました。しかし、長年にわたる自社の選択への信念は実を結び、同社は間もなくIPOを迎える準備が整っています。
Expensifyがこうした選択によってどれほどの技術的優位性を獲得しているかは未知数ですが、一つ確かなのは、こうした選択こそがExpensifyとそのロードマップを理解する鍵となるということです。それでは見ていきましょう。
岩盤の上に構築
Expensify が創業当初に自問したもう一つの質問は、「小規模アプリケーション ソフトウェア用に構築されたテクノロジーの上にデータベースを構築しないのはなぜか」というものだったと思います。
信じられないかもしれませんが、Expensifyは実際にはSQLite上に構築されたカスタムデータベース上で動作します。これは驚くべきことです。なぜなら、SQLiteは最も広く導入されているデータベースエンジンの一つであるにもかかわらず、スマートフォンやWebブラウザなどの小規模な組み込みシステムで動作することが知られており、エンタープライズ規模のデータベースには使われていないからです。
テッククランチイベント
サンフランシスコ | 2025年10月27日~29日
このカスタムデータベースはBedrockと呼ばれ、そのアーキテクチャは非常にユニークです。Expensifyはこれを「比較的低速で信頼性の低いWAN(インターネット)接続間での自己修復型レプリケーションに最適化されたRDBMSであり、単一障害点のない極めて高い可用性と高性能を備えたマルチデータセンター展開を実現します」と説明しています。RDBMSとはリレーショナルデータベース管理システムの略で、エントリが相互接続されたSQLiteなどの行ベースのデータベースを指します。
しかし、Expensify が広く利用可能なエンタープライズ データベース ソリューションを数多く採用するのではなく、なぜこれを構築するのでしょうか?
この疑問に答えるには、創業者兼CEOのデイビッド・バレット氏のサイドプロジェクトだった創業当時まで遡る必要があります。当初のアイデアはホームレス向けのプリペイドカードを開発することでした。しかし、そのためにはVisaネットワーク上にサーバーを設置する必要があり、厳しい要件と課題がいくつも発生しました。「最も困難だった点の一つは、自動レプリケーションとフェイルオーバーの機能が必要だったことです」と、数ヶ月前にTechCrunchがバレット氏にインタビューした際に語っています。
2007年当時、これは決して容易なことではありませんでした。しかし、バレット氏はその挑戦に意欲的でした。「当時、市販の技術があまり良くない時期がありました。たまたま私はピアツーピアのソフトウェア開発者で、暇を持て余していたので、Visaのバックエンドに搭載する技術をどうしても作りたいと思っていたのです」と彼は言います。P2Pという要素は重要でした。バレット氏にはそれを実現できるスキルがあったからです。彼がExpensifyに最初に採用したP2Pエンジニアたちは、Red SwooshやAkamaiで共に働いた経験を持つ人たちで、彼らもまた、この仕事に非常に適任でした。

最初のアイデアはBedrockへと発展しました。このリレーショナルデータベースは、3つのデータセンターに分散され、それぞれに冗長性を持たせるシナリオに最適です。2017年のFLOSS Weeklyで、バレット氏はサーバーの1つに障害が発生した場合の動作について説明しました。フェイルオーバーは自動的に行われ、どのサーバーが新しいリーダーでどのサーバーがフォロワーであるかを容易に判断できる分散コンセンサスアルゴリズムのおかげで、復旧は容易です。
ExpensifyがBedrockを「ブロックチェーンが流行る前から」ブロックチェーンに基づいていると説明しているのも、この理由の一つです。この主張は誤解を招くのではないかと疑問視する声もありましたが、「ブロックチェーンの意味をどの程度厳密に解釈するかによって異なります」と、ExpensifyのソフトウェアエンジニアであるTyler Karaszewski氏はTechCrunchに語りました。Bedrockについて語る際、同社は分散型総勘定元帳と「Paxosスタイルのアルゴリズム」に言及しています。これらはデータの整合性を保証し、プライベートブロックチェーンの要素を構成します。
SQLite の作成者ですら不可能だと考えていたときに、Expensify はこれらすべてを実現しました。
強化版SQLite
今では両者ともこの件を笑い話にしているが、2012年にエクスペンシファイが当時40GBのデータベースにSQLiteを使用していることを説明した際、SQLiteの主要開発者であるリチャード・ヒップ氏はバレット氏を説得しようとした。ヒップ氏はSQLiteメーリングリストを通じてバレット氏にこう書き送った。「SQLiteの本来の目的をはるかに超えてSQLiteを推し進めているように聞こえます。[…] SQLiteはエンタープライズレベルのRDBMSを置き換えるために設計されたものではありません。そして、現時点ではエンタープライズレベルのRDBMSが必要だと思います」
しかし、SQLiteがバレット氏の意図通りに設計されていなかったからといって、エンジンがそれを実現できなかったわけではありません。ただ、誰かがそれを実現しようと試みる必要があったのです。「後から考えれば当然のことですが、私たちは(自分たちがやっていることに)あまりにも集中していたので、それが良いアイデアになるかどうかを考えることさえしませんでした」とヒップ氏はTechCrunchに語った。
彼はバレットについて語る際、ジョージ・バーナード・ショーの言葉を引用した。「理性ある人間は世界に適応する。理性のない人間は世界を自分に適応させようとし続ける。したがって、すべての進歩は理性のない人間にかかっている」。ヒップ氏によると、これは明らかにバレットに当てはまるという。「私たちを前進させるには、デイビッドのような人材が必要です」。バレットがSQLiteチームを「世界最高のエンジニアたち」と何度も称えていることからも、両者の称賛は明らかだ。
Expensifyは長年にわたりSQLiteコンソーシアムのトップスポンサーであり、バレット氏の説得を受けて以来、ヒップ氏と彼のチームは同社を惜しみなく支援してきました。「SQLiteチームが自社製品に貢献し、私たちの製品でそれを利用できるようにしてくれたおかげで、今のBedrockは実現できなかったでしょう」とカラゼフスキー氏は語ります。

実務的には、SQLiteチームはBedrock向けに設計された改良点を追加し、これらのアドオンがもたらすオーバーヘッドが小さいため、別のブランチに展開しました。「CPUとメモリが1%増えるだけでは大したことないように思えるかもしれませんが、50億台の携帯電話やノートパソコンに掛け合わせると、大きな効果が得られます」とヒップ氏はメールで説明しました。
ExpensifyはSQLiteの活用方法において依然として異例ですが、Hipp氏は他社も追随することを期待しています。「WebアプリでBedrockやそれに似たアーキテクチャが使われるようになると素晴らしいですね。最大の脆弱性はSQLインジェクション攻撃ですが、Bedrockならその可能性は極めて低いからです。[…] Barrett氏の成果には驚かされます。」
奇妙に思えるかもしれませんが、Expensify独自のデータアーキテクチャは、長年の試練、オープンソースの精査、そして会社の成長にも耐え抜いてきました。そして、それは同社の成功にも貢献したと言えるでしょう。
「本当にすごいし、本当にすごい」
エクスペンシファイが2016年にBedrockをオープンソース化するという決断は、その動機と同様に、特異なものでした。「Bedrockをオープンソース化する主な価値は、貢献者を獲得することではなく、より高い基準を維持し、外部の視点から私たちの成果を評価することです」とバレット氏はTechCrunchに語りました。外部の監視者からは厳しい意見も聞かれましたが、同社がなぜ厳しい監視の目を向けるのかを理解する人もいました。「あらゆる大胆な動きに言えることですが、エクスペンシファイはこの件について長期的な視点を持っていると思います。騒ぎが収まったとき、彼らはより良い状況になるでしょう」と、あるTwitterのコメント投稿者は述べました。
同社は寄付を受け、自社のハードルを引き上げ、規模を拡大し続けてきた。このプロセスは、エクスペンシファイのベッドロックへの信頼を強固なものにしたようだ。バレット氏はベッドロックを同社の「最も差別化された技術」と捉えており、ファースト・ラウンド・レビュー誌が2016年に記したように、「多くの主要な競争優位性」につながっている。
バレット氏は、MySQLがBedrockを開発した当時よりも強力な代替手段になっていることを十分に認識している。Bedrockは現在、Sequel ProやMode Analyticsを使用するユーザー向けにMySQLプロトコルをサポートしている。それでもなお、彼はBedrockの方が負担が少ないという点で有利だと考えている。「Bedrockは、大容量SSDベースのRAIDドライブと十分なRAMファイルキャッシュを備えた最新のハードウェア向けに開発されているため、他のデータベースがほぼ時代遅れのハードウェアで高性能を実現するために行う無数のハック的なトリックに煩わされることはありません」とBedrockのウェブサイトには記されている。
ハードウェアは確かに重要な要素です。Expensifyはいくつかのテストと計算を経て、ベアメタルが最適な選択肢であると結論付けました。「AWSは素晴らしいマーケティングをしているに違いありません。AWSについて人々が言っていることのほとんどは、客観的に見て間違っているからです」とバレット氏は語りました。まず、ハードウェアを購入する方が、数年間分のサーバーを前払いするよりも安価です。「しかし、第二に」と彼は付け加えました。「AWS経由で入手できるハードウェアは、自分で購入するハードウェアと同じではありません。」彼は技術的な話には立ち入りませんが、ハイパースレッディングとコアの追加は同じではないという意味で、Expensifyは最高のパフォーマンスを得るために独自のシステム設定を選択することを優先していると付け加えました。
Expensifyがこのような方式を採用しているのは、Bedrockが「スーパーコンピュータクラスにわずかに届かない」コンピュータで動作するように最適化されているためだと、バレット氏は述べている。Bedrockはスケールだけでなく、同社の全データが同じデータベースに格納されていることも最適化されている。これはあまり知られていない事実であり、しばしば驚かれる。あるTwitterユーザーはこう述べている。「ExpensifyがSQLiteを使用していることは知っていたが、顧客ごとに何千もの小さなデータベースを運用していると思っていた。まさか1TBのRAMを搭載した巨大なモンスターデータベースを運用しているとは知らなかった!」
バレット氏によると、BedrockはExpensifyのビジネスモデルと連携することで真価を発揮する。「基本的に単一の概念的な巨大データベースを持つため、顧客を複数のデータベースに分割する必要がありません」とバレット氏は説明する。後者は、トップダウン型の販売モデルを採用する大企業がマルチテナントアーキテクチャで一般的に行うことだ。
対照的に、Expensifyは、ユーザーが経費報告書を上司に送信できるだけでなく、友人を招待して他の企業と交流できるオプションも提供するという、バイラル化の側面に重点を置いています。「全員が同じ池で泳いでいることで、ユーザー同士のより自然なコラボレーションが可能になります」とバレット氏は言います。
異なるアーキテクチャで同様のユーザーエクスペリエンスを提供することがどれほど難しいかは議論の余地がありますが、一つ確かなことがあります。それは、BedrockがExpensifyのエンジニア層における魅力を高めているということです。元Expensify社員で、Lithic(旧Privacy.com)のCTOを務めるJason Kruse氏は、「Expensifyが独自のデータベースレプリケーション技術を構築したというのは、少しクレイジーですが、率直に言って、非常にクールで、素晴らしいと思います」と述べています。
クルーズ氏は、分散型総勘定元帳と、その結果として何が最初に起こったかを検証可能な形で記録できるBedrockの機能を高く評価しました。これにより、Bedrockはジョブ管理・配信プラットフォームとしても機能し、これらの機能を活用して、顧客サポート機能のConciergeと「社内Mechanical Turk」であるExpensiWorksという2つの取り組みを推進しています。どちらもAIを活用しています。
AIを支える人々
バレット氏は人工知能(AI)に関する自身の見解を率直に述べている。「AIの現実として、多くのAIは請負業者を巻き込んでいます」。これは2017年にExpensifyがAmazon Mechanical Turkで領収書を共有しているのが発見され、論争の的となった。ベータテスト中に「最大208件の領収書」に影響を与えたミスであることが判明し、同社は最終的にAmazonのプラットフォームを利用しないことを決定した。現在、ExpensifyはAIを補完し、訓練するために人間の労働力を活用している。
この哲学は、レシートスキャン製品「SmartScan」の中核を成しています。レシートのスキャンとエラー修正にはAIを活用しますが、最も難しい作業は人間の作業にエスカレーションされます。同社はこのアプローチを早い段階で採用しました。当時、バレット氏はレシートのスキャンに光学式文字認識(OCR)のみを使用するのではなく、他の技術も活用することを決定していました。「創業当初から、スピードよりも精度を重視してきました」と彼は言います。瞬時にスキャンできても完璧ではない結果は意味がない、なぜなら入力内容の確認と手作業での修正が必要だからです。
バレット氏は、これまでとは異なるユーザーエクスペリエンスを提供することを決意しました。彼はこれを「ファイア・アンド・フォーゲット」設計と呼んでいます。「完了時に結果の確認を求めません。レシートをスキャンしてスマートフォンを片付けるだけで、あとはすべて自動的に行われます」と彼は言います。

現在、OCR処理の後、必要に応じて人間の文字起こし担当者が作業を引き継ぎます。これらの文字起こし担当者は、Expensifyの契約社員またはNDAに基づく下請け業者であり、Mechanical Turkで雇用されたTurkerではありません。2017年のテストをめぐる悪評を受けて、Expensifyはこれらのタスクと担当者を管理するための社内プラットフォーム、ExpensiWorksを構築することを決定しました。これは、COOのAnu Muralidharan氏が開発に尽力したプラットフォームです。
「私たちは何もゼロから構築したわけではなく、既存のものをすべて利用しただけです」と彼女は説明した。「Bedrockを活用し、既存の経費インフラもすべて活用しながら構築しました。」
エクスペンシファイの顧客サポート機能であるコンシェルジュでも、人間とAIの同様の連携が中核を成しています。ここでは、人間は単に介入するだけではありません。「私たちは第一対応者をトレーナーと呼んでいます。彼らの仕事は何よりもまずAIのトレーニングであり、AIのトレーニングの副産物として顧客サポートも提供できるからです」とバレット氏は述べています。彼はコンシェルジュが同社に「完全な変革をもたらす」と表現し、従業員数が増加しないにもかかわらず収益が伸び続けている理由を説明しています。
コンシェルジュの自然言語処理技術にはファジーマッチングなどが含まれますが、それに関する詳細な技術情報は掲載されていません。「論文を発表する時間なんてあるでしょうか?いいえ、私たちはコードと機能を公開しています」とバレット氏は言います。
この発言は、現実世界のAIに対する彼の見解、そしてより一般的には、テクノロジーに関してExpensifyが抱く実用主義を反映している。「Bedrockの強みの一つは、学術的な環境で構築されていないことです。問題解決のためのソリューションではなく、Bedrockの機能はすべて現実世界の問題への対応として構築されています」と、バレット氏は2017年のインタビューで述べている。
彼の確固たる現実認識こそが、Expensify が携帯電話のカメラを使用して経費を報告するという先駆者でありながら、フラットベッド スキャナーをサポートできた理由でもあります。
どこにでもいるなら無視できない
Expensifyにとって、モバイルへの早期参入は大きなメリットでしたが、必ずしも容易ではありませんでした。初期の従業員であるトム・ジェイコブス氏は当時を振り返り、「Android、iPhone OS、Blackberry、Palmという、全く異なるコードベースを持つ4つのプラットフォームがありました。それらはすべて同じビジネスロジックで動作していましたが、メンテナンスと最新化を維持するのは容易ではありませんでした。以前はBlackberryアプリの新バージョンを毎週アップロードしていましたが、大変な作業でした」と語っています。
この問題を解決するため、バレット氏は社内でクロスプラットフォームJavaScriptフレームワーク「YAPL」(「Yet Another Platform Layer」または「Yet Another Platform Library」の略)を構築することを提案しました。当時PhoneGap、Xamarin、Electronといったサードパーティ製の代替フレームワークは存在せず、あるいは登場したばかりだったため、これは先駆的な一歩でした。YAPLは、異なるプラットフォームでビジネスロジックを共有しながらも「ネイティブのイベント処理とコントロールを活用」することで、一歩先を進んでいました。

クロスプラットフォーム化は「難しい決断」でしたが、Expensifyが存在感を維持できるというメリットもありました。2012年当時のスマートフォンは、現在ほど高性能ではなく、携帯電話はカメラ付き携帯電話とは異なり、すべての携帯電話に使えるカメラが搭載されているわけではありませんでした。さらに、iPhoneは2009年までオートフォーカス機能を搭載していなかったため、Expensifyのレシートスキャン機能にとってどのプラットフォームが最も重要になるかを予測するのは困難でした。つまり、限られた人員でも、あらゆるプラットフォームに対応できる体制を整える必要があったのです。
「一度コードを書けば、複数のプラットフォームで実行できるというのはまさに夢のようです」と、R&Dディレクターのプニート・ラス氏は最近のインタビューで語った。YAPLはその意味では先駆者だったかもしれないが、ExpensifyのReact Nativeへの最新の取り組みは、それをさらに推し進めている。
全体像を見る
Expensify の最新プロジェクトである Expensify.cash は、「チャットと支払いは同じものである」という前提に基づく金融グループ チャット サービスであり、さまざまな理由で注目に値しますが、私たちの目を引いたのは、iOS、Android、Web、デスクトップで同じコードベースを使用して React Native プラットフォーム上に構築された、Expensify フロントエンドの完全な書き換えであるという点です。
ExpensifyがReact Nativeに全面的に移行することを決定した背景には、いくつかの要因がありましたが、最も重要なのはReact Native for Webの登場と、おそらく直感に反するかもしれませんが、Airbnb自身がReact Nativeフレームワークから移行することを決定したことです。そこで何が起こったのかを調査した結果、Expensifyのチームは、React Nativeへの移行を徐々に進めるという当初の考えに従うべきではないと判断しました。移行の結果がぎこちないものになる可能性があるためです。代わりに、彼らは飛び込んでみることにしました。
Expensify.cashは100%オープンソースとなり、Upworkの請負業者によるオープンソースコミュニティの協力を得て構築されます。このアウトソーシングに関する疑問を予想し、同社はその理由を次のように説明しています。
Expensifyが大規模に事業を展開しながら機敏性を維持できた鍵は、「全体像」を理解するゼネラリストで構成される極めて小規模なコアチームを維持し、そのビジョンを実現するために世界中から優秀な専門契約社員を大規模に雇用していることです。[…] 私たちは、ゼネラリストで構成されるコアグループと、オープンソースエンジニアリングの専門家からなるグローバルネットワークを組み合わせることで、当社のエンジニアリングチームにも同様の戦略を実行できる機会があると考えています。
ジェネラリズムはExpensifyの文化において重要な要素であり、React Nativeを取り入れた計画の導入を容易にしています。他の企業とは異なり、Expensifyでは、Barrett氏の「React Native for Webの存在は、エンジニアリングを取り巻く従来の階層構造と、それに伴う専門性を破壊する」という主張に脅威を感じる人はほとんどいないでしょう。
Expensify.cashが他社を怖がらせたもう一つの側面は、フロントエンドがオープンソースである点です。しかし、同社はプロプライエタリコードを懸念するのではなく、顧客がフロントエンドをカスタマイズできるというメリットを見出しています。これは、Expensifyの「複合型製品管理」ポリシーに起因する、顧客向けのカスタマイズサービスの不足を補う可能性があります。
「複利」はエクスペンシファイで繰り返し登場する概念です。「私たちは複利エンジニアリング哲学という考え方を持っています。基本的に、私たちが行うすべてのことは、これまでの成果をさらに向上させながら、次に続くものへの基盤を築くことです」とバレット氏は言います。「ですから、この考え方では、あらゆる意思決定は、初期の技術決定や法的決定にまで遡る非常に長い系譜を辿っていると考えています。」
この言葉には真実味がある。Expensifyの物語において、Barrett & Co.の初期の決断は、初期のアイデアから今日の従業員の働き方までを繋ぐ、まさに一貫した流れを形成している。それは、彼らが問題やアイデアにどのようにアプローチし、機会をどのように捉え、そしてBedrockからExpensify.cashに至るまで、それらすべてを実現する技術においてオープンソースコミュニティとどのように連携しているかに表れている。
この EC-1 のパート 5 で説明するように、この長期的な展望は、Expensify とベンチャー キャピタリストとの対立を引き起こし、多くの課題をもたらしましたが、チームの闘志とビジネス モデルに対する信念が最終的に勝利を収めました。
Expensify EC-1 目次
このEC-1は5月上旬から6月上旬まで連載されました。
- 導入
- パート1:起源の物語
- パート2:文化
- 第3部:事業拡大とリモートワーク
- パート4:エンジニアリングとテクノロジー
- パート5: ビジネスモデル
Extra Crunch の他の EC-1 もチェックしてください。