目次
■エンジニアの軌跡
2016.07.05 2024.03.28 約5分
さまざまな企業で働くエンジニアとリレー形式で対談を行うDevRelay。vol.5は、伊藤友気(@mururururu)氏です。「ビビって何もしないことが一番良くない」と語る伊藤氏。その積極性から海外のカンファレンスでは飛び込みでライトニングトークを行い、ここ一番で勇気を出すことの重要性を語ります。本記事では、伊藤氏がプログラミングを始めたきっかけや技術に対しての向き合い方をお伺いしました。
idesaku: 前回の島崎さんは、インタビューを受けて下さることが決まった段階から、次の指名相手として mururururuさんを考えていらっしゃったそうです。島崎さんとは、お仕事で知り合われたんですか。
mururururu:はい。1年半ほど前から、島崎さんの前職である時雨堂さんからお仕事を受けていまして、そこで知り合いました。
idesaku:島崎さんは「Erlangで難しいことがあったらmururuに投げる」みたいなこともおっしゃっていましたが。
mururururu:時雨堂では、自社製品にErlangを使っていまして、主な部分は「Voluntas」さんが書かれるんですが、ちょっと複雑な部分だったり、パフォーマンス的にErlang自体にパッチを当てないとツラいと判断された部分だったりを、僕のほうでやらせてもらっています。
idesaku:たしか、以前の時雨堂は、自社製品開発と受託開発の両輪でまわしていらっしゃったと伺っています。島崎さんは主に受託のほうを担当されていたとのことでしたが、接点はあったんでしょうか。
mururururu:僕は社員ではないのですが、規模が小さい会社なので、あまり担当の区分は明確でなかったですね。基本的にはリモートで受託するのですが、島崎さんとは、たまに打ち合わせで一緒になったり、会社が用意してくれる昼ご飯を一緒に食べさせてもらったりという感じでお話しさせていただいていました。
idesaku:mururururuさんが、プログラミングをやろうと思った、そもそものきっかけはなんだったんでしょう。
mururururu:まだ学部の3年生だったころ、5年前くらいですかね、ものすごくヒマを持て余していて。…まぁ、学生なので勉強はしていたんですけれど、それでもあまりにヒマそうにしていたら、情報系の学部にいたサークルの先輩が「ヒマならプログラミングでもやってみたら?」とC++の教本を1冊くれたんです。マンガを読むくらいの感覚でパラパラ見ながらちょこっと動かしてみたのいうのが、最初のきっかけですね。
で、実際にC++で書いたプログラムが動くようになると、それが楽しくなってきました。そのうち、家でひとりで動かしていても面白くないなと感じるようになって、仕事なり、アルバイトなりでプログラミングの技術を使えるようになりたいと思ったのが、本格的にやるようになった動機です。
そのうち、知り合いのつてで、Ruby on Rails(RoR)でWebサービスを作るスタートアップを紹介してもらい、そこでインターンをやるようになりしました。それからしばらくは、ずっとRoRを使っていましたね。その結果、若干学業がおろそかになって、同じ学年を何度かやったりもしたんですが。(笑)
idesaku:「ヒマだったから始めてみた」というのはスゴイですね。最初はC++から入られたということだったんですが、その後RoRをやるにあたっては、Web系のアーキテクチャも含めて、すべて勉強し直されたということですか。
mururururu:そうですね。いろいろ調べていくうちに、C++だとカジュアルな求人なども少ないことが分かってきまして、より手軽に役立てられる技術を知りたいということでRoRを選んだという感じです。
idesaku:そうやって勉強し、興味を深めていくうちに、大学院では本格的に情報系をやってみようと考えるようになったんですね。mururururuさんは本業の研究でも、企業から受託している仕事でも「分散処理」に関わっていらっしゃるわけですが、「分散処理」というものに興味を持つようになったのは、どのタイミングなんでしょう。
mururururu:RoRを使っていろいろとやってみる中で「Elixir」を知ったのが直接のきっかけです。このリレーインタビューにも登場されたmizchiさんとか、当時Aimingで現在はペパボにいらっしゃる@udzuraさんあたりが、Elixirを触ってブログ記事を書かれていた時期がありまして。4年くらい前ですかね。それを見て、自分も試しに触ってみたというのが最初です。
当時のElixirはバグだらけだったので「せっかくだから」という感じでバグを直してみたり、Elixirを理解するにはErlangも知る必要があるので、そちらも触ってみたりということをやっているうちに、面白さを感じるようになりました。
そうやって覚えてはみたものの、ElixirやErlangは、Rubyなどと違い、それを使って自分でツールを作ったりするための言語ではないんですよね。でも、せっかく覚えたのだから何とか仕事に使いたいなと思っていたところに、VOYAGE GROUPのアドテクユニットにいらっしゃるajiyoshiさんと、たまたまお会いする機会があって「Erlang書いているの? じゃ、バイトで来てみる?」と声を掛けていただいたのが、仕事として関わるようになった経緯です。
そもそも「分散処理」自体、個人としてやる機会はあまりないので、実際の仕事の中で、それが必要になる場面に触れながら、理解や興味を深めていったという感じです。
idesaku:C++から入って、RoRに行き、ElixirからErlangと、次々に間口を広げていかれたんですね。学んだことを「仕事」に生かしたいという目的意識を原動力に、突破口を作って次に進んでいる感じがします。
mururururu:技術への興味に関しては、ある意味で「飽きっぽい」ところがあるのかもしれません。わりとすぐに次のことをやりたくなってしまうんです。
idesaku:でも、一度興味を持つと非常に深くまで入り込むイメージもあります。特に「Elixir」に関しては、本当に初期からたくさんのプルリクエストも投げていらっしゃいましたし、日本では1番貢献しているんじゃないですか。
mururururu:そうですね。作ったモジュールは標準ライブラリの一部にもなっていますし、日本からはあまり定期的にコミットしている人がいないというのもあって、コミット数で言えば、そのくらいのレベルかもしれません。頻繁にパッチを投げていたころに、Elixirの作者José Valimから「今度Ruby会議で日本に行くから会わないか?」とメッセージをもらって、会ったこともありました。当時、日本できちんとElixirを触っていたのが僕くらいだったというのもあると思いますが。
idesaku:研究と仕事で、使われている技術分野がまったく違うにもかかわらず、、それぞれに勉強する時間を工面するのは大変じゃないですか。
mururururu:去年あたり、だいぶつらい思いをした時期があったのですが、今では、まぁ、たまにスプラトゥーンで遊ぶ時間がとれる程度の余力は作れています。
idesaku:今回も出ましたね「スプラトゥーン」(笑)。
mururururu:たしか、あのゲームが出たのが去年の5月だったと思うんですが、中学時代以来じゃないかと思うくらいどっぷりハマりましたね。僕だけでなく、多くのエンジニアの方が、発売から半年くらい、GitHubのアクティビティがなかったりするんです(笑)。さすがにヤバいなと思って、今では控えているんですが。
idesaku:あのゲームは、日本のエンジニアの生産性を相当落としていたんですね(笑)。
ちなみに現在は、複数の企業からお仕事を受けていらっしゃるんでしょうか。
mururururu:今は、時雨堂が中心ですね。やっていること自体が新しくて面白いという理由もあって引き続き関わっています。あとは、アカツキの新規事業に関連して、Elixirの仕事を受けているくらいで、ほかにはやっていません。
idesaku:大学院生の立場で、社会人に混じって仕事をしていて、面白かったり辛かったりすることはありますか。
mururururu:辛いこと…というのとは、ちょっと違いますが、学業と仕事を並行してやっていくにあたって、どうしてもマルチタスク的に処理せざるを得ず、どちらか一方にだけ集中できる状況が作りづらいところに、ストレスを感じることはありますね。もうちょっと腰を据えて何かをしたいというか。今、修士課程の2年なのですが、そういう意味では、早く大学院を修了したいと思っています。
idesaku:研究職を目指しているわけではないんですね。
mururururu:ええ。今、海外も視野に入れながら就職活動をしているところです。できれば国内ではなく、海外で仕事ができたらなぁというのが今の希望です。
idesaku:海外で仕事をしたい希望があるということは、英語はわりと得意なほうなんですか。
mururururu:いいえ、全然。受験英語は勉強しましたし、辞書を使いながら論文を読む程度のことはできますが、英語を話す友人がいたわけでもありませんし、そこまでのレベルでした。ですから、最初にオープンソースのコミュニティに英語で参加したときは、ものすごくドキドキしましたね。Google翻訳で何度も確認しながら「こんな文章で大丈夫かなぁ」と思っていました。
idesaku:今回ようやく親近感の沸く言葉が聞けて、ホッとしています(笑)。
mururururu:今でも英語そのもののスキルに関しては、あまり進歩していないんですよ。ただ、あまり良いことではないかもしれませんが、自分の英語に細かい間違いがあるかもしれないことを「気にしない」能力はついたかもしれません。ソフトウェアの世界は、ある程度コンテキストが共有されているので、文章に多少の拙さがあっても、あまり不都合は起こらないんですよね。
idesaku:プルリクエストなんかは、それほど英語が堪能でなくても読み書きできるレベルの文章で十分ですしね。
mururururu:最初のころは、プルリクエストで英語を学んだ部分も多かったと思います。
idesaku:文章でのやりとりはともかくとして、実際に人と会ってコミュニケーションするのは大変ではなかったですか。たしか、米国であったErlangの大きなカンファレンスにも参加されたんですよね。
mururururu:今年の3月にサンフランシスコで開催された「Erlang Factory」というErlang関連では最大のカンファレンスに参加してきました。時雨堂のVoluntasさんから「時雨堂の宣伝も兼ねて、代わりに行ってきてよ」と言われまして。
idesaku:参加されただけじゃなくて、ライトニングトークもやってきたとか。
mururururu:ええ。会場で「本日のLT、参加者募集中」みたいな呼び込みをしていたので、「せっかくだからやっとくか」みたいな感じで、飛び入りで。
idesaku:飛び入りでLTですか。それはスゴイ。
mururururu:特に準備もしていなかったんですが、当日最初のセッションでErlangの次期バージョンのハイライトについての話があって、そこでちょうど自分がパッチを書いた改善内容が紹介されていたので、これについてもう少し詳しい話ができるかなと。そうした解説をしつつ「今、学生で就職活動中だから仕事くれ」みたいなことを適当な英語で話してきました。
idesaku:自分の売り込みもしてきたわけですね。でも、これだけErlangに貢献していて、セッションも持つくらいであれば、引く手は数多いんじゃないですか?
mururururu:そうだといいんですけれどね。もし米国で雇うのであれば、技術的に同じレベルの人なら米国人のほうが雇いやすいですよね。言語が同じでコミュニケーションしやすいし、ビザの取得という面倒とも無縁です。もし僕が、そこに入り込もうと思ったら、それらを超える何か飛び抜けたものが必要になると思うんです。なかなか、思った通りにパッと進むというものでもないですよね。あ、ビザのサポートしてくれる企業を絶賛募集中です(笑)
idesaku:なるほど。そこはたしかに難しいところですね。でも、そこで「自分は英語ができないから」と尻込みしてしまわないところは、素晴らしいと思います。
mururururu:本当は僕、コミュニケーションがものすごく苦手なんですよ。勉強会なんかに出ても、あまり人と積極的に話さなかったりしますし。
idesaku:でも、OSSのコントリビューターをやっていると、英語で議論やコミュニケーションをしなくてはいけない場面も出てきますよね。
mururururu:基本的に、質疑応答的なコミュニケーションが中心で、議論にまで発展することは多くないんですが、たまにそうせざるを得ないことになってしまうと、まぁ、ツラいですね。もちろん、飛び入りでLTに出ることを決めたときにも、まったくためらいがなかったわけではないんです。ただ、そういうツラさに耐えてコミュニケーションすれば、その後により面白いものが待っているという経験もしてきているんです。
たぶん、一番良くないのは「ビビったままで何もしないこと」で、要所で少しずつ、勇気というか、度胸というかを振り絞って何かをやってみるというのが、大事だと思いながら、ここまできています。
idesaku:「とりあえずやってみる」という感覚はすごく大事だと思います。日本でオープンソースに関わっているエンジニアの中でも、ソースコードを見ながら「ここをこうしたらもっといいのに」と思いながら、英語やコミュニケーションにビビってしまって、何もできていないという人は多いのだろうと思います。そこで勇気を振り絞って、プルリクエストなんかを送れば、そこから新しい世界が開けることもあるかもしれないですよね。
mururururu:GitHubが出てきて変わったことと言えば、メーリングリストなどに比べて、コミュニケーションコストが大幅に低くなったことじゃないでしょうか。極端な話、コードさえ書ければ意思疎通ができる、良い時代になっていると思いますよ。
idesaku:卒業後には、職業エンジニアを目指されると思うのですが、分野としては、今やっておられるErlangやElixirのような技術に関連したところを目指しているのですか。
mururururu:うーん、実のところを言うと、その分野をやり続けたいという思いが、非常に強いわけでもないんですよね。
idesaku:飽きましたか?(笑)
mururururu:いやいや、まだ飽きるほどやれていないので、そういう意味ではないです。ただ、自分が今やっていることを、この先もやり続けることに強いこだわりはない、ということです。もちろん、今の自分が持つスキルセットを考えると、その延長線上でやれることを突き詰めて仕事にしていく可能性は高いだろうと思っています。ただ、僕は何でも、始めるとすぐ楽しくなってしまうタイプなんで、その意味では自分の人生設計と、求めてくれるところとがマッチするのであれば、どんなテーマでもいいと思っているんです。
僕の場合、最初からコンピュータに強い興味があったわけではなくて、たまたま使えるようになったら、楽しいし、お金にもできるしといった理由で続けているという部分があります。もし、コンピュータ以外の分野で、同じように興味が持てて、お金が頂けるものが出てくれば、そちらに進んでいく可能性もあるだろうと思います。
idesaku:ちなみに、自分で起業するという考えはありませんか。
mururururu:それはないですね。今の自分には起業してまでやりたいと思うことがないんです。僕は自分でアイデアを出すのが苦手で、どちらかというと、人が描いたイメージに合わせて物事を進めていくほうが得意だと思っています。もし、他人が出したアイデアに、僕も心から共感できて、そこで自分のスキルが役に立つということがあれば、一緒にやっていくことはあるだろうと思います。今のところは、そんな自分を、うまく使ってくれる人と仕事をしていきたいという思いが強いですね。
idesaku:今後、mururururuさんが興味を持てそうな技術や、伸びると思っている分野などがあれば教えて下さい。
mururururu:これは難しいですね…。今のところ、プログラミング言語やフレームワークのような要素技術が注目されることも多いですけれど、近い将来、そうしたケースはどんどん減っていくんじゃないかと思っています。そのレイヤが成熟することで注目されなくなり、より上のレイヤというか概念で語られるケースが増えるというか。今の流行でいうと「人工知能」みたいなくくりで専門性が求められるようになるというか。
例えば、今、僕は「Erlang書けます」「Elixirやっています」という言語やフレームワークのレベルで話をして、それが仕事につながっているわけですけれど、早晩そういう状況はなくなってくるんだろうと思っています。なんか、あいまいな答えになってしまってすみません。
idesaku:そろそろお時間のようです。では、恒例で次のゲストの方をご紹介いただけますでしょうか。
mururururu:VOYAGE GROUPの鈴木健太さんを指名させていただきます。僕がErlangを本格的に使い始めるきっかけになったのがVOYAGE GROUPでの仕事だったのですが、その時同じプロジェクトでお会いして、強烈な印象を受けた方です。
技術的なレベルは極めて高いエンジニアでありながら、パッと見、技術系の人に見えないというか、「ギーク感」がないというか、実に「ニュートラル」な雰囲気を持った不思議な方です。前々から、鈴木さんの人生的なビジョンというか、「今後どこを目指しているのか」といったことに関心を持っていたので、そのあたりも含めて、ぜひ話を聞いてみたいです。
idesaku:そうなんですね。個性的な方のようで、お目にかかるのが楽しみです。本日は長い時間、ありがとうございました。
※本記事の内容は掲載当時の情報であり、現在の情報とは異なる可能性がございます。