Forkwell Press

エンジニアの生き様をウォッチするメディア

金髪の神エンジニア・kamipo 伝説のもうひとつの真実 -トレジャーデータ 上薗竜太氏

この連載では、「Forkwell Jobs」の開発にも関わるフリーランスエンジニアの後藤大輔 (@idesaku) が、さまざまな企業で働くエンジニアとリレー形式で対談を行っていきます。
今回のゲストは、トレジャーデータの @kamipo さんこと上薗竜太氏です。

ストイックに自身を追い込み「高み」を目指すかたわら、エンジニア教育にも携わった経験を持つ kamipo さん。一部で伝説となっている「金髪の神エンジニア」評について、ご自身の視点から「意外な事実」が明かされます。

第1部:君がッ! 泣いてマージするまで、プルリクを送ることをやめないッ!
第2部:「この境地にいるのは自分だけ」ー 自身を追い込み続けてたどり着いた「高み」
第3部:金髪の神エンジニア・kamipo 伝説のもうひとつの真実

kamipo さんご指名のリレー相手は、当記事の最後でご紹介します!

執筆:高橋美津

仕事として「当たり前のこと」を言っていただけ

idesaku:
私の中で、kamipoさんが他の方と仕事をされる際のイメージは、3年ほど前に大量のはてブを獲得した「ピクシブでの開発 - 金髪の神エンジニア、kamipoさんに開発の全てを教わった話」なんですけれども。ああいう形でのエンジニア教育みたいなことには、今の会社でも関わられているんですか。

kamipo:
あー、ありましたね。あれは僕もピクシブを辞めて結構経ってたころだったので、「彼から見るとそう見えていたんだ」といった感じで感慨深かったですね。

idesaku:
だいぶ盛られていた?

kamipo:
まあ、どれも実際にあった話なので本当によく覚えてるなと(笑)。でも僕が言ってたことって仕事として普通のフィードバックで、当たり前のことしか言ってないんですよね。

idesaku:
個人的には、「最後のコミット」のくだりには、かなりグッときたんですけれど。「kamipoさんは、私の(ピクシブでの)最後のコミットが一番良いものになるように、その日はずっと隣で作業をしながら、私が書くコードを見ていてくれたのだった」ということでしたが…。

kamipo:
あー。あれは彼の仕事がその日のうちに全部終わらないと思ったので、そうならないように横で見ながらナビゲートしてただけなんですよね。なので、最後のコミットのくだりはたまたまです(笑)。

idesaku:
kamipo さんの感覚としては「仕事上で必要なことを淡々とやっていただけ」だったのですね。

kamipo:
そうですね。実際、自分は普通に仕事することしかできないと思っているので、それが彼から見るとすごくいい話になっていたのが、面白いですね。

自分のできる形で世の中に価値を生みだし続けていきたい

idesaku:
前回の「あらたま」さんから、「kamipoさんは、5年後に何をしていたいですか?」という質問を預かってきているのですが、これについてはいかがでしょう。

kamipo:
えーと、「5年後」とか考えてないです(笑)。

idesaku:
今は、 Active Record を何とかすることに全力を注いでいるので、考える余裕がないといった感じですか。

kamipo:
どうでしょう。5年後まで scoping のこととか考えていたくないなぁというのは、正直な気持ちなんですが(笑)。

ただ、今、僕が Active Record のことを一所懸命やっているのは、ピクシブをやめて、今のトレジャーデータに来るまでの約3年間、「世の中に対して価値を生み出せていない」ことが本当にツラい時期があって、その反動みたいなところもあるんですね。

「自分に向いていないことをやっていると、自分が世の中に対して生み出せる価値が減る。だったら、毎日できることをやりながら、自分にとっての時間の密度を上げ、価値を出し続けたほうがいい」という考え方が、今後も、自分のやっていくことを決めるときの基礎になるような気がしています。

idesaku:
個人的に、エンジニアには「技術的な問題を解く」ことに第一義の喜びを感じていて、「世の中に対して価値を生みだす」いわゆる「社会貢献」的な部分については副次的なものとしている人も多いのではないかと感じているのですが、kamipoさんは貢献こそを重要視しているのですね。

