エンジニアの生存戦略

第5回 蓑輪太郎―Twitter本社で働くエンジニアのキャリア

この記事を読むのに必要な時間:およそ 3.5 分

先を歩むエンジニアへのインタビューを通してエンジニアのキャリアについて考える本連載,今回はゼロからOSやScheme処理系を作り,現在はTwitter本社で働く凄腕エンジニアのhigeponこと蓑輪太郎さんにお話をお伺いしました。

画像

[撮影:平野正樹]

危機感を感じた1社目

──higeponさんはいつもさまざまなことを勉強なさっていますが,いつごろから自ら技術を学び始めたのでしょうか?

higepon(以下ひ):2001年に入った初めての会社が大きいSI系で,技術に長けたチームに入れてもらえました。そこではモデルケースになるような優秀な先輩がいて,たとえばトラブルが起きたときに,自分で率先して原因を解明して,周りにも的確に指示を伝えていて問題を解決していたんですよ。その先輩から「しっかりプログラミングを勉強しないとまずいよ」と言われたんですよね。それで自分で実際に勉強をし始めたら,今いる会社の技術力が低いかもしれないと感じたんです。

──技術を深く知っていて,かつ課題解決できる先輩がいたんですね。

ひ:はい,でもこの先輩より10歳下の勉強していない先輩は,10年経ってもこの先輩のようにはならないと感じました。大学生から社会人になったときは,社会人でも勉強するなんてことは想像していなかったのですが,言われたことだけこなしていたらまずいと思いました。

──そういう会社だからこそ,危機意識が身についたのですね。それでどんな勉強を始めたのですか?

ひ:最初は仕事で使うこともあってJavaを学びました。2~3年の経験を積んだころには,言われた仕事はかなり早くこなせるようになりました。次はもっとプログラミングを理解するために基礎的なことを,仕事では学べそうにないことをと考えたときに,OSを作ればいろいろなことが学べると思ったんですよね。

舘野祐一 氏

舘野祐一 氏

──それがのちのMona OSになるんですね。実際に作り出して,どれぐらいでOSのことを理解できましたか?

ひ:ゼロからだったので3~4年はかかったと思います。

──コツコツと学ばれたんですね。続けられたモチベーションはどこから来たのでしょうか?

ひ:たしかRuby作者のまつもとゆきひろさんも言っていたのですが,知的好奇心を満たす適切な課題があるとすごく楽しいんですよ。難しいけど頑張れば解ける問題が,どんどん並んでいると楽しくて。たとえばOSなら,どうやってブートするのか,そのあとのファイルシステムの読み書きはどうするのか,画面に文字を表示するにはどうするのかと学ぶことがどんどん積み重なっていって,ずっと楽しくてモチベーションを維持できました。

──それでも3~4年かけて作り続けるのはすごいですね。

ひ:若いときは時間ならありますからね。

コードが書きたくてはてなへ

──2005年にはてなに転職されましたね。

ひ: 1社目の会社で,人やお金の管理といった,マネージャーの仕事をする先輩が増えてきたんですよね。僕は本当にコードを書くのが楽しいから,コードを書く仕事がしたくて,当時「はてなダイアリー」や「はてなアンテナ」を使っていたので,それを作っていたはてなに応募しました。

──昔話(注1)なんで懐かしいですね(笑)。そのころから英語を学び始めたと思うのですが,きっかけはあったのですか?

ひ:シリコンバレーに行ったとき,ピザ屋やスーパーで英語が通じなかったんですよ。受験のときは英語が得意だったので,ちょっとは通じるのですが,思っていた以上に通じませんでした。またGoogleがとてもエンジニアを大切にする会社だということを聞いていたのでGoogleで働いてみたかったのですが,そのためには英語ができないといけないので勉強し始めました。

──アルゴリズムやSICP(注2),コンパイラも学んでいましたよね。

ひ:はてなではユーザ向けのサービスをゼロから作ったり,Webの速い開発サイクルを学んだりと,その辺は完全に満足していました。それ以外のところで自分に足りないものを考えたときに,僕はコンピュータサイエンス学科出身ではないので,アルゴリズムも難しいものはわかりませんし,コンパイラもブラックボックスだったので興味があったんです。

