見出し画像

エムスリーエンジニアリングフェロー就任とCADDi入社に寄せて

ばんくし(@vaaaaanquish)です。

表題の通り、3年弱働いたエムスリーのエンジニアリングフェローに就任し、今までとは別の形で関わらせてもらう事になりました。

エムスリーでは、NLPやレコメンドを主軸とした機械学習ロジックの開発、関連プロダクトを提案しては推し進める人をやっていました。文化や制度、チャレンジする機会だけでなく、周囲の素晴らしいPdMやbiz、Engにも恵まれ、新規プロジェクトのチーム開発のリードを経験したり、主担当のプロジェクトが社内で表彰されたりしました。幸いな事にCADDiに入社するタイミングでエンジニアリングフェローの打診を頂き快諾しました。

今後は、AI・機械学習チームメンバーとしてではなく、エムスリーの良さを外に伝えたり相互に相談、協力する形でお手伝いする事になりそうです。

また、キャディ株式会社(以下 CADDi)に機械学習エンジニア テックリードとして入社しました。

CADDiでは、機械学習やデータサイエンスを行うチームとして12月の入社と同じタイミングでCADDi AI Labが立ち上がりました。会社とチームの双方をドライブし、溜まったデータをフル活用する活動を全力でやっていければと思っています。


エムスリー

エムスリーは、医療者向けのポータルサイト、電子カルテなどのシステム開発をメインに、toCサービスとしてAskDoctorsや医療機関のキャッシュレスサービス、また臨床としての医療AIなどのサービスを提供するIT企業です。

エンジニアは100人前後ですが、全体の企業規模は国内のIT企業の中でもトップレベルで、社員一人一人がインパクトの大きさを意識する文化を持つ、医療ドメイン特化のIT企業です。

私の所属していたAI・機械学習チームは、西場(@m_nishiba)さんが立ち上げた当初から各メンバーがプロジェクトのROIを重視しインパクトの大きいプロジェクトに横串で参入し続けるチームです

立ち上げ当初は、医療関係者を主軸に開発を行うチームで、自然言語処理やレコメンデーションを主軸としていました。現在では、データ基盤やMLOpsが安定した背景や、画像認識を専門とする大垣(@Hi_king)さんがジョインしリーダーになったり、PdMとして山崎(@yamamuteking)さんが盛り上げている事もあり、画像診断の分野で学会に参加したり、toCに対する検索エンジンやモデルを提供するなど幅が広がり始め、これから更に盛り上がっていくフェーズでもあります。

エムスリーは絶賛採用強化中とのことで、気になった方は下記サイトよりエムスリーのプロダクトを知り、面談に応募してみて下さい

(フェローとしての最初の仕事はこれで果たせたでしょう🎉)


CADDi

CADDiは製造業における、受発注双方のペインを解消するプラットフォームを目指すITベンチャー企業です。

2018年に創業し4年、ちょうど少しずつ知見やデータが溜まり、データ分析や機械学習によるドライブを考え始めたいというフェーズで、チームを立ち上げて行くという事で今回お誘い頂きました。

CADDiは技術スタックの1つとしてRustを活用しており、私が趣味でRustに熱中している事もあって、2021年の2月に今井(@imaimai0)さんからリプライを頂いた事がきっかけで話を聞くようになりました。

スクリーンショット 2021-11-18 2.23.12

↑このあと猛烈アタックが待っている図です

カジュアル面談や雑談を何度かやらせてもらう中で、業界構造そのものに挑戦するCADDiの大きなビジョンと、それらを解決するための環境と制度を作り、技術を選定し、メンバーを集めている事を知りました。私自身はプログラミング言語のような技術スタックで就業する場所を選ぶ事は今までなかったのですが、ソフトウェアエンジニアとしての新たな挑戦を、エムスリーに並ぶある種ストイックでレベルの高い環境で行える事に惹かれ、入社を決めました。

