Fintech ベンチャーで新サービス開発した話 ~Smart Trade~
みなさん、こんちは、来年から自宅でエンジニアシェアハウスを目論んでおります。住人募集中です、Ric.です。
今回は自分が初めてエンジニア?としてインターンを始めた時(2018/10あたり)の話です。
かなり前の話になってしまうので新鮮度は低いかもですが自分の中では貴重な体験且つ今思い返せば的なのもあるので思い出話として書いときたいと思います。
始めた経緯
わい、メガベンエンジニアインターン、書類で落ちる。
正直恥ずかしいのであんまし言いたくない事実なんですが、これが一番大きいので正直に書いときます。笑 (ちなみにこちら、無事内定頂き入社致します) 確かA/Bテスト、効果検証系のハッカソン型インターンだった気が。。。
当時就活ではなく院進の学部4年わい、「情報系出身やし行けるやろ!」みたいなノリでメガベンのインターンを申込みをしたら案の定落ちまして、
俺にはまだインターンは早いかしらん?とはなりつつ、これも半分見切り発進感ありますが「ともかく何かしらの経験は積まねば、それから再挑戦しよう」というお気持ちでWantedlyで色々探しました。
金融×エンジニアリングとの出会い
これも今考えると安直、Wantedly で「python」で調べて、当時仮想通貨botなんかを遊び(本当は授業の自由課題)で作っていた自分はこちらの企業が目に止まりました。
他の企業様でも資産管理やキャッシュレス等の金融とエンジニアリングの掛け合わせはあったのですが数少ないトレーディング系の企業として目に止まったのが大きかったです。 (ちなみに今注目しているトレーディング系の企業様はFinatextさん)
期間・役職・やった事
期間
2018/10 ~ 2019/08 : 大体一年くらい長期就業インターンみたいな扱いになるかと
役職とやった事
最初は株式のトレードアルゴリズムをWeb上で開発できるプラットホームを提供している企業さんだったので
- トレードアルゴリズムの開発エンジニア
として、そこでのアルゴリズム開発を担当しました。
そこから
- もくもく会・勉強会運営・ブログ執筆
アルゴ開発のハンズオンなどをシリーズで執筆したりユーザーを増やす活動 - 開発エンジニア
今回メインでお話する所、新サービスの開発 - PM・プロジェクト管理
ベンチャーさんでの就業だったのでインターン主導で進めるプロジェクトが多く、その進捗確認等 - インターンマネージャ?
自分がインターン初期生かつ、期間的にもおじじだったので新インターンの方や他のインターンの方のフォローアップ - データ分析の前準備のパイプライン
これ分析までやりたかったんですけど契約期間と自分の都合の関係で前処理部分の所まで担当しました、正直ここもクソコードだった気がする
…
こんな感じで日を重ねる毎に色んな役職を兼任してました。
新サービスの開発
GUIでシステムトレード組めるNo codeサービス
本サービスの仕組みをメッチャザッックリ言ってしまうとアルゴ開発者がWebプラットフォーム上で作ったトレードアルゴを使いたい者が買うというCtoC サービスなわけですが、結局の所
「金融わかる」+「エンジニアリングわかる」
こんな高度人材(クオンツという)って日本にどれくらいおるん?って話で供給サイドのボトルネックが存在するわけです。 これの主にエンジニアサイドの解決策として開発したものがこのサービスになります。
つまり「トレードのアイデアはあるけどコーディングはちょっと。。。」 という方への敷居を下げたい、開発者の絶対数を増やしたい、という狙いで開発しました。
自分の中ではトレードアルゴリズム界のmatrixflow的な感覚で作ってました笑
実際に動いているのはこちら
コードで書く場合は下の画像の左、この新サービスで開発する場合は右みたいな感じになります
開発体制・担当した所
CEO・CTO・インターン生2名(後半から4,5名+社員の方数名)
自分はメインの開発者インターンとして入りフロントから送られてくるJSONを上手い事parse(ここ地獄だった)して実装したトレードアルゴに渡して分析ロジックを回す所の実装を担当しました。 ベータ版の完成時にはフロント担当のエンジニアインターン生と共にUX周りを改善、ドキュメントの作成も行いました。開発期間 : 4,5ヶ月くらい?
最初はフロントメイン担当のインターン生と組んで2名体制での開発でベータ版を完成させ本番環境まで持っていくまでに他のインターン生と社員さんを加えて引継ぎも含めて連携していきました。
CEOとCTOとはサービスの方向性と開発に関して開発初期からサポート頂きました。
結局初めてインターンやってみてどうだったん?
普通に働きやすい
Wantedlyにも書いてあるんですが 正直このまんまです。上から順に...
優秀なインターン生と色んな事やれる
これは今考えるとある程度のインターンだとある程度のやる気の溢れた方々が揃っているのは当たり前なんですが当初は
「皆んなまーじで優秀じゃーん」
これは思った、正直これはどこでも思うんですけどCEOとか取締役が
色々と任せてくれるので優秀な同期と大学や証券会社と協賛企画できたりしたのでこれは貴重な要素だったかも。
周りが優秀で学びが多いのは優良インターンの特権ですね…
やっぱ長期だと色々見えることは多い
これは特に学びの面で大きかったですね。
長期の開発に携わり、その中でも他のプロジェクトも横目でみながら色んな役職をしてみると、開発面はもちろんですが他職種の方との連携や自分の働き方で学び得る所が多くありました
開発面
- なぜそのサービスを開発するのかと開発の比重の決め方
これは先述したような開発者として方針を理解して進めるのとそうでないのは違う+このサービスの重要度はこれ位なので掛ける労力はこれ位と言うのはキチンと見積もる - サービスの長期的な視点を持っての開発をする
今回の例で言うと分析ロジックは増え続けるためフロントはAtomic Designを採用、ロジック計算部もそれに合わせてコンポーネント化(正直ここはクソコードのまんまなのでリファクタリングしたかった) - 技術的な細かい所
CTOや社員さんからDRY原則からブランチ運用、タスク管理等を教わり、A/Bテスト周りも軽く教えて頂いたりもし、
ドキュメント(docstringなど)の作成の仕方まで細かく教えていただいた時もありました。 - 見積もりを誤るとクソコードになる
これは色んな所でやらかしましてますが時間がないとコードに気を配る余裕がなくなります…よくない…
他職種の方との連携
CtoCのサービス特に開発者の方もCustomerになるのでカスタマーサービスの社員の方に技術的な質問が飛んでくる事も往々にしてあるためそう言う場合には連携して対応すると言うこともあったり開発者向けのイベントでカスタマーサービスのインターン生と連携したりなどと特有の業務がありました。
自分の働き方
自分は他のインターン生に任せても良いものを無駄に巻き取りがちと言うことが3ヶ月くらいで分かっていたので、 自分の担当する業務領域が増えてくるとタスクに優先順位をつけ他のインターン生の方が得意そうなものはちゃんと説明して任せる分散技術を会得しました。
マネジメント?面
マネジメントと言えるほどの事はやってなかったかもですが…これは2つの側面から
- セルフマネジメント
OKRの概念からリモートワークにおいての働き方、自分の目標管理をしっかりとしたり - プロジェクトマネジメント
2つ程のプロジェクトをメインで担当していたので何日までにこれをやっておく、今月のKPI/KGIはこんな感じみたいなのを社員の方と決めて行ったり
他にも新しいインターンが増えていく中でどう会社に馴染み、コミットしてもらうかなども社員の方と企画していました(チューター制等)
ここでインターン生は増えていくけどやれることがないとかってのが深刻な時期もあった気がする。
10ヶ月で卒業したのは?
自分が初めてエンジニアインターンするには十分すぎるほどよくしてもらい・様々学ばせて頂いていたので特になんの不満もなく。 ちょうど自分が就活する夏インターンが本格始動する前がちょうど10ヶ月くらいだったのが一番大きいんですが、
強いて挙げられるのは、
インターンを始めた当初の目的である「エンジニアとしての経験を積みたい」と言う所がマネジメントや管理業務(もちろんマネジメントもエンジニアとして大事な経験だとは思うのですが)が多くなっていき、自分の
求めている経験としてあまりできなくなったと言う所があるでしょうか。プロジェクトの進捗確認と新インターン生のフォローアップや打ち合わせで1日が終わると言うこともありました。それもそれで楽しくはあったんですが…
これは不満とかではなく自分の会社での立ち位置とやりたい職務がマッチしていない事実と言うことだと思います。
多分これは正社員とかになっても数年に一度くらいは見るべきポイントと言うか考える時は来るだろうな〜とは思っています。
ともかくやってみて良かった
最後あたり退職エントリみたいな感じな流れみたいになってしまいましたが笑
最初は自分にはエンジニアインターンは早いかと不安で尻込みしていましたが今考えるとここで踏み込んでインターンに突撃してみて良かったと思っています。
この時の踏み込みが今の自分のベースになっていると思います。