freeeの開発情報ポータルサイト

GopherCon 2019 に参加してきました

こんにちは。
人事労務フリーエンジニアの @hatajoe です。

今年の4月から freee 大阪支社 にて働いています。
freee 大阪は去年立ち上がったチームで、社内ではタコヤキチームと呼ばれ親しまれています。きっと。雰囲気緩めのおじさんが集まる良いチームです。

私の好きなプログラミング言語は Go で、関西で Go の話が出来る場が欲しいという素直な理由から趣味で umeda.go というコミュニティの運営を続けています。ですから、世界最大の Go コミュニティである GopherCon への参加は、いつか実現出来ると良いなと思っていました。
有り難いことに、その機会は思ったよりも早く訪れました。入社して2ヶ月ほどしたある日、ジャーマネ(freee ではマネージャーをこう呼ぶ)から行きたいかと聞かれ、英語わからんけど行きたいと答えた。本当にそれだけでした。その時はまさか自分1人で行くことになるとは思っていませんでした。私は過去に海外渡航経験が無い。

GopherCon メイン会場の写真
GopherCon のメイン会場。来場者数は1800人くらいだったそうですよ。

それからは不安と期待の入り交じる日々でした。
Go は好きだ。しかし英語はわからない。行ったところで成果を持ち帰れるだろうか?他の参加者にお前何しに来てん、と思われないだろうか? freee には多くの優秀な Gopher が在籍していて僕でええの?一旦それでええの?ところで国際線ってどうやって乗るのだろう。てかパスポート持ってへんやん。やっぱやめよ。せややめたろ。いやそれはあかんで。それはあかん。せやかて。

そういった状況の中、私は精神を安定させるために英語を勉強することにしました。
思い切ってコーチングを利用し1日3時間のカリキュラムを1ヶ月こなしました。普段のツイートも英語で書いてみたりしました。このようにして精神の安定を獲得しようとしました。 これらの淡い努力は残念ながら思ったほどの効果はありませんでした。もちろん、コーチングによる継続的に勉強する習慣がついたことは良かったですし、現在も英語の勉強は続けられています。いずれにしても、90時間かそこらの勉強で言語能力は向上しない。

さて、肝心の GopherCon ですが、そんな海外渡航経験が一度もなく英語も得意ではない私が、単独で参加して得られた経験について書いてみようと思います。
セッションの内容については、私がここに書くよりも Sourcegraph など見て頂く方がより良いと思います。

カンファレンスはディスカッションの場

会場のホテルエントランスに施された Go 関連の装飾の写真
会場のホテルは Go 関係の装飾が至るところに。

私は umeda.go というコミュニティの運営を続けていることを紹介しました。
年4回のペースで開催しているこの勉強会は、毎回様々な Gopher が何かを発表し、参加者はそれを聞くというスタイルです。
GopherCon に参加して気づいたのは、参加者同士、参加者とスピーカー同士のコミュニケーションが発生しやすいタイムスケジュールを意識しているということです。
空いた時間でディスカッションが自然発生しており、これはとても体験が良い。私は英語が流暢に話せないことでこんなに悔しい思いをしたことがない。しかしそれでも体験は良かったです。

私が他の参加者としたディスカッションの内容は例えば:

  • いつもどんなところで Go 使ってるの?
  • Generics についてどう思う?
  • 普段は何を開発しているの?

とかそういう感じです。ディスカッションというか、世間話みたいなものですが、私の英語力ではこれくらいが限界でした。
運が良かっただけかもしれないですが、私が出会った方々は皆私の英語を一生懸命聞いてくれました。他の参加者に比べて恐らく圧倒的にディスカッションの分量が劣るものの、少しでも参加出来たという成功体験が得られました。

思い切って行動すると良い

ウェルカムパーティが開催された空母の写真
2日目に行われた空母の上でのウェルカムパーティ。戦闘機とか並んでました。

