2023年にやったこと

今年で30歳、社会人9年目、在米5年目になった。今年は

  • 趣味でRJITを作り、仕事でYJITを超高速化した
  • 初めて論文を国際会議に投稿し、採択された
  • 子供とプリスクールに行き始めた

という感じの一年だった。

仕事

大変ありがたいことに、自分が今一番興味のある仕事であるYJITの高速化に集中できた一年だった。 いろいろやったが、代表作は以下の三つかなと思う。

どれもベンチマークがかなり速くなった。 特に二つ目と三つ目は、自分で発案してかつ主に僕が重要性を訴えていた奴で、 それらで大きな成果が出たときはかなり達成感があった。 単独のPRでRailsベンチが7%速くなった時はこりゃ昇給するわと思ったが、実際めちゃくちゃ昇給した。

ベンチマークも速くしている一方、僕は本番アプリの最適化を主戦場にしていて、 最適化のヒントになるメトリクスをひたすら追加し、 毎週のようにRuby masterを本番にデプロイし、効果を計測することを繰り返した。 Ruby 3.2ではYJITによる高速化が10%程度だったのが、 Ruby 3.3では弊社最大サイズのアプリ(モノリス)と最大トラフィックのアプリ(StoreFront Renderer)がどちらも YJITで17-18%くらい高速化する状態になった。 チーム全体での成果であるが、上記の変更は目に見えて効果があった。

論文

YJITに関する論文を業務で書き、MPLRという査読付きカンファレンスで採択された。

僕は去年修士を卒業したばかりで、在学中に論文形式のものは何本も書いたのだが、 そもそも修士論文なしで卒業するプログラムなこともあり、論文をどこかに投稿するようなことはなかった。 チーム内にYJITの作者がいるため僕はファーストオーサーではなかったが、 執筆的にも論文のトピック的にもそこそこ貢献したため、セカンドオーサーであった。 学士でも論文を投稿することはなかったので、これが初めての論文投稿経験となった。

修士で取った授業のうち一つは研究の仕方そのものや論文の書き方を学ぶためのものだったので、 論文の執筆には少なからず興味があったし、個人の時間で書くほどの余裕はなかったので、業務で経験できて良かった。 ポルトガルでのカンファレンスだったが、学部時代にお世話になった先生にばったり会ってご挨拶できたのも良かった。

子供

子供が三歳になり、プリスクールに行き始めた。 三歳だとオムツが外れてないといけないプリスクールがほとんどで、 娘はまだオムツをしていることにより選択肢が限られているのと、 あと単純に費用が安いので、Co-Opのプリスクールを選んだ。 Co-Opというのは親参加型の奴のことで、当番制でお手伝いをすることになっている。

月に一回有給を取って子供と一緒にプリスクールに登園してそのジョブをやっている。 あと不定期に資金調達のためのイベントが行われいて、その手伝いもやっているし、 休日の午前を使って大掃除するのも何回かやっている。 プリスクールに行き始めれば子供を預けられる時間ができると最初は考えていたが、 子供が一人で登園するのを嫌がるため常に妻か僕が一緒に行っていて、 今のところ育児の負担はむしろ増えている。

資産

僕のポートフォリオはThree-fund portfolioという奴で、 資産のほとんどをUS株72%、(US以外)全世界株18%、US債券10%で持つ状態を3年くらい維持している。 US株以外の資産は去年の下がりをようやく取り戻したくらいの状態だが、US株が好調なのでトータルではものすごくプラスになっている。 巷ではいわゆるオルカンが流行っているが、 これもUS株を60%持つインデックスなので良い利益が出るんじゃないだろうか。

USでは総資産が$2M (2億8000万円) 以上あるとグリーンカードを放棄する時にExit Taxという税金が取られることになっていて、 今はその半分くらいまで進捗したのだが、 僕は全資産に対して何割か課税されるという勘違いをしていたのでこれまで結構ビビっており、 $2Mに達する前に日本に本帰国するのを検討していた。 よく調べてみると、実際には資産ではなく未確定のキャピタルゲインに対して課税されるということだった。 自分が覚悟していたほどは課税されなそうなので、帰国は完全に家族の都合だけ見て決めればいいなと思った。

