Tech Talks Vol. 4 – CLM

Tech Talksについて

Tech Talksシリーズでは、PayPay Techチームのモノづくりへの姿勢や雰囲気を、世界35カ国以上から集まった個性豊かなプロダクトメンバーたちの声を通してダイレクトにお伝えしていきます! 今回はバックエンドチーム(CLM)からDikshant(DJ)さんにご登場いただきます。

PROFILE
Dikshant Janaawa(DJ) バックエンドチーム(CLM)に所属。インドハリヤナ州出身。2016年21歳から東京在住。好きな物は映画、テレビ番組、アニメ、コーヒーで、たまにジムに行ったり、ヨガで体を動かしています。
※この記事は翻訳記事です。原文はこちらから

現在の仕事内容

PayPayユーザーに人気のあるキャッシュバックやクーポン周りのバックエンドサービスを担当しています。私を含め、自分のチームが書いたコードを通して、みなさんにキャッシュバックが付与されていると考えると、とてもうれしい気持ちになります。

CLMチームについて

主に新機能の開発を担当しており、マイナポイント、PayPayクーポン、ジャンボキャンペーン等々、大小さまざまな案件に幅広く携わっています。そのため、プロジェクト内でのコミュニケーション、要件収集、設計、開発、負荷テスト、デプロイ、そしていつも行っている通常作業など、すべてのステージで全方位的に関わる必要があります。日々繰り返しているフローなのに、日々新鮮に感じながら、日本でどのようにオンライン決済が拡大しつつあるのか、また、昨日までなかった新機能をどうするとユーザーのみなさんに使っていただけるのか、といったことがようやく分かってきました。

開発のプロセスとしては、しっかりタスクを計画して、タイムラインと優先順位を明確にし、一週間単位のスプリントで進め、不測の事態を最小限に抑えられるようにしています。開発にはよく使われるKotlin、Spring Boot、MySQLの他に、私も未経験であるDynaMoDB、Kafka、SQS等を使っています。

昨年私がPayPayに入社した後にも、5人の新メンバーがCLMチームに加わったので、いつも業務内容の認識合わせやリポジトリ(ソースコードやディレクトリ構造のメタデータを格納するデータ構造)で私がしでかしたミス(当時は最高だと思っていた設計なんですが)を楽しく共有しています。そして、自分が教える以上に新メンバーから多くのことを学ぶことができています。

直近のテクニカルチャレンジ

前の会社では、TPSが1桁レベルの中規模サービスに従事していましたが、PayPayでは事情が違います。イベント処理がバックボーンとなっているのですが、ScalaやAkkaが使われていたので、今まで直接経験したことがないというのは大変な状況でした。これから先の「未来」にはどんなテクニカルチャレンジが待っているでしょうか。

私はまず、イベント・フローのテスト・コードを作成することから始めて、実際の状況と自分の理解が合っているかを確認しました。これにより、サービスのレジリエンスを向上させながらScalaの流れを学ぶことができました。これは、Scalaで本番レベルのコードを作成するための単なる1ステップでした。

その後、改善を続けながら類似した既存のパターンを持つ機能を開発していきました。また、Akkaをある程度のレベルまで学び、新しいデザインパターンでいくつかのフローを簡素化しました。例えば、エラーを回していくのではなく、divert-sinkを使うようにしました。

数カ月後、特定のフローに関する十分な経験と知識を得たので、Kotlinを使ってより優れたパフォーマンスで新しいサービスを開発しました。社内的にはKotlinの使用率が高い上に、AkkaやScalaの専門知識を持っているメンバーが少ないため、私は率先してコードの一部をKotlinに移行しました。この改善はまだまだ開発段階ですが、今では私たちのチームの中で最も待ち望まれている改善の1つとなっています。

大規模な修正をするのではなく、まずサービスを理解し、簡素化し、可能な限り改善をするようにしました。次に、特異なフローをターゲットにして、よりレジリエンスの高い方法で再設計し、一般的な技術スタックで開発をするようにしました。このスタックはPOCとしてテストされ、本番環境で現在実行中の複数のサービスで既に使用されています。最後に、今後も新しいメンバーが問題なく簡単に貢献できるような、管理しやすいものを作っていければと思っています。

今後チャレンジしたいこと

2~3年後: 現在の役割を今後も続けていきたいと思っています。今のライフスタイルで仕事をしていると、より拡張しやすくメンテナンスの必要性が少ないサービスを設計していこうという気持ちになります。

現在の職場環境や文化のおかげで、これほどの短期間に多くのことを学ぶことができたのは、本当に素晴らしいことだと思います。今まで私はあまり新しい技術に明るくはなかったのですが、モチベーションを上げたり、リソースを獲得することに苦労したことは一度もありませんでした。

5~10年後: まだ何をしたいのか考え中です。

DJさんのある一日

私のチームは週次のスプリントサイクルで開発を進めており、すべてのタスクについてチームで議論し、計画するようにしています。これにより、すべてにおけるメンバー間でのバランスが整います。

仕事は朝8時頃、少し早めの時間にスタートするのが好きで、他のことにあまり気をとられることがない時間帯に、滞っているコミュニケーション内容を把握したり、最も重要なタスクを集中して作業するようにしています。11時にはチームでスタンドアップ・ミーティングを行い、時にはチームビルディングや読書、オープンディスカッションなどの学びの場を設けるようにしています。日々のスタンドアップ・ミーティングでは、プロジェクトの進捗状況をチーム全員で認識合わせし、何かブロッカーになっていることがあれば必ず議題に挙げてチームメンバーからサポートを得られるようにしています。

