Tech Lead
xyx
プロフィール:三次元再構築の研究で京都大学で修士号取得後、Google社にソフトウェアエンジニアとして就職。Google MapsのUGC機能の設計に、Androidクライアントとserver-side両面から携わる。その後の2019年、ふたたびVRの夢を追うためクラスターにジョインし、Unityクライアント開発を担当。現在はサービス全体のtech leadとしてアーキテクチャ設計などを行っている。
最初に触れた言語はJavaで(はじめは理解できずに写経して遊んでいましたが)、中高生のころには8bitマイコンのアセンブリを書いていたような覚えがあります。大学の頃にD, C++, JavaScript, Python, Scheme, Haskell, Erlangあたりに触れ、一通りのパラダイムに触れることができたと思います。前職ではJava、クラスターの初期にはC# (Unity)を主に使ってました。
とはいえ、最近仕事では自然言語を書く量のほうが圧倒的に多いですね。
現在Linuxはサーバーや組み込み系など比較的インフラに近い場所で使われていますが、そういった用途ではCより安全な言語で書かれた新たなkernelが使われていると予想しています。とはいえ、あちこちのエミュレーター上で骨董品としてひっそり動いてるとは思いますが…。POSIXが残るか否かは、そもそもOSとは何であるべきかという話になってさらに面白いんですが、記事に収まらなさそうなのでやめておきます。
長年Microsoft製品を使ってます。10年前はNatural Ergonomic Keyboardを使用していましたが、ここ5年くらい使っているのはSculpt Ergonomicシリーズです。本体とテンキーが分離していてそれぞれが無線接続なので、本体だけでも使えるのが魅力です。曲線の多いデザインも気に入ってますね、単純に手が疲れにくいのと、おしゃれなので。
いいな、と思っているのは”Go”ですね。言語仕様に思わせぶりなところがなくて、気合入れてすごく抽象的なコードを書こうとして、”うまくいかないじゃん!”とがっかりする徒労が少ないです。仕事では実はほとんど書いていないんですが、個人としてよく使います。
人間ひとりでは”到達不可能な複雑なシステム”が実際に動作してるのを見ることですね。システムに対する”畏怖”とそれを自分たちが作ったという”達成感・全能感”。
ソフトウェアのモジュールは抽象度・直交性を高く保つことで、同じコード量で実現できることが線形ではなく、exponentialに増えていきます。とはいえ、抽象度が高すぎると変化に対して脆弱になるので、「未来を予見して効率よく作ること」と「未知に備えて愚直に作ること」のバランスをとる部分を実務的には醍醐味と感じています。
正直なところ、技術書のおすすめはないです。
新しいことを学ぶときに技術書は効率的です。とはいえ、発想のもととなる直観はそれぞれの人が独自に構築した技術体系によっていて、それは経験と知識から、自分で作っていくしかないと思ってます。その過程・体系が人によって多様であるからこそチームワークに価値があると信じています。
なので「これを読めばいい」というものはなくて、読みたいものを読むしかないと思います。私は技術史に興味があるからか、ソフトウェアとハードウェアの垣根を超えた抽象化を考えることが多いです。ねじみたいな規格と、コントラクトってほぼ同じだよね、みたいな。そういう知識の元を得るうえでは非常にWikipediaの恩恵を受けています。
Visual Studio Codeを使う機会が多いです。ソフトウェアエンジニアとしては少し珍しいかもしれませんが、GUIがわりと好きで、大き目のカーソル移動にはキーボードショートカットではなくマウスを使っています。なんというか、覚えるのが嫌なんですね。もっとUIが人間をもてなしてほしいと常々思っています。なので、VSCodeぐらいのとっつきやすさが心地よくて、VSCodeのRemote機能の設計思想が未来的で好きというのも理由の一つです。
夜型ですが、朝起きるのが苦痛なだけで、重要な仕事があれば99%は起きれます。
目が覚めたら、まずはベッドでごろごろしつつスマホのカレンダーを確認します。まだ9時で用事が数時間後だったりすると二度寝します。結果的に、平日は11~12時頃に活動開始することが多いです。
夜は眠くなったら寝るんですが、次の日早朝(?)に予定があるのに眠くならないときが一番大変ですね。その場合は翌日に昼寝できる時間があればして、ないときは頑張ってますね…。
COVID-19の影響でフルリモートの時期が続いたとき、人生初の腰痛を経験しました。「歳のせい」という可能性を受け入れたくなかったので、まずベッド(コアラマットレス)と椅子(Contessa II)に投資しました。それ以降は平和な日々を過ごしています。
ディスプレイは、27inchの4Kモニターを2枚を5年ほど前から使ってます。情報量を増やして効率化というよりは、背景に設定した自然の風景画像を見るためのスペース的余裕が欲しいと思ってピクセル数を多めにしています。ささやかですが、デジタルな優雅さ、みたいなことを心がけています。
大学時代からVRに興味を持っていたのもあり、clusterの存在は2017年から知っていました。とはいえ、きっかけになったのは前職在籍中にとあるVRソーシャルサービスにハマったことです。
人類は最終的に計算機の中に住むようになる、その流れの中でVRへの生活空間の移行は重要なステップである、と前々から思ってはいました。その重大なステップがここ数年で十分なレベルで実現できるな、と確信できたのが大きいです。
きっかけとなった別サービスではなくクラスターを選んだのは、人類を本気で変えようとする意志をクラスターから感じたからです。
Googleを辞めて転職したからには、clusterをユーザー10億人を超えるサービスにしたいですね。
Web小説も商業の小説もよく読むんですが、特に好きなジャンルはハードSFです。フィクションってそれぞれ作品世界内の整合性を持ってると思うんですが、ハードSFは基盤が現実の物理と地続きな分、自分が住んでる世界がそうなりうる、という可能性を直接広げてくれてわくわくします。
特に、Greg Egan氏の物語の多くは計算機上に精神をアップロードするのが当たり前になった後の文明を描いていて、登場人物はやりたいことを無限に探求しつつ、宇宙規模の危機に科学的に立ち向かったりしています。私の世界観の3%ぐらいはこの作家によって形作られていると思います。
興味を持った人は、まず「順列都市」を読んでみるとよいと思います。1994年の出版当時にはかなり奇異な未来の話に感じられたと想像しますが、現代では半分ぐらいは時代が追い付いていると思うので。