2016.05.24

AlpacaCTO原田様インタビュー

1. なぜCapitalico[キャピタリコ]を創ることになったのでしょうか?

Capitalicoは、プログラミングなしに自分でアルゴリズムを作成して、それを検証することができる投資分析サービスです。移動平均線がこういう位置関係にあったとき価格がこう動く、というアイデアがあるとき、それが本当なのか、確率はどのくらいなのか。これをノンプログラミングで分析することができるようになっています。

そもそも、弊社では最初Labellioという一般的な画像認識の機能を提供できるサービスを開発していました。B2Bの領域で、企業様向けに画像認識の技術を提供するということをやっていたのです。

しかし画像認識の問題は多岐に渡るので、1つ開発したからといって、リリースし辛い、スケールしづらいという状況が続きました。また、テクノロジー、技術ありきでサービスを作ってきていたという問題もありました。そのため、サービス開発を続けるべきか?と議論をした結果、本当にやっていかなければいけないことは問題ありきで、それを解決するサービスを提供していくこと。解決できれば人が喜ぶものを作ろうと考えを新たにし、新しいサービスを開始することにしました。

そこから生まれたのがCapitalicoなのですが、代表の横川の発案で生まれたものになります。代表の横川は元は証券会社で働いたのですが、家庭の事情で在宅のまま仕事をしなければいけない状況に置かれてしまいました。そのため、これまでの知識を活かす形でデイトレードをやっていたそうなのですが、トレードで勝てても、一日中PCの前に張り付いてやり続ければならず非常につらい。

そのため、チャートを見て、テクニカル分析をしてトレードをする人たちのために、分析のプロセスを自動化するサービスがあれば喜ばれるのではないかと考え、サービス開発に至りました。

2. 原田様はどのような経緯でCTOになられたのでしょうか?

Alpaca創業にあたってCTOとして会社を設立しました。Alpacaという会社はアメリカ登記の会社で、2015年の2月に書類上は会社は始まっています。創業者は3名いて、全員大学の同期でした。

その時から、CTOとして会社には関わっています。

Alpacaにジョインする前は、5年ほど日本でエンジニアやCTOとして働いた後、アメリカの企業で3年半ほどソフトウェアエンジニアとして働いていました。ですので、CTO経験はAlpacaで2社目になります。

3. Capitalico[キャピタリコ]の開発において利用されているもの、開発のチーム体制を教えてください

Capitalicoに関しては、Pythonで開発しています。WebフレームワークとしてはFlaskを採用しています。Deep larningのフレームワークとしては、Chainerを使っています。データベースは、PostgreSQLとRedis、etcdというデータベース的なものを使っています。一部Node.jsも使っている部分もあります。モバイルアプリに関しては、Swiftを使って開発しています。

開発環境構築においては、Dockerを使って開発をしています。GPUが必要になるケースがあるので、ローカルマシンで開発はしていません。共有マシンはリモートであって、その環境をうまくシェアできるようにDockerをつかって共有するようにしています。

現在、エンジニアの数が6人なので、明確に誰がどの部分を担当するかというのは、明確には分かれてないです。そのため、フロントエンドからバックエンドまで実装することができる、フルスタックなチームメンバーで開発を進めています。

もともともはAWSで開発環境を構築していたのですが、、最近はGPUを使用している関係もあり、AWSではなく、IBM SoftLayerという環境に開発環境を移行しました。クラウド環境でGPUを提供しているのは、AWS、さくら、SoftLayerぐらいだと思っています。

日本には、フルタイムは4名、インターンが2名、アメリカにも6名ほどメンバーがいます。

情報共有に関してはSlackを使っており、ビデオ通話ではZoomをつかっています。コードのホスティング先としては、GitHubのプライベートリポジトリを活用しています。

マーケティングツールとしては、Mixpanelを最初は使っていたのですが、機能過多だと思い、現在はGoogleAnalyticsを採用しています。

データのビジュアライズには、re:dash というツールを導入しています。

4. どのようにして国を超えたリモートワークを実現されているのでしょうか?

元々日本の中だけでやっていた際も各メンバーが離れた場所で開発を行っていたので、働き方自体がリモートワーク前提になっていて問題無く回せています。逆に常に人が近くにいると雑談も入るので、効率が悪くなる側面もあると思っています。

アメリカと日本では当然時差がありますが、CTOとしてタスクの切り出しを明確にすることで、時差の問題が発生しないように気をつけています。UIやフロントエンドで一つ、機械学習で一つ、バックエンドデータ処理基盤で一つというようにしてそれらが国境をまたがないようにするのが大事だと思っています。

1日1回、5分から10分ほどのデイリーMTGを、日本でいうと朝の時間帯、アメリカで言えば夕方の時間帯に実施しています。

開発に関するドキュメント化についてはWikiを使っていますが、徹底して管理をするということは無いです。

コミュニケーションについては、少しでも気になることがあればSlackのパブリックチャンネルにその内容をどんどん投げるように心がけています。

弊社の場合最初からリモートが前提となる働き方になっていますが、これから組織が大きくなっていく、特にコアな意思決定をする際には、実際に物理で会って議論していくことは必要になってくるとも思っています。

関連した記事