Sudo インターンの旅(2)
# Sudo の旅前言
2017年に僕は Medium で Sudo インターンの旅 — 序章 を公開した(今はライフブログへ移転している)。空いた時間に少しずつ書こうと思っていたのだが、気づけばそのまま五年以上が過ぎていた。
自分のキャリアを振り返ると、今この立場にいられるのは本当に幸運だ。ちょうどこのタイミングで Sudo でのインターン時代を振り返り直すことで、より多くの視点を共有できるようになった。
この文章を書き終えた一年後、Denny も Medium に彼の Sudo での旅を公開した。Sudo が App から受託開発を経て正式な開発プラットフォームへと変わっていくこの時期については僕は参加していない。ただ Andy、Ben、Eric からざっくり聞いていただけで、これでようやく Sudo の全体像を正式に見た気がする。
Sudo を知る
前の記事でも触れたが、Sudo でインターンを始めたのは、ちょうど縁があって紹介してもらえたからだ。当時の面接課題は、加減乗除と括弧の優先計算に対応したフロントエンドの電卓を作ることだった。見た目は簡単そうだが、面白い点が一つある。数字を正しく計算するには、中置表現を後置表現(または前置表現)に変換しなければならないのだ。そうして初めてプログラムは正しい結果を得られる。さらに画面表示のためには、イベントリスナーのようなフロントエンドでよく使う知識も実装に必要だった。
面接
当時の僕は CSS と HTML しか書けず、JavaScript は基本的な文法を知っている程度。Ruby on Rails も少し触ったことがあり、本を見ながらいくつかサイトを作ったことはあったが、それくらいだった。
だからこの課題は僕にとってかなり難しかった。一方ではアルゴリズムを自分で実装しなければならず、もう一方では慣れていない JavaScript と向き合う必要があった。しかも僕は授業中に何時間もかけて書き、コードも <script> の中にそのまま突っ込んだだけで、特に最適化もしていなかった。それでも最終的には面接の連絡をもらえた。
今思うと、面接もなかなか笑える。ボロいノート PC(Intel I3、2G RAM)を持って、「ライブコーディングでもあるのかな」と思いながら向かった。持ち手の壊れたバッグを提げていたのに、服装だけはやけにきちんとしていて、しかも季節は夏だった。
中に入ってエレベーターに乗ったとき、ちょうど Andy に会った。挨拶をすると、彼は笑いながら僕の肩を組んで「暑くない?」と言った。僕は心の中で、なんだよ、創業者ってそんなにフランクなのか、いきなり会ったばかりの他人と肩を組むのかと思った。面接の細かい流れはまったく覚えていないが、とにかく無事に進んだはずだ。
当時の面接は AppWorks という場所で行われていて、たくさんのスタートアップチームが同じオフィスで働いていた。Sudo はその片隅を使っていた。面接の前には reference check まであり、Winston が Heart から電話を受けたとき、僕のことをずいぶん長く宣伝してくれたと覚えている。最終的に Heart は僕を「原石」だとまとめたらしい。連絡が取りにくいという話も出たが、実際はスマホ代とネット代が払えなくて回線が止まっていただけだ😂。
その後、採用の連絡が来た。受け取った瞬間は本当に興奮した。こんな僕でも信頼してもらえるのか、と驚いた。
入社初期
入って数日後にはもう会食があった。初めて正式に会社でインターンする僕にとって、何もかもが新鮮だった。特に印象に残っているのは、Denny が「jQuery はすごくいいからたくさん見ておくといい」と言ってくれたことだ。そしてたくさん食べた。
入社後、最初の出社日には席の調整がまだついていなかったらしく、ちょうど夏期講習を受けていた Denny の席に一時的に座っていた。ノート PC があまりに古くて Windows がまともに動かず、Ubuntu で動かしていた。あのとき初めて Slack という社内コミュニケーションツールを知った。
そんな感じで、最初の数か月はずっと tutplus に浸って JavaScript の基礎を学び終えた。あの講座はかなり良くて、内容もかなり堅実だった。当時は React や Angular のようなフレームワークもあったが、まだ比較的シンプルな時代だった。あの環境で JavaScript の基礎をきちんと学べたのは、本当に幸運だったと思う。
基礎を学び終えたあと、いくつかのサイドプロジェクトを作り、それから RD チームや PM と一緒に新機能の開発に入った。その時期は僕が最も成長した時期で、ソフトウェア開発やフロントエンド開発の技術をたくさん学んだ。PR の出し方、Webpack の設定、ゼロからサービスを作る方法など、この数か月でソフトウェア開発に必要なことを一気に身につけたと言っていい。
一度、コード漏洩しかけたこともある。自分の SSH の private key を GitHub に入れたまま、公開 Repo に commit してしまったのだ。今思い返すと、あんなに馬鹿なミスをして、しかも fire されずに済んだのは本当に天に感謝するしかない。
それも devcore がセキュリティチェックをしてくれたおかげで発覚した。幸い、devcore 以外にログイン記録はなかった。それ以来、僕は SSH key をアップグレードするときは保存先フォルダを何度も確認するようになり、機密情報を含むアカウントには 2FA を使うようになった。まさに痛い事故から自分を守る方法を学んだわけだ。
オフィスではほぼ毎日のように何かしら驚きがあった。AppWorks で特に印象に残っているチームは justfont だ。当時の僕はソフトウェア業界全体への理解がまだ浅く、ただ単純にフォントで起業できるのはすごいと思っていた。たまに創業者が走り回っているのを見かけたし、AppWorks にはすごいコーヒーの人がいて、その人が淹れるコーヒーは本当にうまかった。
数か月ほどして、会社は AppWorks を出て、信義路に小さなオフィスを構えた。
移地訓練
特に印象に残っているのは、会社で宜蘭に遊びに行ったことだ。たしか移地訓練と呼ばれていた。みんなで宜蘭に別荘を借りて、遊びながらいくつかの活動をした。
僕はああいう空気がすごく好きだった。ただ毎日遊んで仕事をしないという意味ではなく、同じ目的のために一群の人たちと集まって頑張れる、あの感じが好きだった。当時の僕はただ単純に楽しいと思っていたが、仕事を何年も続けて大小さまざまな会社を経験したあとでは、あれがどれほど貴重だったかがわかる。後になって、僕は本当にいろいろな場面を逃していたと気づいた。たとえば創業者の結婚式の日は僕は兵役中だったし、そうでなければもう日本にいた。
当時の僕は、会社と一緒に成長したかったし、本当にその日が来るまでここにいられると信じていた。社長が「5年以内に、ここにいる全員が家を買えるようにする」と言ったのを、素直に信じていたくらいだ。もちろん、その大風呂敷は実現しなかった。
もしかすると、あのとき社長は本気でそう思っていたのかもしれないし、単に社員を引き留めたかっただけかもしれない。どちらにしても、それを理由に誰かを嫌ったり、反感を持ったりする必要はないと思う。
中期
新しいオフィスの近くにはとてもおいしい朝食屋があった。僕はチーズ牛ステーキの卵巻き+チョコレート厚切りトースト+無糖緑茶をよく頼んだ。あのステーキは焼き加減がとても良くて、チョコの厚切りトーストはソースがはみ出るほどたっぷりだった。食べ終わると気分が良くなる。ただしカロリーも爆発する。
会社に行くことが、毎朝起きる動機になっていた。毎日、頂溪から地下鉄で市政府へ向かいながら(オフィス移転後は象山)、今日はどうやって仕事を進めようか、新しい技術週刊はあるかな、慣れた RD たちとご飯を食べに行って話せるかな、他の同僚たちとふざけ合えるかな、と考えていた。
日々の開発だけでなく、会社は各地の Conference に出展して宣伝もしていた。そのおかげで無料でいくつもの Conference に参加できたし、オフライン meetup にも一緒に行って、コミュニティでよく見かける開発者たちとも知り合えた。
今振り返ると、当時の僕には未熟なところがたくさんあった。年齢も経験も今よりずっと少なく、目に入るものもほとんど技術ばかりだったので、どうやって皆と関わればいいのかよくわかっていなかった。それでもありがたいことに、RD チームだけでなく他の同僚たちも僕をとても温かく受け入れてくれて、自分から話しかけてくれた。未熟さゆえに多くのことを逃したこともかなり後悔している。しばらくのあいだは閉じこもるようになって、技術以外のことをほとんど気にしなくなってしまった。
僕とほぼ同じ時期に入った Henry は、当時ほぼ素人だった僕とはまったく比べものにならなかった。Denny が文章で描写していたように、お金と Netflix、ゲーム、食べ物さえあれば、彼はあらゆる技術的問題を片づけられるのだ。
迷い
宜蘭に行ってからしばらくすると、Denny は退職を決めた。フロントエンドを担当する人は僕一人になり、チームに入ってからもある程度時間が経っていたので、自然と昇給の話が出た。僕は悩みながら Denny に「会社にはすごく助けられたと思う」と話したのを覚えている。すると Denny はこう答えた。「会社に感謝しているのはすごくいいことだ。でも、僕たちが会社に何か借りを作っているわけじゃない。負い目を感じる必要はない」。この言葉には本当に救われた。
Denny が退職するとき、僕に「フェルマーの最終定理」という本をくれた。これは数学書ではなく、数々の数学者がフェルマーの最終定理を追い求める過程を紹介した本だ。僕はこの本をとても楽しく読んだ。詳しくは別の記事にある。
僕は実際の用途がない数学理論だ。数学の世界を離れれば、世界全体を少しも居心地よくはしない。だが、だから何だというのか。解答を追い求めるのは、それ自体の欲望によるものにすぎない。
これが、僕の中で最も印象に残っている一節だ。
本当に不思議だと思う。ある瞬間に下した決断が、その後の人生にどう影響するのかなんて、誰にもわからない。もし Sudo での経験がなかったら、当時フロントエンドではかなり先進的だったさまざまな発展を、僕はここまで積み上げられなかったかもしれない。
ほとんど何も持っていない状態の自分を受け入れてくれる会社があり、受け入れてくれる同僚たちがいることが、どれほど貴重なことか。今になってようやくわかる。確かに、会社は本当に素晴らしく、僕にお金を出して講座を受けさせてくれた。でも、僕がここで生み出したものがゼロだったわけでもない。今考えると、以前に昇給の機会を断ってしまったのは本当に愚かだった。
拡張期と離脱
その後、なぜか会社にはどんどん人が増えていった。当時の僕には正直よくわからなかったし、ある機能のためにみんなで頑張って開発する、あの空気が徐々に消えていくのを感じていた。開発チーム全体に落ち着かない雰囲気も漂っていた。
その頃、突然たくさんのインターンが入ってきた。僕は少し怖かった。人見知りな性格もあるし、そもそも会社が何をしたいのかまったく掴めていなかったし、会社に入るときに抱いていた期待もどんどん低くなっていた。初期メンバーでもない人や、エンジニアリングチーム以外の人が話しかけてくることさえ怖く感じるようになった。今振り返ると、コンサルティングという仕事も想像ほど簡単ではない。彼らがエンジニアと積極的に関わり、このエコシステムを理解しようとする姿勢は、実はとても貴重なことだ。拡張が良いことだとは思わなくても、他人とのコミュニケーションを避けるのは自分に何の得にもならないし、むしろ多くの機会を逃すことにもなりうる。
あとがき
僕は単純に面白いと思って、当時はまだデザインインターンだった Bleeki と一緒に、このオフィスで起きた小さな出来事を記録しておいた。あの半完成の Blog を作っておいて本当によかったと思うし、Bleeki の生き生きとしたイラストも相まって、今でも残っているのはありがたい。外から見ればつまらなく見えるかもしれないが、僕にとってはどれも大切な思い出だ。創業者たちとネットカフェで肉骨茶のカップ麺を食べた経験なんて、そう簡単に自分で味わえるものじゃない。
Sudo に対しては、実はかなり複雑な感情がある。一つには、なぜあの状態で今日まで来たのか不思議でならないこと。プラットフォームはまだ素朴だったけれど、改善の余地は十分にあった。一つには、やっぱり人間が一番ややこしい存在なんだな、というため息だ。
サービス終了後、僕も次の仕事を探し始めた。印象深かったのは、前職が Sudo だと言うと、たくさんの人が創業者を知っていたことだ。今思うと、人脈は本当に大事だ。
会社が大きくなれば、互いに信頼できる仲間を見つけるのは難しい。僕は運よく Sudo にいられて、強い RD チームと一緒に成長し、いい同僚たちと刺激的な20代前半を過ごせた。
長い時間が経ったように感じるが、実際にはたった一年半ほどだ。僕は簡単なページしか書けない新人から、React、Redux、Webpack を使える新人フロントエンドになった。当時はまだ多くの技術が発展途上で、babel なども比較的新しい概念だった。そうしたものをいち早く学べたことは、僕にとってかなり大きかった。
こうして今まで歩いてきた。Sudo は今でも、僕にとって大切で忘れがたい旅の一つだ。ここに記録を残しておく。少し雑然として見えるかもしれないが。それでも、僕自身に、そしてみんなに感謝している。
関連記事
- Sudo インターンの旅(1)2015–7 から 2016–10 までの1年以上のあいだ、僕は大学2年の下半期から最初のインターン — Sudo を始めた。その頃ちょうど Sudo はできてまだ間もなく、公式サイトもほぼ整っていたが、まだ絶えずイテレーションを重ねている段階で、参加時の人数もおおよそ 13、14 人ほどだった。
- あるベテラン実習生の告白今日はふざけずに、少し真面目な話をしよう。Sudo に来てちょうど1年。1年前に AppWorks に足を踏み入れた自分を振り返ると、ずいぶん遠くまで来た気がする——あるベテラン実習生の告白。
- 番外編 - Sudo 猛男プランク式講座Sudo の仕事終わりの日常番外編――RD リーダーが仕掛けたプランク対決大会。筋肉が発達しているほどコードを書く力も高いのか。その答えは最後に明かされる。
- 職場に踏み入る第二歩Sudo 生存ガイドに続き、今回は第二歩と第三歩を一気に放出する――悪い姑のような「Sudo 姉さん」の攻撃をどう受け止めるか、そして Co-founder と一緒にネットカフェで遊ぶ職場の日常だ。