kamipo:
たとえば、今、死ぬまで遊んで暮らせるだけのお金をもらえたとして、じゃあその後、誰の役にも立たず、何の価値も世の中に生みださずに、一生遊んで暮らすことができるかと考えると、僕はそれに耐えられないと思うんです。でも、これは僕に限ったことではなくて、みんな、自分のできる形で、世の中に必要とされることをしながら生きていきたいと思っているんじゃないですかね。

idesaku:
今の kamipoさんにとっては、Rails への大量のコミットを通じて世界に価値を提供できていることが、生活を充実させる上で大きな意味を持っているのかもしれませんね。

kamipo:
始めたころは「100コミットもできるのだろうか」と思っていました。でも、2年間ほど毎日やり続けたことで、3日で2コミットぐらいまでできるようになって、気がついたら400コミットできていた。何でもそうかもしれませんが、1つ1つは、それこそ「クソ」のようなバグでも、それを400個直し続けられたら、他の人にはマネのできない領域にたどりつけるということだと思います。

idesaku:
少しずつでも進んでいれば、いつかそれが積み重なって、新しい世界が見えてくるというのは、分かる気がします。

ちなみに、kamipoさんは自分で新しいプロダクトを作ったり、ビジョナリー的な立場でコミュニティをひっぱっていったりすることに、関心はないのですか。

kamipo:
全体をデザインしながら大きな絵を描いていける人に対しては、素直にスゴイと思うのですけれど、僕にはそれができないんですよ。「好み」の問題ですかね。僕は「他の人が気付いていないようなバグを見つけ出して、それを直す」ということが好きなんだと思います。仕事でもバグフィックスや改善ばかりやっていますし。

きっと、今ある知識を持ったまま数年前にタイムスリップできたとしても、新しいものを作るようなことはやらないんじゃないかな。それに対して意欲を持てないだろうと思います。

小さなバグをひたすら見つけ出して、ひとつずつツブしていく作業はしょぼく見えるかもしれませんが、それを「気がおかしくなる」くらいまでやり続けることで、ほかの人にマネができない領域に到達できるということは、実感としてありますので。

idesaku:
「気がおかしくなる」までやるというのは、並大抵のことじゃないですよね。やっていてツラくなることはないですか。

kamipo:
あります。「これ以上、何かあるのか?」みたいな状態になって、その中で悶え苦しむことなんかしょっちゅうです。でも、その状態から、さらにもうひと踏ん張りして、先に進んだときには最高にうれしいですよね。その達成感を楽しんでいるところはあるかもしれません。

idesaku:
そうした「自分の中での達成感」に加えて、OSS の世界ではコミュニティからの評価のようなものもモチベーションの一部になると思うのですが、そちらについてはどうですか。

kamipo:
それも、もちろんあるのですけれど、ちょっと特殊かもしれません。たとえば僕、いちいち「ここを直した」みたいなことを自分から必要以上にアピールはしないんですよね。数が数なので、それやっているとキリがないですし。でも、ある程度の知識とスキルがある人が見れば「これをここまで直した、コイツはスゴイやつだ」と分かってくれるじゃないですか。

「多くの人には簡単に気付かれないけれど、一部の本当にスゴイやつが、僕のやったことをスゴイと思ってくれる」という状況に、強く自尊心を刺激されるんです。

idesaku:
では5年後も、もしかすると別のコミュニティで今と同じようなことを続けていらっしゃる可能性はありますよね。OSS 界は広いですし。

kamipo:
十分あり得ると思いますよ。たとえば、同じく O/Rマッパーの「Sequel」あたりは、僕の「直すリスト」に入っています。ただ、Sequel については、Active Record とテストの構造が違いすぎて最初に覚えるのが大変なので、まだきちんと着手できていないのですが。そのうち、ヒマができたら直そうと思っています。でも、当面は Active Record に全力を注ぐつもりです。

idesaku:
Active Record に、そこまで入れ込み続けている理由は何でしょう。

