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

FOLIOのエンジニアに、入社して分かった強みとつらみを聞いてみた #Backend編

入社後に感じた強みやつらみを語ってもらうシリーズ。Day1ではカルチャー、Day2ではフロントエンドにフォーカスをしてきました。

最後となる今回は、バックエンド編。

入社後8か月目を迎える大野に、バックエンドチームの現状について語ってもらいました。

マイクロサービスの改善、金融ドメイン知識のキャッチアップ、やらなければならないことはたくさんあります

ーまずは、現在の仕事内容を教えてください。

新規機能の開発です。どちらかというとエンドユーザー寄りになりますね。プロジェクトによってはフロントエンド、デザイナー、コンプライアンスと一緒に取り組むこともあります。

-バックエンドは、どんな技術構成になっていますか?

メインの言語はScalaで、フレームワークにはFinagleとFinatraを使っています。また、社内業務システムのUI設計にはRailsを使っていますね。マイクロサービスアーキテクチャを採用していて、今だと約20前後くらいのサービスがあってThriftで作っています。

-約20のサービスシステムを全部触っているということになるんでしょうか?

いえ、一部です。全然見たこともないサービスも多分まだあると思います。大小バラバラで、大きいものは普段触っているものでも完全には全体を把握できていないんですよ。これはマイクロサービスとしてあまり良くない状態になっているということなので、今後は責務ごとに分離をして適切なマイクロサイズで分割していきたいところです。

-なるほど。早速バックエンドチームの課題が出てきてしまいましたが、逆に、入社して感心したことってありました?

20個ものサービスを実際に運用できているのはすごいと思いました。

大小様々なマイクロサービスを機能させるうえで、サービスディスカバリーや分散トレーシングのシステムがちゃんと整備されている。更に今ではkibanaやDatadogでログを監視出来ているので、土台がしっかりできてるなぁと感心しましたね。

-なぜうまくできているんだと思います?

技術的に工夫したからできたのではなくて、目的に合ったものを作ろうというモチベーションがあるからかなと。証券サービスなので、高いレベルの要求があり、かつ関わる部門が複数にわたるんです。その複雑性に境界を付けてマイクロなサービスとして取り組んだ方が良いと言うのが僕たちの中では自明なんですね。

個人の開発力に頼り切るのではなく、チームの経験から会社の開発力を向上させる

-現在のバックエンドチームの比重としてはWeb系出身が多いですよね。メンバーのここが凄い、っていうポイントはありますか?

ちゃんと最新の技術的なトレンドを押さえて、かつひとつひとつきちんと理解したうえで組み合わせて作れてる人が多いなあと思います。

例えばFinagleの話ですが、あるエンジニアは毎月のバージョンアップのたびに、早めに入れた方がいいかどうか等コミットをチェックしています。どういうフィーチャーが入るのかいうところまで追えていて、ハマりポイントを理解しドキュメントに残しているんです。

-開発力を向上するために努めていることってありますか?また、つらみなどあれば教えてください。

個人の面では、FOLIO ではシステムの要件分析やライブラリの内部の理解、UXを意識したり等々、各個人や場面で求められる開発力は違うと思っているので、その場でのフロー効率と長期的な面でのリソース効率のバランスをとって少しずつやれることを増やしていくことを意識しています。

チームの面では、プロジェクト単位やさらに細かい振り返りをしていることはひとつありますね。KPTは前職等でも振り返り方法として馴染みがあったのですが、時系列のイベントから振り返るタイムラインであったり、やったこと・分かったこと・次にやることを書き出すYWTであったり、方法も工夫して、 個人の開発力に頼り切るのではなくてチームの経験から会社の開発力につなげていく振り返りになっていると思います。

あと、つらみですか・・・金融ドメインの性質なのか、仕様の決め方やモデリングまわりは完璧にやれておらずエンジニア同士で議論したり、要件を詳細に確認したりと試行錯誤しているところですね。

面白い部分でもあるのですが。つい最近入社したエンジニアがモデリング勉強会を開いてくれたのですが、そこでインプットしつつ、あとは普段の業務の中でも他のチームがナレッジをまとめている社内 Wiki なども読んだりしながらフォローしています。