メンバーの雰囲気は今の所非常に良く、実際に私より先に入社している元PFNの猿田(@srt_taka)さんや竹原(@myaunraitau)さんと共に10月にatmaCupという機械学習コンペティションに参加。239チーム中 9位と好成績を残す事が出来ました。

(華々しく入賞もぎ取ってからの入社を目指していましたが中々難しい所でした…@imaimaiさんがatmaCup抽選に落ちていなければもっとな〜…)

お察しの良い方は気付いていたかも知れませんが、チーミングとしての参加でした。一緒にコンペを走り切る中で、互いの強みが知れたのでかなり良かったです。

12月からはマッキンゼーやヤフーから続々とDS、DEが集まってきており、これから更にブーストがかかっていきそうです。


今後は、CADDiの中でより良いチーム作りとプロダクト開発を行う事に最大限精進しながら、Rustによる機械学習プロジェクトへの挑戦、コンペティションや技術イベントなどへの参加、貢献を増やし、よりCADDiの名前が広まるよう活動できればと思います。

難しい事を面白がれるエンジニア、コンペティションやプロダクト開発で結果を残せす事に強く拘る機械学習エンジニア、データサイエンティストと一緒に働きたいと思っています。ご応募をお待ちしております。


お気持ち

ここまでは事実としての報告になります。以降は、CADDi入社に至るまでのお気持ちの部分を出来る限り言語化したポエムです。

特に興味ない人は読まなくて大丈夫です。
記事下の「スキ」ボタンだけ押しといてください!


//--------------------------------------

入社前からCADDiには多大な配慮をして頂きました。そして、周囲のソフトウェアエンジニアの諸先輩方にも相談に乗って頂き、最終的にこのような形になりました。最初に、真摯に私の相談を聞き入れ、キャリアについての言語化を手伝って頂いた各位に感謝の言葉を書いておきます。ありがとうございました。

・エムスリーという環境と私

さて、CADDiは私が考える「良い会社だな」と思うポイントをいくつも持っている反面で、エムスリーも同じように非常に良い職場であり、キャリアの転機にすべきか悩ましい問題でした。

特にエムスリーは、制度設計や文化など自分に合っているなと感じる部分が多かったです。エムスリーに在籍する間も複数の企業の方と面談をしていましたし、過去noteでは他社のカジュアル面談の体験記なども書いていますが、多種多様な会社の話を聞いた上でも「やはりエムスリーだな」という気持ちで長らく働いていました

機械学習プロジェクトにおける「不確実性」の大部分を占めているはずのPdMやROIといった視点は、多くの企業で機械学習エンジニアのレイヤーが常に意識している状況というのは少ないのが現実です。

モデル検証の打席に立つ回数を無闇に増やすよりルールを変えた方が良い
とエムスリーで働いた今では思います。

メンバー全員が共通言語として当たり前にゲームのルールについて考え話せるエムスリーという環境は「納得感が無く理不尽な開発」「検証で終わってしまうモデリング」が発生しづらいだけでなく、データや数値を示す形で自身の提案も通りやすいため、居心地が良かったと言えます。

企業として業績を上げる方法はこれだけではないですし、逆にMLEがROIについて考える体制のデメリットもあるので良い悪いの2値ではないですが。

一方で、エムスリーは一辺倒にROIに縛られず、モックやPoCが続々出てくる所も楽しい要因でした。「コンピュータ、モノづくりが好きな人」が採用の1つの支軸だからかもしれません。私も実験的なモデルを20%程の時間で作っては失敗し、たまに喜ばしい成果が出ては「これがけしからんってやつか…」などと1人思っていました。「既に出来ていれば工数はゼロなのでROIは無限大」は聞いた中でも一番の名言だと思います(迷言かもしれません)。

結局そういった事が出来るには、十二分な実績や成果が無ければ信頼も信用もされないので、そのバランスが上手く取れるように制度や文化を作っているんだなともしばしば感じていました。


