Tech Talksについて
Tech Talksシリーズは、世界約50カ国の国と地域から集まった個性豊かなプロダクトメンバーたちの声を通して、我々のモノづくりへの姿勢や雰囲気をダイレクトにお伝えしていきます!
今回は、Principal Software Engineerとして活躍中の2名にお話を伺います。

Harsh Prasad
Pay2 Developmenr Centerに所属しているHarshです。2014年に来日し、ヤフー株式会社(現:LINEヤフー株式会社)で検索プラットフォームやコア検索エンジンの開発などに携わってきました。2018年7月からPayPayに出向し、2020年4月に正式に転籍。2023年7月にインドへと移り、開発拠点であるPay2 Development Center(以下、Pay2DC)で技術支援をしています。スタートアップの文化でスピード感をもって成長できる環境は本当にエキサイティングです!

Seiya Yazaki
ユーザーモジュールチームのSeiyaです。さまざまな企業でフロントエンド、バックエンド、コア技術の経験を積み、2021年7月にPayPayに入社しました。膨大なトラフィックを捌きながら多くの機能開発をこなし、さらにセキュリティの期待に応えていくというチャレンジングな環境がPayPayの魅力だと感じています。現在、PayPay証券で技術的なサポートを行っています。
Principal Software Engineerの役割と現在の業務内容は?
Harsh:
Principal Software Engineerの主な役割は、ソフトウェアやプラットフォームの仕組みについての深い理解をもとに、実践的に指導し技術面からチームを推進することです。
私は現在、インドのPay2DCの技術支援を行っており、チームにナレッジをシェアしつつ、メンバーとともにさまざまなプロジェクトに取り組んでいます。Pay2DCは立ち上げからおよそ1年が経過し、チームの規模は今も拡大し続けています。そのほとんどが現地採用のエンジニアという中で、PayPayで求められる品質とスピードを担保しながら、新しいプロダクトや機能を開発・提供できるようにすることが私に課せられたミッションです。
Seiya:
私はユーザーモジュールチームで、PayPay のログインやユーザー登録をはじめとしたユーザー関連の機能全般に関するシステムの技術面をリードしています。ユーザーモジュールは6,000万人を超えるユーザーに直接影響を与える機能であり、また膨大な数のシステム・機能と相互影響するため、アプリケーションプラットフォームとしてセキュリティ、可用性、使いやすさ、それにプロダクト全体としてみたときの設計の妥当性・整合性を満たす必要があります。
ほぼあらゆる機能に影響する基盤機能でありサービスの仕様にも影響を与えることが多いため、Principal Software Engineerとしてはビジネス側の要件をブレイクダウンして、それぞれのチームのコンポーネントが具体的に何をすべきかを整理しグランドデザインを設計する役割が求められます。
加えて、もう1つPrincipal Software Engineerの重要な役割といえるのが、さまざまなチームやメンバーが共通で抱えている課題を見つけて、全体最適解を導き出すことです。それぞれがバラバラに解決するのではなく、共通の解決策を見出したり、未然の対処法を見出したりできるようにリードしています。
特に印象的なプロジェクトは?
Seiya:
認証に関する全体的システム設計、実装を完全にリプレイスした案件です。さまざまなステークホルダーがいる中で、既存のシステムに対してそれぞれが異なる課題感、異なる理想像を持っていたんです。そこで、まずは課題を定義し、整理をしたうえで進めていきました。結果として、セキュリティ、拡張性、信頼性、使いやすさのすべてを改善することができました。

