Wantedlyは、月間150万人が利用する国内最大のビジネスSNSです

This page is intended for users in Japan. Go to the page for users in United States.

理想のサービスを目指して変化を続ける。Scala×マイクロサービスで作る証券会社のシステムとは?

こんにちは。
FOLIO人事の井上です。

第1回iOS編で非常に好評いただいた「FOLIO Creators Interview」。

第2回は、バックエンドエンジニア編です。
FOLIO名物の「キレ者バックエンドコンビ」による開発秘話、必見です!

マイクロサービス・Scala・Finagle... モダンなスタックで作る証券会社

− まず、FOLIOにジョインしたきっかけを教えてください。

來田:自分がいる業界は一番熱いところにしようと決めているんです。3年ほど前のアドテクブームのときに前職のアドテク業界に入っていたので、次はこれから盛り上がるであろうFinTechの業界にいたいと思っていました。

また、FOLIOが大型資金調達したときにコーポレートサイトを見て、優秀そうな人が多かったこともきっかけのひとつです。自分より優秀な人たちに囲まれた環境に行きたかったので、気になって話を聞きにきてからは、とんとんと決まりました。

▼ FOLIO バックエンドエンジニア 來田 一宣

松林:僕の場合は、いま隣で働いているエンジニアからある日突然スカウトが来たんですよね。「データベースの話に興味があるので、よければ話しませんか」と書いてあったものに釣られて(笑)。ちょうどインメモリデータベースの勉強をしていたので、最初は詳しい人と話せることを目当てに話を聞きに行きました。

話を聞いてみると社員の目線も高く、ここで働いてみるのもアリかなと。Webエンジニアだけじゃなくて、金融のプロフェッショナルたちとコラボして働けるというのも、面白そうだと感じましたね。

▼ FOLIO バックエンドエンジニア 松林 祐

− FOLIOでの開発の面白さはどのようなところですか?

松林:技術的には、モダンな環境で開発できているので楽しいですね。バックエンドはScalaのマイクロサービスになっていて、FinagleというOSSをベースにConsul・Prometheus・Zipkin・Kibanaという理想的なスタックになっています。

その分キャッチアップしなければならないことも多いですが、むしろそれを楽しみながら開発しています。例えばslackには#finagle_commitというチャンネルもあって、finagle関連のリポジトリのすべてのコミットが流れるようになっています。それを見ながら、皆で議論をすることもありますね。

マイクロサービスとして各サービスが独立しているので、実は使っている言語はScalaだけではないんです。ポートフォリオの最適化にはPythonを使っていたり、BFF(Backends for Frontends)はNode.js、社内のオペレーターが使う管理画面はフィードバックをすぐに活かせるようにRuby on Railsで作っています。この会社規模で、この言語の多様さと人材の多様さがあるということは、非常に魅力ですね。

スタートアップとは思えない品質への意識。ペアプロへの取り組みも

− 実際に証券会社に入社してみて、ギャップはありませんでしたか?

來田:スタートアップなのにここまでしっかりとQA(Quality Assurance)をしているということに驚きましたね。「リリースしてバグがあったら直せばいいじゃん」というスタンスなのかと思ったらそうではなくて、最初からバグが無い状態で出そうとしているのは良いところかなと思います。

松林:顧客の資産に直接関わるので、開発に緊張感がありますね。神経を使って実装漏れが無いかレビューをしています。

− 実際にどのようなところに気をつけて開発をしていますか?

松林:開発担当者とレビュアーの二人三脚で、「こういう風にすれば一貫性とれるよね」と確認しながら進めることが多いです。

來田:仕様を決めて設計・実装までを1人でするというのは、できるだけやめたいと思っています。スケジュールの兼ね合いで出来ないこともあるんですけど、基本的には担当者とそのモジュールに詳しい人の最低2人で設計から考えて、実装・レビューまで2人で行う、俗に言うペアプロもしています。

來田:証券システムの仕様は複雑で、1人で実装しても結局レビューができなかったり、認識の齟齬が起きることがあるんです。だから証券会社出身のメンバーから知識を吸い取ってコード化させるというところは、ペアプロの方が圧倒的に効率が良いよねと始めました。逆にテストとかは1人で集中して書いた方が効率が良かったということもあるので、バランスは重要ですね。

松林:一時期、2人で1日8時間のペアプロを2週間続けるというアグレッシブな事をした結果、だいぶ知見が溜まりました(笑)。

自分の中だけで洗練されたものをぶつけて、レビューのタイミングで「こういう風にした方がいいんじゃないか」とか、「この実装だとそもそもモデリングが...」と手戻りになることも減ってきました。通常のレビューの何倍もの速さでフィードバックできるのはペアプロのメリットのひとつですね。

一人ひとりがリーダーシップを取れる集団

− 多様な人が集まっていますが、コミュニケーションはどう取っていますか?

松林:Slackでのコミュニケーションもtimesチャンネル(分報)が導入されていて、密にコミュニケーションが取れています。「こういうところに興味がある」「実はこういう知見があるんだ」ということって、シェアする必要性がないとなかなか言えないので、それらを展開する場があるとやっぱり良いなと思いますね。

來田:証券もそうですけど、各ドメインの有識者が多いじゃないですか。Slackを見ているだけでも勉強になります。

松林:「セキュリティについてはこの人が強い」「OSレベルのチューニングならこの人」と上手くバラけているというか、こういう問題が起きた時はこの人というように、何かしらリーダーシップが取れる人が多いですね。