所属するAIチームもまた、ビジネス貢献で常に前期の結果を上回りながら、メンバーからKaggle Masterが生まれたり、初学者から検索エンジンや特定OSSのエキスパートになっていく同僚の姿があり、成長意欲とそれらが生きる環境が整っていると常々感じていました。

自身においては、機械学習モデルやインフラの開発だけでなく、機械学習に関連した新規のプロダクト提案やスクラム、採用広報を経験できました。ソフトウェアエンジニアとしても、機械学習チーム内に及ばず他チーム含めたGo、Kotlinでの開発に沢山commitしながら、プロジェクトを推し進めるために出来る事を何でもやるようになっていました。
バックエンドKotlin、開発体験が良すぎな。

在籍期間を通して「価値を出す事」に拘れるよう少しづつ変化してきたとも思います。結果として、先の社内表彰の話だけでなく、それなりに良い評価と報酬が貰えていたとも思います。

困ったもんだ。

Rustと機械学習

話変わって、私は2020年前半くらいから、Rustという言語に触れるようになりました。Stack OverflowやGitHubのアンケートでも常に上位で気になったからとかそんな理由だったと思います。私が言うまでもなく、Rustは良い言語です。

色々やってみるうちに「今まで色んな言語で機械学習アルゴリズムやMLOpsのコードを書いてきたが、これはRustで書けば良い感じになるんじゃないか?」という気持ちがどんどん強まっていました(お気持ちはエムスリーテックブック3の「Rustによる機械学習」の章に書いてあったりします)。

一方私生活においては子供が生まれ、楽しい子育ての時間の代わりに趣味開発の時間はグッと減ってしまいました。多分1/5くらいになりました。基本その中で工夫してやりくりしていましたが「もっと時間を使ってRustでプロダクトを作りたい!」という気持ちだけは少しずつ大きくなっていました。


まあでも今までプログラミング言語起因で職場を決めた事はなく、最初は考えはまとまってなかったです。

そもそも、MLEとしての時間を投資して良いものなのか分からないし、家族を養う話もあるし、簡単なBatchやAPI作ったり勉強するだけならOSSを続ければとも思ってました。

なんなら、エムスリーは既にRust使ったプロダクトだったりOSS作ったりしてる人も既に居るし、プロジェクト立ててしまえばエムスリーで良いんじゃないか…みたいな事も考えてました。


考えは堂々巡りする一方でしたが、CADDiの面接の前後で、エムスリーの上司、CADDi社員、外部の尊敬するソフトウェアエンジニアの方々に色んな形で沢山相談するうちに「こんだけ考えてるって事はやりたいんだな私は」「(エムスリーがSWEの年収高い方の企業なので)待遇下がると分かっててもやりたいんだな私は」と思うようになり「じゃあRustを多くプロダクトに活用してる企業で厳しくボコボコにされた方が良いな」との気持ちが強くなって、結果やっていくことにしました。

メンタリング等も受けた結果、複数の疑問に対してシンプルな答えに落ち着けたのは非常に良かったです。

要はやっていきの精神です。やっていき。


もちろん、タイミングもあったかもしれません。
ちょうど先述のRust×機械学習で寄稿した技術書典の同人の売上も良かったですし、それに伴ってお仕事を頂いたり、GitHubで公開しているRustと機械学習のライブラリや事例を集めたrepositoryもstarが伸びはじめていました。

また、私が趣味で作っていたLightGBMのRust wrapperが、公式repositoryにリンクされ開発メンバーからDMを貰えたのも楽しさブーストの1つでした。

スクリーンショット 2021-11-18 2.29.05

(割とガッツリ言われて嬉しかったです)