Harsh:
私がここ2年ほど深く関わっていたのが、決済周りのスケーラビリティの向上です。サービス自体が急激に成長し、決済数の伸びに対してシステムがスケールできるペースが追い付かなくなっていました。新機能がどんどんリリースされ、ユースケースが広がる中で蓄積したインフラ周りやアプリケーション周りの課題を解決することで、現在は毎秒数千ほどの決済を捌けるようになりました。これで数年は問題がない状態になっています。
経験を積んできた上で、お二人がPayPayで働くことを選んだ決め手は?
Seiya:
PayPayは、スピーディな開発と、膨大なトラフィック、そして機能の複雑さという3つの側面のチャレンジ全てに取り組める点が大きな魅力だと感じています。3つのうちどれかに挑戦できるサービスは多いものの、3つを同時に求められるサービスは意外と少ないんです。とてもエキサイティングな環境だと思いますね。
Harsh:
私はモバイル決済に携わった経験があるのですが、PayPayは革新的なアプローチで社会を変革できる点で特別な存在です。出向という形で実際にPayPayに加わってみて、スタートアップの文化と開発のスピードには驚きと興奮を覚えました。サービスも私自身も爆速で成長していく中で、PayPayをNo.1の決済サービスにしたいという使命感も芽生えましたね。それに今も進化中なので、最終的な姿もまだわからないですし、可能性が未知数だという点もワクワクさせてくれるんです。

PayPayのPrincipal Software Engineerの特徴とPayPayならではの面白さとは?
Seiya:
Principal Software Engineerは、例えばユーザーモジュールのシステムだけにフォーカスして課題解決するのではなく、常にプロダクト全体の最適解を追求する立場であり、さらに長期的な視野も求められます。PayPayの場合、先ほどお話した、スピーディな開発と膨大なトラフィック、機能の複雑さの3つの要素が揃っていることによって、より挑戦的な課題に取り組めることが大きな特徴だと思います。
例えば、数億回のAPIコールに対して1回だけ起きる問題があったとしても、大抵のサービスでは問題にならないですし、気づくこともないんですよ。それがPayPayの場合だと、数日に1回は問題が起こるわけで。そういうレベルでエクストリームな課題にも向き合うというのはホントに面白いなと思います。
あとは、目的に向かって自主的に動ける環境だというところですね。中には自分の役割がガチガチに定まっていて、その範囲外には口出しできない会社もあると思うんですが、PayPayは自分の責任範囲じゃないからできないってことはまずありません。サービスやビジネス側が実現したいことに対して何をすればいいかを考えて行動に移せるのでやりがいも大きいですね。
Harsh:
そしてとにかくスピードが速い!他社なら何か新しいサービスを生み出す時に1年2年がかりで開発しますが、PayPayは目の前の2ヶ月3ヶ月でできることを分割して進めていくんです。すべての機能を一気にリリースするのではなく、絞った機能でリリースしてユーザーの反応を見ながら次の機能に着手するスタイルです。他社が一歩目を踏み出す間に、PayPayは何度も進化しているので、システムの構成にも大きな差が生まれますよね。
さらにその凄まじいスピードの中で、どんな風に作っておけば3年後も同じ構成で進められるかを予測した上で進めていくというのは大きなチャレンジです。そんな体験ができるのもPayPayのPrincipal Software Engineerならではの面白さだと思いますね。

今後、チャレンジしたいことは?
Harsh:
若手エンジニアの成長に貢献できるようなロールモデルになりたいです。PayPayなら、今まで経験したことがないような大規模なシステムに触れることができますし、成長の機会も多いので、その楽しさを多くの人に味わってほしいですね。

Seiya:
今私はPayPay証券の技術支援を行っているので、PayPayとはまた違うチャレンジを通じて、グループ全体における技術的チャレンジの幅を広げていきたいと思っています。そして知見やナレッジの蓄積に貢献できればうれしいですね。
最後に、読者にメッセージをお願いします!
Seiya:
PayPayは多くのユーザーに良い影響を与える素晴らしいサービスです。Principal Software Engineerにとってコンピュータサイエンスとテクノロジーについての深い理解は重要ですが、スキルや知識面だけでなく、ユーザーにとって良いサービスを届けることを目指せる方とご一緒できるとうれしいです。
Harsh:
PayPayはものすごいスピードで進化しているからこそ、コミュニケーション力とリーダーシップは重要なポイントです。誰かに言われるまで待っているスタンスではなく、自分で課題を見つけて、解決までやり遂げる方なら活躍できるでしょう。絶えず改善する姿勢を持ち、さまざまなことにチャレンジする意思のある方はぜひ一緒に働きましょう。

現在募集中のポジション
※募集状況、社員の所属等は取材当時のものです。