− 例えば來田さんから見て、松林さんのここが長けているという点はありますか?

來田:知識が豊富。技術力も高くて、日々勉強になります。本や論文の虫なので、一般的な知識からとんがった知識まで本当に幅広くて、なんでもよく知っていますね。

松林:1人が突出してできるというよりも、再現性があるやり方を導入できるといいなと思っているんです。本に書いていることって、要は誰かが獲得した知見ですよね。その本に書いてあった開発手法を取り入れてみたり、こんな技術があるよと紹介したり、どんどん展開出来るといいなと思いながら読んだりするのは好きですね。

− 松林さんから來田さんには?

松林:キャッチアップ能力が高いところですね。証券業務の複雑なバッチでも、トラブルが起きたときに「このケースではここのデータベースとここを参照すればいい」と、的確な判断ができるのは凄いなと思います。

松林:自分ならもっと長い時間悩みそうなところでもパッと判断できるし、そこの把握能力って根本的に認識能力が高いということだと思います。

− 來田さんはよく社長と直で協議している印象もありますね

松林:直談判。今日もしていましたね(笑)。

來田:納得しないところでは妥協したくないというか、一個一個は小さいことでも、一個納得しないことがあると多分次も同じようなことって続いてくので、あまり引かないようにと意識しています。創業メンバーが「きれいごとを言える会社にしたい」ということを言っていたのですが、そういうところが大事かなという気はしますね。

松林:社長も含めてそういうことを受け入れる体制もあるし、言う人もちゃんと言えるし、良いフィードバックサイクルがありますね。

來田:金融の人、もっと固いところでコンプライアンスをしていた人、Web系の人。色々なカルチャーが混ざり合うことで、この特殊な会社形態がどういう風になっていくのかというのは面白いところですよね。

「理想のデザイン」を実現するために改善を続けていきたい

− 今後はどのような挑戦をしていきたいですか?

松林:システムに問題が発生すると、サービスに大きく影響するため、開発プロセスの段階である程度「こういう風にしたら問題が起きにくいよね」と納得できる仕組みを確立したいですね。ただ、プロセスにがんじがらめになるのではなくて、メリットがありそうなものは導入して、うまく開発スピードと堅牢さを両立できる方法はないかなと探しています。

− それは個人で進めているのですか?

松林:誰かの提案から始まって、皆で進めています。ペアプロもある日唐突に始めて、メリットやデメリットを見ていきながら、上手くいくところだけ残して、上手くいかないことは変えています。

來田:実装レベルでもアーキテクチャレベルでも変化に強いように作るというか。変化に対して皆が嫌と言わないので、開発プロセスのようなところは良さそうなものはとりあえず導入してみて、悪ければ戻していけたらいいですね。

− 來田さんはどのようなことをやっていきたいですか?

來田:バックエンドでいうと、開発の仕方やスピードがまだまだ全然追いついていので、もっと良い方法を見つけていきたいです。ビジネスサイドもデザイナーも優秀な人ばかりなので、僕の妄想ではFOLIOは凄いサービスなんです。だからこそ、バックエンドがネックになって実現できない、というのは悔しい。

「システムがこうなっているから」というのを理由に理想のデザイン、サービスにするのを諦めたくはないので、頑張っていきたいです。

松林:来年になったら「去年の今頃は何もできていなかったよね」という話ができるように絶賛改善中です。 エンジニアの体制も強化して、もっといい方法を探りながら、一般公開に向けてサービスを磨いていきたいですね。

-ありがとうございました。現状に満足せず、向上し続けたいという気持ちがひしひしと伝わってくるインタビューでした。また一年後、インタビューさせてください!

FOLIOは9/9(日)開催のScala関西 Summit 2017にBronze Sponsorとして参加します。本イベントでは、社内で開発しているOSS「reladomo-scala」についての発表も予定しておりますので、FOLIOのバックエンド開発に興味を持った方はぜひご参加ください!


バックエンドエンジニア
Scala☓マイクロサービスで次世代証券システムを作りたいエンジニア募集
FOLIOは、2015年12月に創業したオンライン証券会社です。 国内株を取り扱う独立系証券会社としては、10年ぶりの新規参入となります。     「資産運用をバリアフリーに。」というミッションのもと、フォリオというサービスを提供しています。 フォリオは、企業ではなく「ドローン」や「宇宙開発」といったテーマに10万円から投資ができるオンライン証券サービスです。     創業から1年半で、累計21億円の資金調達を実施。 また、各種コンテストで表彰されるなど各方面から期待が高まる中、ついに2017年11月、β版を一般公開致しました!
株式会社FOLIO



株式会社FOLIOでは一緒に働く仲間を募集しています
Anonymous
D2a1151c 81ca 4020 aa3b 68070d47ad50
8b7c0642 b272 40eb b5ff daf2888da0a0?1504184836
14ae1b9a 8bc6 4bbc 833b 5450921ab929
73445f12 23a6 4a4d bc79 4399b4f4a6c1?1511450538
Picture?height=40&width=40
12 いいね!
Anonymous
D2a1151c 81ca 4020 aa3b 68070d47ad50
8b7c0642 b272 40eb b5ff daf2888da0a0?1504184836
14ae1b9a 8bc6 4bbc 833b 5450921ab929
73445f12 23a6 4a4d bc79 4399b4f4a6c1?1511450538
Picture?height=40&width=40
12 いいね!

今週のランキング

ランキングをみる

Page top icon