あとは、プロダクトの歴史も長くなってきてコードベースも増えてきたので、古いサービスと新しいサービスの差異があることはむきあうべきところかなと。新しくできた小さいサービスで実験的にパッケージ構成や命名をシンプルなものにしてみたりということはできているのですが、全体としてどういう方向性でどのサービスがどういう経緯・思想で作られたかは、バックエンドのチームの中で共通認識をつくっていければと思っています。

-キャッチアップ出来る環境があるのはありがたいですね。入社して10ヶ月が経ちましたが、自分なりに成長したなと感じることはありますか?

やれなかったことができるようになるポイントがありますね。Scala は前職から扱っていたので大きくハマってしまうということは無いのですが、すごく細かいところでテストが何故か落ちたりということを経験したり、あとは業務上、複雑なバッチフローがあるので、紐解いていって理解できた時は少し成長できたかなって感じます。

さきほどつらい部分としてあげていたモデリングも、コンプライアンスに法律的な要件やドメイン知識をきいて、モデリングに落とし込めている部分もあり、改善はできていると思っています。

-その技術的なギャップって、入社前と比べて結構ありました?

僕はもともと前職の知り合いがFOLIOにいたので、彼から金融ドメインという観点で難しいという話は聞いていて、多少の覚悟はできていました。実際、本質まで理解していないと分からない部分もあると感じますが、きちんと説明してもらえるのでキャッチアップは出来る環境があります。


FOLIOでは人がスケールアウトする!?

-最後は余談になってしまいますが、FOLIOバックエンドチームあるある話があれば教えてください。

人がスケールアウトするっていうことですかね。一人で何人分も仕事するんです。通常業務をこなしているかと思ったら全く別のアウトプットをしていたりするので、他のメンバーとよく、うちって一体何人いるんだろう?っていう話をしていますよ(笑)。これは、バックエンドに限らずFOLIO全体で言えることかもしれないです。

-確かに、みなさんの業務をこなすスピードは半端じゃないですよね。それでは最後に、今のFOLIOのチームの中で今後どういうことをやっていきたいかを教えていただけますか?

証券業務部やコンプライアンス、デザイナーやフロントエンド等、色々な職種の人とコラボレーションしながらより良いサービスを作りたいです。個人的には、SOEやSORの両面でバランスをとりつつ現代の金融サービスを作っていきたいですね。

-様々な部署の人と関りながらものづくりが出来るというのは、FOLIOならではだなと改めて実感しますね。

3日間にわたってお届けしてきた、「リアルなFOLIO」特集はこれにて終了です。

文章だけで内情を伝えることはなかなか難しいですが、みなさんにできる限りFOLIOのことを知っていただけるよう、今後もさまざまな情報を発信してまいります。


バックエンドエンジニア
Scala☓マイクロサービスで次世代証券システムを作りたいエンジニア募集
FOLIOは、2015年12月に創業したオンライン証券会社です。 国内株を取り扱う独立系証券会社としては、10年ぶりの新規参入企業であることに加えて、2018年1月時点で、累計91億円の資金調達をしたことでも大きな注目を集めました。 私たちが提供するサービスには、大きく分けて2つあります。 1つは、「テーマ投資」。同サービスは、いわゆる’株式投資’とは大きく異なり、ユーザーは「銘柄(企業)」にではなく「テーマ」に投資します。プロが選定したテーマは80種類以上に及び「ドローン」「eスポーツ」「ガールズトレンド」「人工知能」といった多様なテーマがズラリと並びます。 もう1つのサービスは、2018年11月にリリースした「おまかせ投資」。 プロフェッショナルな資産運用をすべて自動でおこなえるサービスです。ノーベル賞を受賞した「現代ポートフォリオ理論」をベースにしたアルゴリズムで運用します。 アクティブに投資を楽しめる「テーマ投資」に加えて、完全におまかせでパッシブ(インデックス)投資を行える同サービスのリリースにより、FOLIOではアクティブ投資とパッシブ投資をシームレスにつなぎ合わせた“トータルアセットマネジメント”を実現しました。 また、2018年1月のLINE社との業務提携により、日本に約8000万人(2019年12月期第1四半期決算説明会LINE株式会社参照)のアクティブユーザーを持つ「LINE」という巨大なプラットフォームで、フォリオが提供するサービスが利用できるようになりました(「LINEスマート投資」)。
株式会社FOLIO
株式会社FOLIO's job postings
1 Likes
1 Likes

Weekly ranking

Show other rankings