エンジニアの生存戦略

第3回宮川達彦―最先端のWebエンジニアのキャリア

先を歩むエンジニアへのインタビューを通してエンジニアのキャリアについて考える本連載、今回は古くからPerlコミュニティで活躍し、最近ではWebテクノロジ情報発信のポッドキャスト「Rebuild」が話題の宮川達彦さんにお話を伺いました。宮川さんは、筆者のクックパッドの同僚でもあります。

画像
[撮影:平野正樹]

プログラミングに興味を持ったきっかけ

─⁠─最初にプログラミングやエンジニアリングに興味を持ったのはいつでしょうか?

宮川:父親がプログラマだったので、コンピュータは小さいころから家にあったんですけど、プログラミングはしておらず、純粋にPCユーザとしてゲームとかで遊んでいました。プログラミングのきっかけは、東京大学に通い始めて、趣味でホームページや掲示板を作っておもしろいと思ったことですね。そのあと3年次に、理学部情報科学科を選択し学びました。それと前後して、大学の友達から「オライリー・ジャパンがイベントで書籍を売るんだけど、売り子のアルバイトをしない?」と誘われ、それをきっかけに本の校正の手伝いやホームページ更新のアルバイトをするようになりました。オライリーはPerlの書籍をたくさん出版していて、そこでタダで読ませてもらっていました。

ライブドア時代(2000~2004年)

宮川:そのうち、プログラムを書いたら良い給料がもらえるというアルバイトの誘いが来て、そこがオン・ザ・エッヂ[1]でした。アルバイトを始めて半年くらいで大きい仕事を任されるようになり、顧客管理のシステムやCMSContent Management Systemを1~2人のチームで作っていました。仕事はおもしろいし、お客さんとやりとりができるし、役に立っている感もありましたね。

─⁠─アルバイト時代から活躍されてたんですね。そのままライブドアに入社したんですか?

宮川:はい、僕がいた情報科学科は9割5分くらいが大学院に進むんですが、大学院で研究するより、仕事をしたほうがおもしろいと思い入社しました。

─⁠─ライブドア時代はPerlやCPANComprehensivePerl Archive Network注2などのOSSOpen Source Softwareヘ多大な貢献をしていましたが、きっかけはあったのでしょうか?

宮川:同僚の小飼弾さんと一緒にスピーカーとして出たPerlのカンファレンスに海外からオープンソース活動をしている人たちが来ていて、自分も同じようなことをしているんだし、できそうだなと思い始めました。英語も好きだったので、IRCInternet Relay Chatでリアルタイムにやりとりができて、英語のいろいろな言葉を覚えられてよいなと思ったのも、ハマったきっかけですね。

舘野祐一 氏
舘野祐一 氏

─⁠─ライブドア時代の後半はRSSRDF Site Summaryやブログ周辺技術にコミットメントをしていましたが、そのきっかけは?

宮川:日本にブログブームが来て、シックスアパートのMovableTypeというPerlでできているソフトウェアを触り始めておもしろかったんですよね。それと前後してライブドアでもブログのサービスを作っていました。会社は違うけどお互いのデータをエクスポート/インポートできるようにしたり、更新情報をお互いのところにフィードできたり、オープンな感じでやっていたのがおもしろかったですね。

シックスアパート時代(2005~2011年)

─⁠─当時はライブドアの執行役員で、立場あるポジションだったと思うのですが、シックスアパートに移った経緯を教えてもらえますか?