正午には昼食をとって散歩をし、予期せぬエラーがないかチェックをしながら、タスクやコミュニケーションをこなしていきます。2~3時間したら少しお茶休憩をはさんで、また業務を再開します。5時頃にはPCを閉じ、すぐにジムに向かったり近所の小川沿いを走ったりしています。私は通常、迅速なコミュニケーションをとり、ブロッカーを最小限に抑えるため、なにかあったら常にメッセージに返信ができるようにしています。

これまでのキャリア

小学校の頃からパソコンに興味があり、その後プログラミングをするようになって、大学ではコンピューター・サイエンスを専攻しました。そして2016年、インド工科大学カラグプール校を卒業し、コンピューター・サイエンスとエンジニアリングの学位を取得しました。

ちょうど大学を卒業する直前に、東京の大手通信会社からキャンパス採用されました。海外で就業する機会を得て非常にうれしかったのですが、当時日本と言ったらアニメや三池崇史監督の映画で見聞きした以外はほとんど何も知りませんでした。2016年9月に東京に引っ越して来て、ICTエンジニアとして通信会社に入社しました。最初は何をどうすればいいのかあまり分からないまま仕事を始めましたが、一生懸命業務に取り組みました。

最初の数カ月間は研修を受け、新しい環境や企業文化にも慣れていきました。その後ウェブサービスのフルスタック開発者としてクラウド本部に加わり、通信会社自身のグローバルなIaaSプラットフォームの一千万台を超えるクラウドデバイスの監視、運用、ログ、マーケティング、および顧客コミュニケーションとインシデントログに関わりました。バックエンドではJava, Spring, MySQLが使われており、一方フロントエンドではPythonのウェブフレームワークであるFlaskを使用しました。このように初めてプロとして仕事に就いた中で、私は開発、緊急性、コミュニケーション、メンテナンスのバランスというものを理解するようになりました。

通信会社で3年間お世話になった後、私は東京でOYO LIFEに転職しました。インドの大学時代から知っていたブランドでしたし、既に多くの顔なじみの人達が働いていたのでとてもワクワクしました。OYOは2019年9月に初めて都内に設立されたばかりで、私は同年10月に最初の立ち上げエンジニアの一人として入社しました。私は主にバックエンド(Java, Spring, PostgreSQL)を担当していましたが、時には予約やコミュニケーションを管理する社内管理ポータルでReact JSを使うこともありました。具体的には、これはオンラインの長期予約プラットフォームのことで、実際、アパートを借りて翌日に入居するのに最も簡単なプラットフォームの1つです。物事のペースが速い環境だったため、ビジネス的に少し大変なこともありましたが、今までの中で最も楽しく仕事ができていたと思います。また、OYOで働いていた時に最もたくさんのことを学ぶことができた気がします。今後長く付き合っていける友人もたくさん作ることができました。OYO LIFEにはSDEとして入社しましたが、その後SDE2 (https://www.oyolife.co.jp)のポジションに昇格しました。

入社のきっかけ

PayPayは日本でもまれにみる、純粋なテクノロジー主導企業の一社です。友人がPayPayのことを教えてくれて、実際の業務とエンドユーザーとの距離が近い会社だと話してくれました。前職のOYOでは実務や同僚から多くを学ぶことができたので、それを活かして今後は大規模な業務に携わりたいと強く思っていました。そういう意味でPayPayは、最新のテクノロジーと安定した経済状況を兼ね備えつつ、顧客に愛されている大企業であることから、私が求めていたすべての条件を満たしてくれていました。

PayPayのメンバーと実際に会った時、この会社なら自己成長に最適で、最大限に自分の力を発揮できる場所だと強く感じました。2020年1月に面接を受け、議論に参加し、最終的に4月に入社することになったのですが、自分が知りたかったことや疑問に思っていたことすべてに回答を頂けたおかげで、入社への決心をすることができました。

これからPayPayを受ける人へのメッセージ

PayPayには非常に優秀な技術チームがそろっていると最初から感じていましたし、入社してからも、会社全体で技術力を育んでいこうとする社内文化があることになお一層感銘を受けました。例えば、週次でエンジニア自身が直接知識共有する場があったり、他のチームでどのようなテクノロジーを使っているかわかりやすく説明するような学習の場が設けられたりしています。毎週金曜日にはプロダクト部門のみんなが一堂に会するALL HANDSミーティングがあり、会社全体の今後の動きや方向性なども共有されます。また、今後の展開や計画等も全員に連携されるため、自分がPayPayファミリーの一員であることを実感することができます。

チームメンバーとの連絡は本当に簡単にとることができ、日常の気軽なコミュニケーションも積極的に奨励されています。簡単に直接コミュニケーションがとれることで、最初の時点で既にハードルの半分は乗り越えることができます。

そして、Work-From-Anywhereというワーキングスタイルは最高です。前のスタイルに戻ることなんて想像もできなくなりました。このスタイルは非常に生産性も高く、ワークライフバランスを最大限に整えることができます。本当に素晴らしい方針だと思います。

明確なコミュニケーションをとること、そして継続的に学習することは、皆さんや皆さんの周りの方が成功するために重要なカギとなります。くだらない質問などは存在しません。不明点を迅速に伝えて解決することが、ベストプラクティスの1つです。チームプレーヤーとして、他のメンバーを助けたり、応援しようとする積極的な姿勢も大切です。私はいつも仕事以外でも同僚と遊びに行ったりしています。一緒に時間を過ごしながら、お互いに助け合っていけるように絆を深め共通の価値観を共有することができます。

現在募集中のポジション 現在募集中のポジションを見る
執筆:DJ / 監修:Mune / 編集:Az ※社員の所属等は、取材当時のものです。
You May Also Like