他の企業の事例を見ても、Google ResearchがOSSでRustによるNLPの前処理ライブラリを公開したり、国内では@odashi_tさん率いるLegalForceの開発チームが形態素解析器のRust実装をOSSで出したりしています。ワークスアプリケーションズが出しているSudachiもRust移行されました。
業務レベルでは、NLPをやる上で必須ツールの1つとなりつつあるHuggingFaceもかなりRustでの開発を進めていますし、元Googleの@fulmicoton氏が始めたQuickwit社では検索エンジンをPure Rustで開発しています。OSSレベルでは「XGBoostやPandasといったツールをより良い形でRustに書き換えようぜ」という所も出てきていますし、Rustと機械学習のお仕事についてもウォッチすれば、海外であれば少しずつJob Descriptionにも現れるようになってきているのが分かるかと思います。

こんなタイミングで使える言葉これ1つでしょう

「乗るしかない このビッグウェーブに!(画像略)

エムスリーの良い環境を一度見て見ぬ振りをして、自分が今一番おもしろいと感じる場所にやっていきする事にしたのでした。


もちろん技術選定にエゴを噛ませるみたいな事はし難いのでPythonやR、Goを今後も多く書いていく事になると思いますが、CADDiでは画像解析のコアなアルゴリズムやAPIなどが既に多くRustで書かれているので、適切な箇所でガツガツを参入してRust書いていければと思っています。

導入含めて難しい事を面白がっていこう。


・惹き込まれたCADDiの良さ

とはいったものの、Rustというチャレンジはあくまで起点なので、それ以外で入社の決め手になった事をいくつかざっくり書きます。


これまで、企画や開発の時点でビジネスのコアな部分に入れず「MLモデルとしての精度は良いにも関わらず会社からは評価されないモデル」や「インパクトや工数の視点で改善に手を出せなくなったMLモデル」の話を沢山見聞きしてきました。やっぱり機械学習エンジニアとしてそれはしんどいですし、周囲のメンバーがそういった所で躓いているのもしんどいものです。

なので相互に「機械学習エンジニアリングから見たビジネスはどうか」「ビジネスから見た時に機械学習はコアエンジンとなり得るか」の両軸で考えて良い場所でないと、自分が楽しくないんだなというのは分かってきました。


話を聞く限り、業界構造自体にチャレンジするCADDiにとって機械学習・データ分析がコアになる事は明らかで、むしろ今までの業界構造になかったデータを得て標準化する所がCADDiの強みになっています。

まさに「CADDiが集めたデータが上手く流れなければ業界構造自体変わらない」という所に居るなと。この辺りはエムスリーとも似ている部分を感じており、その価値の大きさや使い方は多少なりとも知っているつもりです。

また、会社からの機械学習・データ分析への考え方も非常に良く、最初から変に大きく出ず「これまでデータ集めと基盤に注力」「既にアルゴリズムチームが存在する中で立ち上げる」といった足元から技術の順番を徹底的に考えている所にも好感が持てました。

アルゴリズムチームのメンバーとは面談中にも何人かお話させて頂きましたが、競技プログラミング等での成果も持たれた方々が複数人所属しており、私がブースターとなって協業できる楽しいイメージが膨らみました


面談に関連して、CTO小橋さん、CEO加藤さんの熱中度合いと、コアアルゴリズムやインフラを作るチームのメンバーが自分達が作っている物がどう使われているかかなり具体的に知っていた事も印象的でした。

客観的に自分たちの位置を知っていて、何をする事が相対的にインパクトが大きく、そのために何をどのように実装しているのか全て説明できる人というのは、他社とカジュアル面談する中でもそう多くないと感じていました。

CADDiで面談させて頂いた方々は、メンバーレイヤーにも関わらず、かなり明確に見えていて驚きました(メンバーの少ないベンチャーならでは、という見方も出来ますが、実際は多くのベンチャーでも出来ていない大事なことだと私は思います)。

このビジネスモデルと解像度、メンバー、姿勢があるなら成功するだろうなという確信と、その上で自分のチャレンジまで実現できる企業じゃん!と素直に思いました。 


