社員インタビュー Vol.5

社会インフラのアップデートを生涯最前線で。決済プロセシングを担うバックエンドエンジニア

佐野 裕章 / Backend Engineer

2019.04.17

カンムをもっと知ってもらう為のインタビュー第5弾!バンドルカードの心臓部である決済プロセスを司る佐野さんにインタビューしてきました。

── 入社時期と職種をおしえてください

入社時期は2017年の11月ですね。職種はバックエンドエンジニアでサーバーサイドとインフラを見ています。主に決済プロセシングシステムをGoで書いたり、AWS上にあるインフラを改善したり、サポートと連携しながら安定運用させるための施策を考えたりしています。

── 決済プロセシングシステムとはなんですか?

お店でカード支払をしようとするとVisaのネットワークを経由して与信照会のデータが飛んできます。「このカードでこれだけの金額を決済してもよいか」というリクエストですね。そのリクエストのデータを受け取り実際に残高が足りているか、有効期限は正しいか、セキュリティコードは合っているか、というのをチェックしてレスポンスを返すというようなシステムになります。

── 聞いてるだけで大変そうです…

いわゆる普通のHTTPのWebアプリケーションじゃないのが、難しいところであり面白いところですね。具体的に言うと通信プロトコルもTCPでデータもかなり昔に規定されたバイナリデータで流れてくるという。また、アプリケーションが動く土台は当然Linuxメインなんですけども、Windowsサーバーもあって、そこに載せるWindowsアプリケーションを書いたのは自分のキャリアでも初めてでした。Goを使えばクロスコンパイルが楽なので、ビルドしたバイナリを配るだけでデプロイできるのは良かったかなと思います。

また、ユーザーさんのお金を預かるプロダクトなのでセキュリティには気を使いました。AWSのDirectConnectを利用して専用線を引くといった物理的なセキュリティから、鍵の管理をAWSのKMSを利用して安全に行う設計まで。弊社はPCI DSSに準拠したシステムを運用しているのですが、その辺りの認証基準とAWSのサービス仕様を理解しながら、鍵管理方法を設計するのはやりがいがありました。

あと、Visaのネットワークや飛んでくるデータの詳細情報はインターネット上に存在しないので、Visaからもらったドキュメントを読み解いて、よくわからない単語が出てきたらそこから別のドキュメントを見て調べるみたいな部分も地味に大変でしたね。

── プログラミングの出会いってどんなでしたか

プログラミングを始めたのは大学生ぐらいのころですね。大学には2000年に入学しました。学部は工学部で、機械工学科だから情報系じゃなかったんですけど、学生みんなパソコンを渡されて、普通にプログラミングの講義もあって、そこで触れたのが最初ですね。

その時はそこまで面白いと思わなかったんですけど、Webサイトのスクレイピングで面白さに目覚めました。どうやらPerlというものが便利らしいというので、大学の書店に行ってPerlポケットリファレンスを買って、よくわからないながらになんとか動かしてやった、っていうのが、最初のエンジニアっぽい考えが目覚めた時だったかなと思います。

そこでなんとなくPerlを覚えたのですが、結局大学の研究室でCとFortranが目の前にあって、そこで割とCを書くようになりました。最初の頃はそこまで好きではなかったんですけど、必要にかられてCを勉強してどうやったら速くなるのかを自分で調べ始め、その辺りから徐々にプログラミングとかエンジニアリングのほうに興味が向いていきました。

── 今の業務でやりがいを感じる瞬間ってどんな時ですか

普段の業務でいうと、やはり問題解決した時ですかね。バグも含めて、現状のシステムに不便なところがあって、こういう仕様の方がサポートの人たち楽だろうなとか、ここはこの形の方がユーザーにとって便利そうだな、みたいなのをチームと議論しながら作ってリリースして、そういう声を実際に聞けると嬉しいってのはありますね。

── カンムの魅力や特徴をおしえてください!

みんな学びに貪欲な人が多いのがすごい良いと思います。スパルタンSQL とか決済システムのすべて 輪読会とか。特に輪読会※は多くの人が参加して、ちゃんと自分のパートみんなやってくるじゃないですか。会社で勉強会やるってなると、大体何人かはやってこないって結構自分の経験では普通なんですけど、それがないってのはすごく良いなと思います。みんな頭良いからエンジニアじゃない人も普通にSQL書けるし、人によってはPython書いてる人がいるし。そういう真面目で頭良い人たちだけど、ふざけるとこはふざけるみたいなのは魅力的ですね。\ ※おもしろそうな本を見つけてみんなで理解を深める会。章ごとに担当者が仕切る

もう一つ良いなと思うのは、職種の垣根がそんなになくて、何か発生したときにソレは俺の仕事じゃないみたいに言う人がいないってところじゃないですかね。これはどれだけ組織でかくなっても維持していきたいなと思う部分ですね。

── 最後に今後達成したい目標を教えてください!

自分は年齢的に「35歳プログラマ定年説」の35歳を通り過ぎてるんですけど、なんかこう、三国志でいうところの黄忠みたいな人間になりたいんです。生涯最前線みたいな。生涯最前線っていう言葉が適切かどうかはわからないんですけど、ちゃんとしたコードを書いていきたいし、それで飯を食っていきたいと思っています。

ただそれは今後どんどん難しくなってくると思うんですよね。プログラミングスクール的なのがでてきているし、弊社の管理部とかを見ていても、Webアプリケーションだったら割と誰でもできる時代が来ていると思うんですよね。テックデー で Lambda と API Gateway 立ち上げて何か作ってる人もいますし。だから普通に仕様どおりにアプリケーションを作るだけではだめで、もっと他の分野の知識や経験も貪欲に学んでいきたいです。うちだったら金融系の仕組みを知っているだとか、そういうプラスアルファを積み重ねて自分の血肉にしてやっていきたいなと思っています。

仕事観点でいうと、社会インフラを作るような仕事をやりたいですね。いわゆるWebサービスをゼロから作るのは誰でもある程度までは出来ると思うんですけど、当たるかどうかは別として。技術や仕組みは全部自分達で決められますし。やりかたもだいたいインターネットに転がってる。すごい古い仕組みで動いてる社会インフラってあるじゃないですか。社会的には大事なシステムなんだけど仕様は非公開で何百人がかりで非効率的に運用されてるようなやつ。そういうのを、今の技術で再構築したら面白いっていうのがあって。実際プロセシングシステム自体も凄い大きな会社が作って売っています。でも、それって何年前の技術だよっていうのと、何人使っていていくらかかってんのっていう話ですよ。もっと効率よく人の運用負荷を減らせるものは作れると思っていて、それが金融以外の領域にも存在すると思っているんですよ。そういう領域をアップデートしていく仕事は面白いなって思いますね。

── ありがとうございました!

佐野 裕章 / Backend Engineer

静岡大学大学院理工学研究科修了後、SIer、メガベンチャー、スタートアップを経てSE、サーバサイドエンジニア、インフラエンジニアなどを経験し、2017年11月カンムに入社。