newmoにジョインするまでの経歴は?
2010年、京都大学大学院在学中に、IPA(独立行政法人 情報処理推進機構)の未踏ユース事業に採択され、物のやり取りをするC2Cのプラットフォームを作っていました。実際にはお金を扱うことの難しさから、貸し借りの概念に注目してユーザーの車や本や家電などの物や、時間、人手などを、余っている人から、必要な人へ貸し出すことができるサービスを開発しました。今でいう「シェアリング」のサービスです。 その後、アメリカにわたって、クラウドホスティング事業に携わっていたのですが上手くいかず、ECサイトやウェブサービス、モバイルアプリを対象とした開発者向けクレジットカード決済サービス「WebPay」をCTOとして開発しました。2015年にLINEグループに買収されて「LINE Pay」の開発に参加しました。ユーザー数を3000万人以上に成長させた後に退職、2017年にメルカリグループに参画。メルカリでも「メルペイ」の立ち上げに参加しました。私のキャリアは一貫して「FinTech」領域。3つのペイメントサービスの開発に携わった経験があります。
FinTech領域に携わるようになったきっかけは?
私が「WebPay」を開発した当時、FinTechという言葉はまだありませんでした。Webサービスやサブスクリプション、スマホアプリが増えている中で、決済の組み込みをどうするかという悩みがエンジニア界隈にありました。決済の組み込みを楽にすると、エンジニアの負担が軽くなると考え、開発者向けのクレジットカード決済サービスとして「WebPay」を開発しました。 その後、アメリカでは個人間送金(P2P決済)ができるキャッシュレス決済サービス「Square(スクエア)」が登場し、中国でも「WeChat Pay」が出てきて、キャッシュレスがFinTech領域で注目を浴びました。そのタイミングでLINEから買収の話があり、コンシューマー向けのキャッシュレス決済にチャレンジするべく、LINE Payの開発に参加することにしました。 メルカリグループの新規事業の開発を担う会社にジョインして、メルカリのマイクロサービス化に取り組んだり、後にメルペイの一部となる決済システムの開発に取り組んでいたところ、メルペイのプロジェクトが立ち上がり、私も加わることになり株式会社メルペイ取締役CTOとして「メルペイ」の開発に従事しました。
newmoの開発では、どんなやりがいがありますか?
newmoのサービス開発では、運行管理システムと配車アプリの開発がメインとなります。開発にはいろんな技術を使うことになり、エンジニア目線で見てもおもしろいプロジェクトだと考えます。例えば、配車効率を上げるためのマッチングには、ルーティングというアルゴリズムを使います。ドライバーやユーザーの現在地をリアルタイムでマッチングするのは、高度な技術を必要とするためチャレンジングな仕事ができます。 加えて大きなトラフィックが発生する点も、魅力のひとつ。newmoのサービスは、メルペイの10倍以上の通信回数が発生する可能性があると考えています。サービスが広まれば、かなり大きいトラフィックを扱うことになり、これもエンジニアにとってチャレンジングな点です。処理速度の速いコードを書いて100ミリ秒の短縮をすることが、ユーザー体験にとって実は非常に重要。時間的なコスト解消だけでなく、CPUへの負荷や使用電力量にも直結するので、いいコードを書けば書くほど、サービスの質の向上につながります。
ライドシェア事業に参画する魅力は?
ライドシェアもFinTechだと考えています。日常生活に溶け込めば、ライドシェアの決済は、その他の生活領域にも広がる可能性があります。地方に行けば、電車やバスといった公共交通は限定的で、ライドシェアが移動の中心になる可能性を秘めています。そうなるとますますライドシェアで使う「ウォレット」が、他の経済圏ともつながっていくかもしれないと思っています。 ライドシェアにドライバーとして参加する側から眺めると、働いた報酬が「ウォレット」に即座に貯まる。一般的には労働の対価が支払われるのは、当月締めの翌月払い、つまり働いた2カ月先です。そこでたとえば、ライドシェアのドライバーが仕事を終えた瞬間に「ウォレット」に入金され、すぐに使うことができたらどうでしょうか。金融と融合したサービス、つまりFinTechだといえます。 さらにその先、ライドシェアで長く働くことが“信用”を生み出し、お金を借りたりする際の与信につながります。こういった“信用創造”というのは、非常にFinTechな領域だと考えています。 ライドシェアのサービスの発展する先には、FinTech領域のいろんなアイデアを具現化するチャンスがあると考えます。
技術的なアーキテクチャに関して、どんな考えを持っていますか?
以前からスキーマをベースにした開発といいますか、宣言的なスキーマと静的型付け言語を組み合わせてコンパイラによる型検査をうまく活用することでチームとしての開発の効率を上げていきたいと考えてきました。クライアントでも強い静的型付けを行うことになるので、データフォーマットを固定して、開発時の仕様の伝達ミスをなくす。APIを定義をして、そのAPI仕様書に従ってサーバもクライアントも開発することで、API仕様書を定義した時点でサーバのコードもクライアントのコードも生成できるようにしようと思っています。 インターフェースになる部分は、共通言語としてのスキーマを用意することで、実際に組み上げた時、サーバサイドのエンジニアの意図と、それを読み込むクライアントサイドのエンジニアが違うコードを書くといった事態を避けられるかなと考えます。もちろん逆の場合もあると思います。 いまのnewmoの創業期というタイミングは、新しいことにチャレンジしやすいフェーズだと思います。おもしろい仲間と一緒に開発に熱中し、社会的な課題への挑戦と同時に技術的なことにも一緒に挑戦していけると嬉しいです。