【フェアリーで働く人たち #02】Rust技術本の著者たちが見た、フェアリーデバイセズの開発環境とは?
Rustとは、2006年に開発が始まったオープンソースのプログラミング言語のこと。処理速度の速さや安全性の高さから、比較的新しい言語にも関わらず多くのエンジニアから注目を集めています。
そんなRustの技術書を書いたエンジニアが、なんと2人も!フェアリーデバイセズに所属しています。それが『実践Rust入門』(技術評論社)の著者である河野(かわの)達也と『実践Rust プログラミング入門』(秀和システム)の著者である吉川 哲史です。
※ ともに共著
なぜ2人はフェアリーデバイセズへ?Rust技術の著者である河野と吉川はフェアリーデバイセズの開発環境をどうしていきたいと考えている?
今回は、そんな河野と吉川による対談を実施。吉川は2018年、河野は2023年にそれぞれ入社しており、吉川はプロダクト開発部の部長として河野を選考する立場にありました。「Rustコミュニティでいつも見かけていた」という河野から面談の申込みがあったとき、吉川は感じていたことは──?
カジュアル面談の応募に「あのtatsuya6502さんが!?」と驚いた
吉川:正直に言いますと、河野さんからフェアリーデバイセズへカジュアル面談の申し込みがあったときは「あのtatsuya6502(河野さんのアカウント名)さんが!?」と非常に驚きまして(笑)。それくらい河野さんはRustコミュニティの有名人なのです。「きっと引く手あまただからいい印象を残さなければ」と緊張していたことを覚えています。改めて質問してみるのですが、なぜフェアリーデバイセズへ?
河野:そもそも、私がフェアリーデバイセズを選んだのは「Rustを採用している企業」「業務内容への親和性」があったからでした。
私は高校卒業後からずっとIT業界で働いています。最初はホストコンピューターでオンラインシステムを運用したり、Javaでプログラミングを書く仕事をしたり。20代後半になってからは「デザインの仕事をやってみたい」と思い、アメリカ・ニューヨークに渡って大学でデザインを学び、卒業後は現地企業でWebデザインの仕事をしていました。帰国後は英語力を活かして、AWSにあるS3のようなサーバーを開発する外資系企業へ転職。その会社では、前半は分散システムの知識が求められる仕事をし、後半ではセキュリティ機能を開発するなど、12年間働いていました。プライベートでは、パートナーが中国出身だったため中国へ引っ越しし、そのタイミングで正社員から契約社員になりました。
ですが…。2022年の後半にアメリカが不況に陥り、私を含む契約社員がみんなレイオフされてしまいまして。まずは地元の中国で転職先を探しましたが、ここはコロナ禍の名残による不況の真っ只中でして、IT系の求人は激減していました。そこで、日本にある企業にあたってみることにしました。候補として真っ先に頭に浮かんだのはフェアリーデバイセズでした。なぜなら、それまでは個人活動の範囲でRustを使っていて、仕事として活用できるところがいいなと思っていたからです。
吉川:当時Rustを採用している企業は、日本では5〜6社ほどあった気がします。
河野:そうなんですよ。しかし、Rustを採用している企業の多くが不動産業や製造業など、業務知識が必要なのではと感じる会社が多かったのです。その点、フェアリーデバイセズの業務内容にはこれまでのキャリアでの経験を直接活かせそうに感じました。いざ面談で話してみて、吉川さんや関さん(フェアリーデバイセズ、CPO 関 喜史)の人柄に好感を持てたので採用面接に応募しました。最終的に良いオファーをいただき、2023年2月にフェアリーデバイセズへ入社しました。
ちなみに、吉川さんが『WEB+DB PRESS』(技術評論社)でRust関連のインタビューに答えていたり、自社として情報発信している様子を見ていました。フェアリーデバイセズはもちろん、吉川さんのことも存じ上げていました(笑)。
吉川:ありがたいです!
河野:吉川さんはなぜフェアリーデバイセズへ転職することにしたのですか?
吉川:私の場合は、自分でコードを書く仕事がしたくてフェアリーデバイセズを選びました。
というのも、私は新卒で大手電機メーカーへ入社し、数年間は家電の組み込み用ソフトの実装を担当したものの、その後はプロジェクトマネジメント中心の仕事をしていました。新卒入社して数年ほどしかプログラミングの実務経験がなかったのです。でも、私の興味はプログラミングにありましたので、個人活動として勉強を続けていました。そのなかでだんたんと実務でもプログラミングがしたいと思うようになり、転職先を探していました。そこでたどり着いたのがフェアリーデバイセズだったのです。
フェアリーデバイセズへ入社してからは音声APIの総合プラットフォームである「mimi®(ミミ)」の開発などを担当。最近は部長という立場になったので、マネジメント業務とコードを書く時間をなんとか両立させる日々を送っています。
C++だったフェアリーデバイセズがRustを採用した背景
河野:フェアリーデバイセズがRustを採用したのは2019年10月だったと、Rust.Tokyo 2022のスポンサーセッションで話されていましたね。Rust自体はとても新しい言語なので、2019年に実業務で導入するのは早い印象でした。どういった経緯があったのでしょうか?
吉川:フェアリーデバイセズに私が入社する前からあったプロダクトの多くは、代表である藤野(藤野真人)が作ったものだったのです。そのときから使用していたのがC++でした。C++は音声処理など性能が求められるソフトウェアには適した言語ですが、適切に扱うために必要な技術水準が高いという課題があります。つまり、下手なことをするとろくに動かないものができてしまうわけです。それでもフェアリーデバイセズで扱えていたのは、ほかならぬ藤野の技術力の高さがあってこそでした。しかしながら、開発チームを作り人数を拡大していくために、その技術力にあわせて開発し続けていくのは限界があります。私自身も、フェアリーデバイセズへ入社して1年ほど経ってから「このままではメンテナンスや機能追加がどんどん難しくなってしまう」と感じました。そういった理由から、C++に代わる新しい言語を探し始めたのです。
河野:そしてRustを採用することにしたんですね?
吉川:そのとおりです。RustはC++と比べて処理性能も遜色ないうえに開発難易度も高くない。「フェアリーデバイセズの開発と相性が良いのではないか」と考え、Rustを導入するために“ひとりプロジェクト”をスタートさせました。まずは知識や知見をより多く集めるために率先して勉強会へ顔を出し、私自身もLTを発表してRustコミュニティへ参加。ある程度の知見を溜めてから藤野にプレゼンし、フェアリーデバイセズの開発でRustを採用することになったのです。Rust採用が決まった2019年10月22日は「Rust採用記念日」としてSlackで告知もしました(笑)。
河野:Rust自体はもともと知っていたんですか?
吉川:個人的にプログラミングを勉強しているなかで、Rustの存在は知っている程度でした。Rustを調べていく中で、コミュニティの情報をいろいろ読み漁ったり、勉強会に多く参加するようになりました。河野さんがRustコミュニティ内で積極的にリアクションやアドバイスをしている様子も見ていましたね。
河野:そうだったんですね。私も吉川さんと同じく、個人的にプログラミングを勉強しているなかでRustと出会いました。たしか、当時は2016年頃だったと思います。
それ以前まではJavaなどを使って開発していました。ですが、やはり言語ごとに得手不得手があり、それをどうカバーしていこうかと悩んでいたのです。Rustは、私がそれまで扱っていた言語の課題を一気に解決できそうだと感じ、個人活動として勉強を始めました。2020年には担当していたツール開発で一部使用していました。このときはRust関連本と言えばO'Reillyの翻訳本しかなかったこともあり、『実践Rust入門』という書籍を私含めて3人で書く機会にも恵まれました。
Rust技術本の著者らが見たフェアリーデバイセズの中身
吉川:河野さんは「Rustを採用している企業」としてフェアリーデバイセズへ入社したわけですが、実際に入ってみてどうでしたか?
河野:Rustをひと通り使いこなせる人が多くて驚きました。Rustは新しい言語で、なおかつ習得が難しいと言われています。もっと初歩的な質問が多いのかと思っていましたが、みなさんとてもうまく使いこなしていました(笑)。
吉川:「使いこなせる人が多い」と言ってくださっていますが、私たちもRustを活用するなかでまだまだ悩むことがたくさんあるので、河野さんが開発チームにいてくれることがとても心強いと思っています。河野さんは社内Slackで誰かが「このあたりが難しい」とつぶやいたら「こういうドキュメントがあります」と返してくれたり、すぐに情報をくださっています。開発メンバーみんなに「自分たちがやっていることは間違っていない」と自信を与えてくれる存在だと感じているんです。
また、河野さんは実業務でも、前職で培ったデータベースやクラウド上のデータの扱い方などを整備してくれています。具体的には、LINKLETのログデータを管理部門の人たちも見られるようにしたり、録画データをクラウド上で共有するためのストレージサービスを作ろうとしたり。本当に助かっています!
河野:それはうれしいですね。私のフェアリーデバイセズでの役割は、全体を見ながらアドバイスをしたり、みんながもっと楽に働けたり成長できたりする環境を作ることを意識していたので。
吉川さんは私よりも早いタイミングでフェアリーデバイセズへ入社しているので、今とはフェーズも異なっていたと思います。当時の様子はどんな感じだったんですか?
吉川:私がフェアリーデバイセズへ入社したのは2018年でした。このときは開発チームらしいものがきちんと固まってなかったため、1からチーム作りをしましたね。採用も手探りながら頑張りました。技術選定に関する裁量もけっこうあると感じつつ、そのための理由や動機づけもしっかりやらねばと考えていました。
Rustに限らず、新たなチャレンジを楽しめる環境を作っていきたい
河野:フェアリーデバイセズではRustに関心があるエンジニア採用を強化していくことになるかと思います。Rustに対して、どういった考えを持っているといいのかなどありますか?
吉川:私としてはRustに限らず、これから登場するであろう新しい言語や技術をメインストリームへ取り込んでいくチャレンジを楽しめるようにしていきたいんですよね。
プログラミング言語は適材適所です。現在、フェアリーデバイセズではRustを採用していますが、それは適材だったからです。Webブラウザに表示する画面にはTypeScriptを使用していますし、Androidアプリの開発ではKotlinを採用しています。もちろん、これらの開発にRustを使うことも可能です。でも、生産性の観点からやっていません。開発対象ごとの周辺環境も鑑みたうえでより高品質のプロダクトを作っていくことが大事だと考えているのです。
Rustは技術的なチャレンジとして取り組むうえで、おもしろい言語だと感じています。でも、今後Rustに代わるものが登場したら、私はそれを採用していくと思います。そうやって、新しく登場したものを適材適所に当てはめるようにしていきたいですし、そうしたチャレンジをする機会をメンバーに与えられる会社にしていきたいですね。
河野:いいですね。
私としては、Rustを使ううえでのハードルを下げるような役割を担えればと思っています。私はRustに惚れ込んで「これを広めたい!」という想いがありました。先ほど吉川さんが「社内Slackでつぶやいたらすぐに返答している」と言ってくださっていましたが、まさに「大好きなRustを使ってほしい」という考えがあるからなんですよね。「Rustが好きだから広めたい」という気持ちを軸に、この活動は今後も続けていきたいと思います。
吉川:素敵ですね!今日改めて河野さんとお話ししてみて、印象がガラリと変わりました。てっきり、がっちがちのプログラマーとしてやってきた方なのだと思っていたので。途中でデザインを学ぶためにアメリカへ行くなど、とてもチャレンジングなタイプだと知ってさらに興味が強まりました(笑)。
河野:好きなことにのめり込んでしまうタイプですね(笑)。もともとモノづくりが好きで、デザインの勉強もその延長線上にありました。そういう意味では今、好きなモノづくりと好きな言語がちょうどうまく組み合わさっていますね!
吉川:新しいものへの興味が強いのはいいですね。これからも、一緒にフェアリーデバイセズとRustを盛り上げていきましょう!