先の成功体験が積み上がると、コミュニケーションのハードルは少しずつ下がっていきました。しかし、それでも自分の言いたいことを英語で言えないのでうまくは行きません。これは能力の問題なのでどうしようもない。どうしようもないのでとりあえず話しかけてから考えようと思うようになりました。特にランチタイムはフリースペースに相席で座るため、危機<イングリッシュインシデント>が発生しやすい。まったくうまく会話にならないこともありましたが、皆さんなんとなく察してくれました。

あるセッションでふと隣を見ると、知っている人が座っていました。Russ Cox 氏でした。
気づいてからというもの、私は失礼ながらそのセッションは聞かず何を質問するかをずっとラップトップに打ち込んでいました。エレベーターピッチはこういう感じかと思いながら。
そして、セッションが終わって思い切って声を掛けてみました。

  • 私「さっきのトーク面白かったです。」
  • 彼「ありがとう!」
  • 私「Go2はこれまで同様実験とシンプル化を繰り返して開発していくと言っていたけど、今後もそのスタイルを変えることはない?」
  • 彼「そうだね。」
  • 私「それはGoチームのメンバー全員がそう思ってやっているの?」
  • 彼「そうだよ。理にかなっているからね。」
  • 私「ありがとう。日本から来ました。初めまして!」
  • 彼「初めまして!ありがとう!」

もっと本質的な質問は無かったのかと思うのですが、この時の限界でした。
ちなみに、Russ Cox氏が隣に座っていたのは、会場の一番前に位置するスピーカーオンリーの席に私が気づかず座ってたからなんですよねマジで。隣見たら彼が座っていて、なんで?って思った。むしろお前がなんでおんねん事案。でも話しかけたらすごく気さくな方でした。握手もしてくれました。ウェルカムパーティでは写真も撮ってくれました。スピーカー席に座って偉そうな質問してひどい日本人だけど。

しかしこれらのことが、帰国後の自身のコミュニケーション観に大きく影響を与えたと思います。
私は freee に入社して間もないという理由でしばしば様子を伺いつつ行動するようなテイタラクでありましたが、そんなものは関係がない。自ら飛び込んでいかないと何も変わらないし変えられないやんという気持ちになりました。


Slackに連携されたツイートが流れる図
何者かによって知らぬ間にTwitterアカウントがいつものSlackチャンネルに連携される図。ツイートで英語の練習をしていたことがバレてやっちまった感があった。しかしそこには心強さがあった。時差は16時間あった。

今回のカンファレンステーマ全体の俯瞰としては「標準化」と「パフォーマンス」が印象的でした。
Uber も GitHub も、人が増えてカオスになってきた開発に秩序をもたらすために、ソフトウェアアーキテクチャーや開発プロセスを標準化する過程で Go を選択してきたという背景が語られました。これは freee においても当てはまり、マイクロサービス基盤 の開発をすることで標準化を進めていたりします。また、標準化に対して gRPC の特性がマッチすることも Go を選択する1つの理由になっているのかなと思いました。
また、パフォーマンステーマは常に語られますが、今回は特に goroutine 数を最適化するという、いわばランタイムの敗北のようなテーマもいくつかありました。巨大なサービスに Go が採用され数年経ち、知見が成熟して来ているような雰囲気を感じました。

渡航前に抱いていた不安とは裏腹に、帰国後は本当に行ってよかったと思える旅になりました。
今は、英語力をもっと鍛えて色々な人とディスカッションしたいと強く思っています。来年チャンスがあれば是非再び参加したい。 もしこれを読んで頂いた方で、英語力や得体のしれない恐怖により躊躇してしまった方が居たら、多分大丈夫だから行ってみると良いよと言いたい。

freee ではチャレンジ精神旺盛なエンジニアを募集しています。もちろん大阪支社も募集中です。カジュアル面談も受け付けているので、興味がある方は遊びに来て下さいね。

jobs.freee.co.jp