kamipo:
Rails が出てきてから、Active Record という O/Rマッパーが「出来が良い」という評価の元で、他のいろんな O/Rマッパーに影響を与えている状況があると思います。

であれば、その Active Record に、僕の知っていることやスキルのすべてを注ぎ込んで良いものにしておけば、この先、PHP とか Go とか、また別の環境に移ったときにも、それをバックポートしていけば、自分のレベルから見てすぐに使えるものにできると思うんです。今 Active Record に入れ込むべき理由は、そこにあると思っています。

「引きこもりですが、声をかけてくだされば、わりと出ていきます」

idesaku:
kamipoさんが普段関わっていらっしゃるエンジニアコミュニティについても聞かせて下さい。

kamipo:
2007年ごろに東京に出てきて、そのころは、エンジニアの知り合いもいなかったので、あちこちの勉強会に顔を出していましたね。今では、あまりそういうこともやらなくなってしまったのですが…。

Web系の世界だと「何ができるかが名刺がわり」みたいなところがあるじゃないですか。勉強会に出て、名刺を配ったりもらったりするよりも、今はとにかく1人で考え続けていたほうが、いいような気もしていて…。

idesaku:
今は、他人がやっていることを気にしている時間も惜しいといった感じなのでしょうか。たとえば、仕事の中で、回りにいる人のやり方を知ったり、聞いたりすることで、新しい気付きがあるようなこともあるのかなと思うのですが。

kamipo:
仕事の中ではよく聞いていますよ。nahi さんとか、naruse さんとか、回りに Ruby コミッターの方々もいらっしゃるので。

idesaku:
SNS には、たまに食事会の様子などが上がっていたりしますけれど、あれは?

kamipo:
よく一緒に食事にいくのは、Perl コミュニティの方が多いですね。昔、YAPC などに参加していた頃からのつながりです。あと、LINE の Yappo さんとか、DeNA の xaicron さんとかとは、よく飲みに行きます。

idesaku:
以前ほど勉強会には熱心ではないとおっしゃっていましたが、「複数DB」の時のように「出てくれ」と請われることは増えているんじゃないですか。

kamipo:
いや、そんなことないですよ。今、ろくに外に出ない引きこもり状態なので、みなさん、僕にコンタクトする手段を知らないんじゃないでしょうか(笑)。

idesaku:
実は、今回のインタビューを申し込む時も、担当者がどこを窓口にしてよいか分からず、Twitter の DM で直接お願いしたと聞いています(笑)。もし、今、kamipo さんに登壇のお願いをしたい人がいるとしたら、どこを窓口にお話しさせていただくのがいいのでしょうね。

kamipo:
うーん、「知り合い」経由で声かけていただくのが一番早いんじゃないでしょうか。引きこもりではありますけれど、声をかけてくだされば、わりと出ていきますよ。

次回は仕事以外でも大活躍の凄腕エンジニアが登場

idesaku:
では最後に、そんなお知り合いの中から、次回のインタビュー相手をご紹介いただけるとうれしいのですが…。

kamipo:
LINE の「すぎゃーん」を紹介したいです。

これまでリレーインタビューに出ている人を見ると、仕事に邁進している人が多いかなと感じたので、それなら今度は仕事以外が楽しそうな人にしてはどうかと思ったんですね。すぎゃーんは、TensorFlowを使ったディープラーニングでアイドルの顔識別をする、ということをもう1年はやっていて――僕みたいな感じですよね――もはや「他の人にはマネのできない領域」まで行っていると思います。他もなにげにすごくて、ISUCON っていう、Webアプリケーションの高速化コンテストがあるんですけど、すぎゃーんは過去6回中4回も優勝しているんですよ。

idesaku:
またしても凄腕のエンジニアですね! どのような話が伺えるか楽しみです。本日はお忙しい中、お時間をいただきましてありがとうございました。(第3部・完)



Forkwell では、ITエンジニアが自身のアウトプットを簡単に連携・管理し、スキルを可視化することができる「Forkwell Portfolio」を運営しています。

GitHub アカウントの連携により、登録されたリポジトリのコミットログを解析。普段書いているプログラミング言語や、コードの変更量をグラフ化します。