──ここでも仕事で満たされるところ以外を独学で勉強されたんですね。

注1)
インタビュアーの舘野とは同僚で,はてなでは約2年間一緒に働いていました。
注2)
Gerald Jay Sussman,Harold Abelson,Julie Sussman著/和田英一訳『計算機プログラムの構造と解釈第二版』(ピアソン・エデュケーション,2000年)の原題の略称です。

中長期的な視点を身につける

──続いて2008年頭にサイボウズ・ラボに転職されましたね。

ひ:Webの速いサイクルでサービスを作る視点とは違った,もうちょっと中長期的なものづくりをしてみたかったんです。当時サイボウズ・ラボでは,テーマを自分で提案して自由に挑戦できました。

──最初にMoshというScheme処理系を作られましたが,なぜ作ったのでしょうか?

ひ:Moshを作った理由はいくつかあります。当時JavaScriptを中心に関数型のパラダイムがWebでもはやり始めていて,今後関数型の言語がWebを支える技術になり得る可能性があったこと,OSを作りつつコンパイラを勉強していたこともあり,純粋に自分の技術の興味分野と一致していたこと,自分自身が関数型のパラダイムがどんなメリットがあり,どんな場面で使うのか理解が浅かったこともあり,作る過程で概念を学びたかったことなどです。

──続いてMioというKVS(Key-Value Store)を作られましたね。

ひ:当時はストレージにMySQLが,キャッシュにmemcachedがよく使われていました。ただ,両者のデータ構造にギャップが大きくて,その差をアプリケーションサーバ側で吸収するアプローチが多かったんです。それをもっとうまく行えるミドルウェアを実現したくてMioを作り始めました。実装言語にはErlangを使い,アクターモデルのメッセージングをベースとしたプログラミング作法も学びつつ作りました。

──関数型だったり,メッセージングだったり,毎回自分が知らない考え方を取り入れていますね。

ひ:そうですね,わからないのが怖いというのはありますね。たとえば今iOSやAndroidアプリの話をされても言っていることはだいたいわかるじゃないですか。でもそれが数年経って,2世代ぐらい先の全然違うテクノロジになったとき,会話のキーワードすらわからない状態になったら,エンジニアとして相当まずいじゃないですか。だから新しいテクノロジやパラダイムが出てきたときにわからない状態のままでいるのは,すごくリスクがあると思っています。だからといって全部学ぶと時間が足りないので,本当にわからないものに絞って学んできました。

──サイボウズ・ラボ時代はプライベートでは何を学んでいたのでしょうか?

ひ:ほとんど英語ばかり勉強していました。

──たしかにブログで英語のことをたくさん書いていましたね。higeponさんは努力の天才だと思っているのですが,どうやって毎日続けているのでしょうか?

ひ:いやいや(笑)。毎日続ける努力,反復練習って,一度勢いがつくと簡単なんですよね。慣性の法則でも,一度動き出した物はずっと動き続けるし,止まった物はずっと止まり続けたままです。毎日続けるにはコツがあって,たとえば2週間に一度飲み会に行くと,その日の夜や次の日の朝の勉強がつらくて止まってしまいがちです。これで止まってしまうと,あとあと膨大な時間を失うじゃないですか。もちろん,飲み会で得られることもいろいろあるとは思うので,どっちを取るかという話だとは思いますけどね。

著者プロフィール

舘野祐一(たてのゆういち)

はてなブックマークのリードプログラマ・エンジニアリングマネージャを経てクックパッドに入社。ユーザに価値を届けるためにさまざまな技術的な挑戦を行っているうちに,いつの間にかクックパッドのCTOに。昔はコードを書くことが死ぬほど好きだったが,最近は技術をどう生かすかが好きになってきているお年頃。

GitHub:https://github.com/hotchpotch
はてな:http://secondlife.hatenablog.jp/

コメント

コメントの記入