散財

テスラ

ここ数年値上げを続けていたテスラの値段が、電気自動車の税制優遇の関係で今年何度か下がった。 一番最初に大きく下げた直後に、中古の2015 Mazda 3から新車の2023 Tesla Model 3 RWD ($43,990) に買い替えた。 僕は自動運転が欲しくて買っていて、普段は無課金のAutopilotを酷使し、連休中の現在は一時的にFull Self-Driving (月額$199) を試しているのだが、どちらも便利だし、乗り心地も良い。 妻も満足しているようでよかった。

歯科矯正

アメリカのママ友に歯並びの良い人が多いようで、妻が歯科矯正をやり始めた。 僕はあまり興味はなかったのだが、妻がやって欲しいと言っていたのと、 歯並びが良い方が歯磨きがしやすくなるという話に説得され、僕もやり始めた。 一人 $5,000 以上かかっていて高いし痛いのだが、終わったらどうなるのかは楽しみである。

登壇

以下の2回登壇した。 今年は社会人になってから最も登壇数が少ない一年だった。 リモート登壇はもう少し自分から応募するなどしても良かった気がするが、 物理参加枠はRuby Infraチームでニューヨークに集まった奴と、YJIT論文でポルトガルに行っていた分で家族に負担をかけたので、 これが限界と思われる。

ポッドキャストでは初めてRemote Rubyに出させてもらった。 同僚が結構出ているシリーズなので、入社したころに結構聴いたのだが、自分も出れて良かった。

ブログ

今年は日本語では9記事ほど書いた。 書きたいネタを思いついた時に衝動的に書いていたのだが、 おおむね例年くらいのペースで投稿し、ブクマもそこそこ集まった。 どれも楽しく書けたので、そういう感じで続けたい。

Hacker News上でアクティブな同僚が多いので僕もHacker Newsのフロントページに乗るかどうかということを気にするようになったが、 英語で投稿したものは2回ほどランクインし、英語圏でランキングを上げる経験も積めるようになってきた。

OSS活動

RJIT

今年の新作はRJITだけである。 最初いくつかのベンチマークでYJITを抜いてしまった結果、 YJITを仕事にしている都合これはconflict of interestになり得ると言われたり、 RJITの話ばかりしているのがお気に召さなかったのかTwitterでリムーブされたりしたため、 その辺を丸く収めるべく、出した直後は意識的に開発速度を落としていた。 とはいえ、やりたいことはいろいろあるプロジェクトなので、来年もほどほどのペースでいろいろやれたらいいなと思う。

RJITとYJITを両方開発していた関係で、 今年は過去1年間のコミット数がnobuさんを超えた瞬間もあったのだが、 上記のRJITの件と、論文執筆やリリース前のバグ修正で失速し、 Ruby 3.3もnobuさんの方がコミットが多かった。 nobuさんはすごい。

sqldef, xremap

去年に引き続き、 個人でやってるOSSではsqldefxremapが一番盛り上がっている。

sqldefはmssqldefで@odzさん、psqldefで@hokacchaさんが新たにメンテナに就任し、 大変心強い。メンテナ5人体制になったので、 リポジトリも個人アカウント下からsqldef orgに移管しsqldef/sqldefとなった。

xremapもスターが☆1,000を超えた。mrubyで書いていたころはhanachinさんもメンテナだったが、 Rustに書き換えてからずっと僕だけでメンテしている。 普段のissueのやり取りでも、sqldefはGoだから皆書いてくれるが、xremapはRustなので書けないと言われることが多い。 正直sqldefもRustで書き直してenumやパターンマッチを使ったりしたいのだが、 人類のほとんどはRustを書きたがらないため、sqldefの方はGoのままにしておくか…という気持ちである。 「は? Rust書くの簡単やろがい」と思った人には、xremapの共同メンテナとして無双していただければと思う。

2024年は

今年はYJITが大幅に速くなるアイデアを運良く複数思いついたが、 来年はそれに再現性を持たせられるようにして、 誰も想像していなかったような方法でYJITを無限に速くし、無限にお金を稼ぎたいと思う。

過去ログ