宮川:ライブドアにアルバイトから入社した時点で、すでにテクニカルマネージャみたいな役職になっていて(笑⁠⁠、お客さん向けの開発も最初はおもしろかったのですが、これからは自分たちが作った製品、ソフトウェアを作っていくほうが僕には向いているな、そういう仕事がおもしろそうだなと思い始めたんですよね。

─⁠─一般のユーザに対して提供するようなサービスでしょうか?

宮川:情報発信プラットフォームの最初のムーブメントがブログだったと思うのですが、そういうところに貢献できるソフトウェアを作るのがすごく楽しそうでした。シックスアパート創業者の2人が来日したときに遊びに行って意気投合して、⁠ここだったら働けるな」とイメージできました。

─⁠─シックスアパートはアメリカの会社ですが、当時から「渡米したい」という思いはあったんですか?

宮川:インターネットのソフトウェア開発の本場はシリコンバレーやサンフランシスコなので、一度はそこで自分の力を試したいと思っていました。当時は30歳にさしかかるころで、体力・吸収力が高く成長できる時期でもあったので、一番影響を受けられる環境で働きたいという思いもありましたね。

─⁠─英語は渡米されて上達しましたか?

宮川:読み書きはIRCで鍛えられていたので、だいぶできていたと思いますが、ビジネス的なことをする場合はけっこうきつかったです。とはいえソフトウェア開発の会社なのでコンテキストは共有できていて、ある程度会話の前提がわかっていれば通じましたね。細かいところは渡米してだいぶ良くなったと思います。

─⁠─自身のブログで書かれた、TOEICを受けたら970点とった[3]という記事が話題になりましたね(笑⁠⁠。シックスアパートにはどれくらい在籍していたのですか?

宮川:シックスアパートがSay Mediaになった期間も含めて6年間いたので、ライブドアより長かったですね。

dotCloud時代(2011~2012年)

─⁠─次はdotCloudに移られましたね。今の社名はDockerですけど。きっかけはあったんですか?

宮川:2011年ごろ、PythonやRubyを個人的にいじるようになったのですが、それらの言語と比べるとPerlは、Webまわりのライブラリのインストール方法が非常に面倒くさいというか洗練されていないと感じました。あと、ツールはあるけれどうまく協調して動かない印象もありました。⁠そこら辺をもっと良くしていこうよ」とPerlハッカーの人たちとオープンソースでいろいろやっていました。それが、PlackというRubyのRackみたいなライブラリと、cpanmというCPANのモジュールをインストールするツールになりました。

─⁠─はい、そうでしたね。

宮川:そのころちょうどHerokuが登場し、PaaSPlatform as a Serviceが盛り上がっていきそうな動きがありました。Herokuは当時Rubyしか対応していなくて、PerlやPythonをPaaSでやっていく時代が来るに違いない、そういう会社はないかなと思っていたら、全部の言語に対応しようとするdotCloudというPaaSが出てきて、会社の住所を調べたらSay Mediaの隣のビルだったんですよ(笑⁠⁠。

─⁠─めっちゃ近かった(笑⁠⁠。

宮川達彦 氏
宮川達彦 氏

宮川:だから「隣にいるけど、Perlをサポートするつもりだったら手伝うから」とメールを出し、その1週間後くらいに実際にオフィスへ行って、Perlをサポートする作業を半日くらい一緒にやりました。Python用のコードをもらって「Perlだと、これどうなの?」と聞かれたら、⁠そこはこうだよ」って教えて。一緒に作業してみておもしろそうだったので、⁠来週、面接しようよ」みたいなことになって、そのまま働くことになりました。

─⁠─なるほど、お互い一緒に開発してみて、判断されたんですね。dotCloudは当時Pythonの会社だったと思うのですが、宮川さんもPythonを使われたんですか?

宮川:はい。Plackとかを作るときにPython、Rubyの既存実装を参考にしたんです。そのときに、言語やツールをある程度は学びました。またdotCloudは当時8~9割がPythonエンジニアだったので、わからなければ聞けばよかったんです。プログラミング言語自体の文法や機能の習得は1週間もあればほとんどできると思うんですが、書き方やライブラリ選定のベストプラクティスは仕事で使っている人じゃないとわからないことも多いため、いろいろなことを教わりました。新しい技術に触れることができるのも、転職の良いところの一つですね。

クックパッド時代(2012年~)

─⁠─次は現職のクックパッドですね。

宮川:dotCloudは今では会社の事業をDockerにピボットしてうまくいっていますが、当時はPaaSがほとんど儲かっておらず社内が混沌としていたので、技術的にはおもしろい会社だけど、もうちょっと違うことをやりたいなと思い始めました。シックスアパートではコンシューマ向けのプラットフォーム、dotCloudでは開発者向けのサービスを作ってきましたが、生活に密着したユーザ向けサービスはやったことがなく、またクックパッドはRubyコミュニティの中でも有名になり始めていたので、おもしろそうでした。

─⁠─今までやったことがなかった分野だからこそ選択した部分もあったんですね。クックパッドではどんなことをしていますか?

宮川:クックパッドでも、所属・住まいはアメリカです。2年前に入社した当時は、各部署が自立してプロダクトを作っていて、統一性がなかったり、別部署で同じような機能を作ったりしていました。それはそれで悪いわけではなく、結果として良い物が残り悪い物が淘汰されていけばよいのですが、つなげていくAPIも必要だよねという話になりました。そこで、まとめるためのリーダーシップをとったり、APIを作るためのフレームワークGarageを作ったり、API設計のレビューを行ったりしています。

─⁠─いわゆるアーキテクトとして、基盤部分を作っているんですね。

Rebuild

─⁠─2013年から趣味でRebuildを始められましたが、なぜ始めようと思ったんですか?

宮川:日本のポッドキャストの大部分は芸能人のラジオ番組のおまけとかですが、海外のポッドキャストには技術トピックについて1週間に1回とかのペースで深く話しているものがあり、話している人と聴いている人の距離が近いメディアだと感じていました。また、日本語の情報は、英語の情報がかなりフィルタされて入ってくる部分もあると感じています。そんな中、ある意味僕のフィルタがかかった情報ではあるのですが、メディアとして自ら情報を発信したいと思いました。

宮川さんの生存戦略

─⁠─さて、本題のキャリアについて聞かせてください。宮川さんほど技術力があるとキャリアを考えなくても生きていけるのかなと思ったりするのですが、考えたりするんですか?

宮川:考えたこと、あるにはあるんじゃないかな(笑⁠⁠。ただ、僕の中で「こういうキャリアパスを歩みたい」とちゃんと設計したことはないですね。その都度に最善を決めていて、悪い言い方なら「出たとこ勝負」なんですが、転職はタイミングが重要なので、そのときに良いと思ったら行動しないとダメかなと思っています。

─⁠─これまでの宮川さんのキャリアは、コンシューマ向けだったり、開発者向けだったり、利用している技術も違ったりと、さまざまですよね。技術で会社を選んだりするのでしょうか?

宮川:どの技術をやるのかは、転職を考えるうえでは二の次ですね。一番は自分の能力をどう会社に還元でき、どう世の中にインパクトを与えられるのか、そして働く環境からいろいろなものを吸収できるかですね。技術も重要でないことはないけど、一番ではないです。

─⁠─宮川さんは、広く浅くではなく、広く深く技術に詳しいと思っているのですが、どうやって知識を得ているんですか?

宮川:僕の場合は、最初にPerlで上から下まで一通りやった感覚があります。プログラミング言語そのものを開発するところとか、言語のエコシステムを作っていくところとかも行いましたし、小さいサービスから大きいサービスまで作りました。ビジネス顧客向けも、コンシューマ向けも、開発者向けもやってきました。そのため、ミクロな視点とマクロな視点を持てていると思っていて、Perl以外の新しい技術でも、どこに注目すればよいのかは経験でわかるようになってきています。⁠何事も経験ですよ」と言っちゃうと身もふたもないんですが(笑⁠⁠、そういう見方ができるってことですかね。

─⁠─なるほど、今までの経験があるからこそ、最短で技術の取捨選択ができるんですね。モバイル開発も、宮川さん自身がモバイルアプリ開発をしているわけではないけど、モバイル技術全般を知っているじゃないですか。そういう技術の吸収って、どんなところからモチベーションが発生しているのでしょうか。楽しいからなのか、興味からなのか、キャリアで必要だからなのでしょうか。

宮川:最初は興味からですね。ただ、防衛本能としてそうやっている面もあるのかもしれませんね。キャリアパスを築く方法としては、ある技術を極めるという方法があって、僕も昔はサーバサイド技術をそんな感じでやってきたんですけど、そういうのは馬力が物を言い、若い人のほうが吸収力やコードを書きまくる力があります。そこに対して負けないように自分の持っている知識を利用しつつ、新しい技術をささっと吸収できたほうが、変化に耐え得るようになるのかなと思います。そういう意味で言うと、キャリアパスの考えに近いのかもしれません。

─⁠─これはおもしろいなという技術は、ある程度は自分で手を動かして、どんなものか理解しているのでしょうか?

宮川:はい。今はポッドキャストをやっているので、触らないで評論したり意見を述べたりするのはかっこ悪いし、見当違いのことを言うと恥ずかしいですしね。プログラミング言語はリファレンスを見て1~2日は遊んでみたりしているけれど、細かい物をさすがに一つ一つきちんと触るのは難しいので、良さそうなものをつまみ食いしたり、スクリーンキャストとかブログを読んだりして、まあこんなものかなって。

─⁠─必要なところは自分で手を動かすけれど、そうでないところは最低限の知識を得ておくんですね。そういう技術の取捨選択力は、どこから身につけたのでしょうか。若いころからコードをたくさん書いて、OSS活動をしていたことの影響はあるのでしょうか?

宮川:OSSで公開したり、情報発信したりしている人には情報が集まってくるとよく言われますが、やはりありますね。特にOSSだと、いろいろなフィードバックが集まってきます。

画像

もし今社会人になりたての若者なら

─⁠─もし宮川さんが今社会人になりたての若者で、まっさらな状態で技術を学ぶなら、どんなテクノロジを学んでみたいですか? 技術は多様化していて、コンシューマ向けサービスだとスマートフォンが当たり前ですし、Makeブームみたいな感じでハードウェアブームもあったりするじゃないですか。

宮川:コンピュータサイエンスと数学の基礎を学ぶのは大事だと思います。最近は海外を含め若い人がどんどんスタートアップを作りますが、大学などでコンピュータサイエンスと数学の基礎をちゃんと学んだうえでやる人のほうが伸びていくスピードが速いと思います。今は中学生でもプログラムを書けたりするので、そういう意味での学びやすさはすごいんですが、それでもコンピュータサイエンスと数学は学んだほうがよいと思いますね。

─⁠─なるほど。技術が汎用的になって作りやすくなったからこそ、最低限の基礎を身につけたほうが良いと?

宮川:そうですね。学びやすくなっているのは確実に良いことなので、利用すればよいと思います。でも流行りものだけやっていても、5年後、10年後に役立つかを判断するのは難しいでしょう。

─⁠─あとは英語ですか?

宮川:そうですね、やはり英語は重要。情報にアクセスできるスピードは英語を使えるかどうかでだいぶ変わってくるので、読み書き、特にリーディングは絶対にできたほうが良いです。日本語に翻訳された情報を読んでいるだけでは、フィルタされた情報しか受け取れないし、その翻訳が間違っている可能性もあります。サービスを作っていくうえでも、日本は大きなマーケットではありますけど、今後人口は縮小していきますし、大きいところに出ていくには英語ができないとダメです。また、開発者コミュニティで情報発信していくときに英語ができるのとできないのとでは雲泥の差があります。日本のソフトウェアエンジニアはすごく優秀な人が多いですけど、海外のカンファレンスやブログを見るとまだちょっと弱くて、それは単純に英語が障壁になっているパターンがかなり多いと思うんですよね。自分の思っていること、やっていることを発信できる道具だから、英語は相当な武器になると思いますよ。

─⁠─数学、コンピュータサイエンス、英語はとりあえず学んでおけと。

宮川:勉強しろみたいな話になっちゃった(笑⁠⁠。

宮川さんのようになるには

─⁠─宮川さんみたいに、技術力が高く、自由に生きられるキャリアはエンジニアのあこがれですよね。そういうふうになるには何が必要ですか?

宮川:難しい質問ですが……、何かを一つを極めることでしょうか。ほかの人に負けないもの、自分にしかできないものがあると、それを武器にいろいろな突破口を開くことができます。今は何でもできる「フルスタックエンジニア」という言葉が盛り上がっていますけど、フルスタックエンジニアになるにしても、どれもまんべんなく普通にできますだと全然おもしろくないと思います。浅く広くやっても全部が中途半端に終わるだけなので、まず一つのことを極めて、そのうえでほかのことをやると、ものすごく強くなると思いますね。昔はサーバサイドを極めていて、最近フロントエンドやデザインもやり始めましたって人なんかは、すごく価値が上がっていると思います。僕自身があまり偉そうなことは言えないけれど、そういうふうになっていくべきかなという気はします。

─⁠─一つの強みを活かしつつ、ほかのスキルも身に付けるということでしょうか。

宮川:そうですね。たとえばWebデザインとサーバサイドのWeb設計は、全然違うように見えるかもしれないけれど、共通するところがあると思います。一つを極めてからいろいろなものを身に付けると、経験が活きてくる部分がかなりありますね。

─⁠─本日は貴重なお話、ありがとうございました。

画像

本インタビュー後に、Rebuildと本誌の連動企画として、宮川さんと舘野さんとでRebuildの特別エピソードを録音しました。こちらもぜひお聴きください!

http://rebuild.fm/webdb83

おすすめ記事

記事・ニュース一覧