そして、話を聞いていく中で、CADDiに入社した時にRust以外にも私が新しくチャレンジしないといけない事もどんどん増えていきました。私の職歴にあるようなWebサービス開発にはない種類の泥臭い多くの物理的な課題、先行事例のない業界構造を変えるような分析・機械学習、インフラ、チームの立ち上げ、海外、採用…

ベンチャーという何から何まで賭けであり、チャレンジであり、自分で何とかするしかないといった場所で、一番「勝てる」と感じたここにオールインしようと決めました。

( ;∀;) イイハナシダナー


Q&A

最後に、キャリアチェンジにあたって色んな人と話す中で多く聞かれた内容について、ざっくりまとめておこうかなと思います。

・Rustが機械学習界隈のメインストリームになるの?
多分ならないです。あと5年はPythonやRが席巻していると思います。
少なくとも8割のライブラリ使う側のユーザレベルでは無いでしょうし、今ある資産がRustに全て書き換わるという事はほぼないと思います。例えばですが、C++で書かれたXGBoostをRustで書き直したtangramというプロジェクトのベンチマーク等を見れば大体似た感想になると思います。
私自身もLightGBMやXGBoostのRust wrapperクレートのメンテナをしていたり、ML関連のクレートにcommitしたりMLアルゴリズムをいくつか書いて公開してますが、足りないものが多く先は長いです。コーディングにおいても突き詰めるとC++と考える事はさほど変わらないなと思います。一方書き直す事で見通しが良くなって、良いアルゴリズムが採用できて早くなる、とかはあるかも知れないですが。

メインストリーム的な利用や置き換えはないだろうという一方で、新規に書かれる機械学習ライブラリの中身やMLOps部分がRustになる事例は、少しずつ増えてくるとは思います。ざっくり書いてもbuildできればメモリに優しくて早くなる言語仕様は機械学習にとって嬉しいし、良いコーディングのためのツールや考え方も充実しています。少なくとも長期で複数人での開発などを見越した場合には、C++やPythonより良いコードが生まれ易い場面が多く、新規に採用されるのは自然だと感じます。
一応私自身の今後のお気持ちとしては、面白さ込みのレイズの意味合いも込めてPython 5、Rust 3、Go 2くらいの割合をまず目指して頑張りたいです。チャレンジあるのみ。

将来のことをちょっと考えると「機械学習エンジニアとしての職が多く出てくる」というのは無いかもしれないですが、アルゴリズムやMLOpsのコードを書く人としての仕事は結構出てくるんじゃないかなと思います。

画像処理、NLP、MLOps辺りから始まるんじゃないかな知らんけど。実際NLPやワークフロー系は既にRustでちらほら出てきてるし。わからんけど。「Rustで機械学習は無い」と言ってくる人も居るけど、そういう人は何にでもそう言うので無視しています。知らんけど。
どこまでできるかな。
あと、10年後とかはマジでなんもわかんないです。


・西場が辞めたから飽きた?
かなり聞かれたんですが、元上司であり業界内でも広く良いマネージャとして活動していた西場さんがエムスリーを離れたタイミングと近かった故「刺激がなくなってしまったの?」とかなり言われましたがそういうのではないです。むしろ、西場さん退職を知るより先にCADDiを知っていますし、以下のインタビュー記事で西場さんが「席をどいてあげないと」と語っている狙い通りの事が私に起こっていました。

西場さんが居なくなって以降、本当に色んなプロダクトの主担当として考えて走り回って調整をしてやりくりして、最終的にちゃんとモノづくりもして...、と西場さんがやっていた事がドシドシ降ってくるようになりました。忙しい反面、正直出来る幅が大きく広がって働く楽しさが上昇していました。評価もされていて、周囲から「何でこのタイミングで」コメントがある程には。先述してますが、後釜として大垣(@Hi_king)さんがリーダーになった辺りから、ビジネス手動のプロダクト以外に医療画像診断やデータ分析パイプラインといった技術主導なプロダクトも頭角を現してきて、OSSをガツガツ作るタイプの新メンバーとかも入ってきてるので、チームとしてもバランスも良い状況だなとも思ってました。本当「何でこのタイミング」は少し自分でも思っています。
まあでも、狭い業界だからこそいつかエムスリーAIチーム メンバーとまた仕事できるだろうという信頼もあるし、もちろん西場さんが居た時は別の側面で刺激的な日常と成長があったので「また一緒に働けたらな」「その時までにもっと自分も成長せねば」という気持ちは強いです。
何より、エムスリーに飽きてないからこそフェロー受けた訳で。
互いに良い世界に貢献できればと思っています。


・年収はどうなるの?
途中触れましたが、ちょっと下がります。
それでも私はやりたい気持ちが強かったのと、妻も了承してくれたのでやっていきです。ありがたすぎ。一応CTO小橋さんを筆頭に、ベンチャー企業の中では評価制度設計を頑張っている方だと感じますし、自分が会社を盛り上げて引き上げるだけだとも思います。皆さんが入社する前に中央値ガッと上げときますね。
やるだけ。


・色々やってるけど結局この先はどういうエンジニアを目指すの?機械学習エンジニアで居るの?
私が一番わからないです。一応ソフトウェアエンジニアでは居ようと思います。その先に「スペシャリストやテックリード、CTO」と「マネージャやPdM、VPoE」という2つの道があるとすれば、性格等から相対的に後者を私に求める人が多いよなと思う時があります。自分と似てる人と会ったりすると特に。一方高専の頃から前者を沢山見てかくありたいと思って育ったのでよくわからんです。なので最近は、目の前のプロダクト、プロジェクトの成功にとって今一番大切で面白い事をやろうと決めてやるようにしてます。
まずは目の前の事をやるエンジニアであろう。


おわりに

今回かなり長期間悩みました。
最初の軽いツイートのやり取りが2月、より詳しく話を聞いたのが5月、実際に面談のフローに乗ったのは6月、内定後も1ヶ月弱決めきるための悩みの時間を頂き、引き継ぎや有給消化等の十分な期間を取った上で最終的に入社するのが12月になりました(お待たせしまくりまして申し訳無い…)。

重ねてになりますが、相談に載ってくれた方々本当にありがとうございます。こういった悩みを最初に上司に相談したのとかも初めてだったけど、色んな人の経験を信頼して相談してみて良かったです。

お悩み期間中に話したソフトウェアエンジニアの中の1人の言葉に「棚からぼた餅と言うが、ぼた餅が落ちてくる棚を選んだり落ちるタイミングに居て掴み取る感性や手や目も必要」というのがあり、これはソフトウェアエンジニアとしてもビジネスマンとしてもそうだなと思いました。

エムスリーもCADDiもRustもMLも新チームも全部そう。

面白そうだと感じる方向に行く、成功のタイミングを掴む、面白さのアンテナを磨く、面白さがお金や幸福に繋がるか考える、面白そうな事が出来るよう力をつける、面白そうな事が舞い込むよう動いて実績を積む…

やっていきです。

そして今は何よりCADDiを必ずぼた餅に変えるくらいの勢いで生きていかねばとも思う日々です。


というわけでこれから更に頑張ります。
CADDiでもMLE・DS募集してるので、一緒にやりましょう。

atmaCupの抽選に落ちた今井さんの記事に詳細と募集リンクがあります。

あとCADDiの技術広報も頑張るので、機械学習の勉強会とかそういう類のやつには一旦@vaaaaanquishを呼んでみて下さい。少しCADDi AI Labの話させてくれたら、超真剣なディスカッションで3倍盛り上げます。


最後になりますが、これは例のアレです。

noteがアカウントなくても「スキ」できるようになったので是非に。

がんばってこー。

ばいばい。

サポートよろしくお願いします