2025年の振り返り
2025年は色々ありすぎた年だった。人生が進みすぎた。
学業
3月に筑波大学を卒業した。2019年に入学して2回留年して、やっと卒業できた。
自分は昔から本当に勉強ができなくて、高校生の時は大して頭のよくない学校で学年でビリから5番目くらいだったから、6年かかったとはいえ割とまともな大学をちゃんと卒業できたってのは本当に嬉しい。
卒論の出来は本当に悪くて「えっこれでいいの?」ってくらい酷かった。LadybirdブラウザのJavaScript処理系であるLibJSに、可能な限りオーバーヘッドが少なくなるようにGCの動作をトレースするinstrumentationを実装して性能を評価する、みたいなやつをやった。これは実際にはJava向けの既存の手法をほぼそのまま実装しただけのやつなので研究としては普通にめっちゃしょぼかったし、性能評価も「それはそうですよね」という感じだった。
ただ、他の人のやつを見たら学部の卒論っていうのはこのくらいでも許されるんだなって思った。自分のが良い方ってことはないけど、あまりにひどいって程でもなかった。このために論文を真剣に読んだり、研究としての体を整えたり、発表の練習を研究室の先生たちの前でやったりできたのは良い経験だったかも。
また、大学の最後の2年間くらいは、以前に増してコンピュータのことが大好きになってしまっていた。プログラミングっていうかコンピュータのことを考えたりすることが好きになっていた。たくさん勉強していて、先生とか後輩とかとたくさんコンピュータの話をして、あの時間は本当に楽しかった。しばらくは、学ぶ専用の場所でたくさん時間をかけて勉強するってことはないだろうから、貴重な時間だったと思う。最後まで成績は悪かったんだけども。
詳しくは 筑波大学情報学群情報科学類を卒業した の方に書いたので興味があればそっちを読んでほしい。
仕事
15歳の時にエンジニアとして働き始めたからもうキャリアで言うと9年目?なんだけど、やっと自信を持って新卒一年目と名乗れる。キラキラ。
Ubie
今年が始まった時はまだUbieで働いていて、歴史的な理由から二つに分かれていたNext.jsのアプリケーションを一つに統合するっていう仕事をしていた。優秀な業務委託のメンバーと二人でたくさんコードを書いていて、かなりしんどかったけど、なんとかやり切った。多分割とみんなが触るコードベースだったと思うからやり切れてよかったと思う。
夏前くらいからは、また別の大きなリアーキテクチャのプロジェクトに入って色々と頑張っていた。こっちの方は完遂する前に転職してしまったからやり切ることはできなかった。この仕事は会社にとってかなり重要なものだったと思うから、どうなったのか今でも気がかりだし、中途半端なところでやめてしまったことは本当に申し訳なく思っている。
転職
夏、7月にサンフランシスコにあるBunのオフィスに急に呼ばれた。英語が全く喋れないからGoogle翻訳で話しながらJSCの開発をしていたら、なぜかオファーが来たので転職した。
その時働いていたUbieのことは本当に好きだったから、特に転職活動とかはしてなかったんだけど前々から「JavaScriptを開発する仕事に限って転職する」って決めていた。だからその場で「正確な時期はまだわからないけど、回答は100%Yesだよ」って(Google翻訳を使って)伝えた。
これは自分の人生にとって本当に大きな出来事だった。JavaScriptを作る仕事っていうのは自分にとっては本当にやりたいことだったから、少ししょぼいかもしれないけど、夢が叶った瞬間と言っても過言ではなかったと思う。
この辺の経緯は Bunに入社した に書いたので興味がある人はそっちを読んでほしい。
でも実はこの転職は全てがポジティブだったわけではなかった。自分はカンファレンスで技術について抽象的な話をしたりキャリアについてドヤ顔で話したりして、「割と優秀なエンジニアですよ〜」みたいなポーズをしていることがあるけど、Ubieでは大して活躍してなかった。というかむしろ自分が事業に貢献できていないからこそ自分ができる会社への貢献の一つとして「Ubieには優秀なエンジニアがいる!」って思ってもらいたくて、そのフックになろうと対外的な活動を頑張っていたところもある。
しかし実際には単にコンピュータやJavaScriptのことが好きだったってだけで、エンジニアとして自分が優秀だったことなんてほとんどなかったと思う。エンジニアとしては自分はUbieの他のメンバーと比べて明らかに劣っていた。だから今回の転職は、技術を作るエンジニアっていう職業への挑戦であると同時に、事業を作るエンジニアっていう職業からの逃げだった。@maguhiroとか、@hokacchaとか、@yukukotaniとかにはずっと勝てないんだと思う。劣等感があると言うわけでもないんだけど、単に事実としてそう思う。
昔から自分は理性ではイケてる事業をリードするCTOみたいな人になりたいって思ってたけど、本能的にはそんなことには全く興味がなく「パソコンって気持ちいですわ〜〜〜」っていう気持ちしかなくて、それに抗うことができないやつなんだなって転職する時はずっと考えてた。まあパソコンが気持ち良いからそれはそれでいいんだけど。
Bun
Bunに入ったあとは本当にずっと「パソコン!!」って感じだった。仕事の難しさが大きく変わった。Ubieにいた頃は「なにを(なぜ)作るか」とか「どういう段取りで作るか」とか、まああるいは「何をつくらないか」みたいなことを考えるのが難しいことだった。
でもBunに入ってからはコンピュータが純粋に難しい。JSCの最適化、JSエンジンとランタイムのインテグレーション、OS特有の動作の調査、再現ケースが存在しないがユーザーの手元では頻発しているらしいSegmentation Faultの修正とかなんかそのへんのことをやっていた。
わかりやすいので言えば非同期スタックトレースのサポートなんかをやった。めっちゃ大変なSegmentation Faultの修正としては、例えば https://github.com/oven-sh/bun/pull/22902 なんかは修正自体はたいしたことないけど2週間くらいかかった。システムプログラミングにおいては自分はかなりビギナーなので今まで以上に毎日勉強の連続である。
労働環境としては、自分以外のメンバーはほとんどサンフランシスコに住んでいてほぼ毎日出社していて、日本から一人リモートで働くというのは少しハードだった。基本的にリモートで働くことが考慮されていないので情報を得るのが難しいし、相手もリモートで働いているメンバーとうまく働く方法を知らない。直接の上司だったJarredは生活リズムがおかしくて日本時間の日中に連絡してもすぐ返事がくるため、時差はそこまで問題にはならなかったが、リモートワークは純粋に難しい。同僚は隣にいる方がよい。
買収
そして今月、BunがAnthropicに買収された。詳しくは公式のアナウンスを見てほしい。どこまで言っていいのかよくわからないのであんまりいえないが、あれは従業員にとってはなかなかストレスフルな体験ではあった(何か特別嫌なことがあったわけではなく、急な環境の変化というのはなんであれストレスフル)。僕は今なんとかAnthropicで働いているけど、まだ今後どうなっていくのかは全然わからない。一応誤解のないように言っておくと、最終的にはポジティブな気持ちではある。過程がややストレスフルで、今後の不安が大きいっていうだけ。
所属はClaude Codeチームなので自分が毎日使っているツールを作ることができると言うことで、それは素直に嬉しいし楽しい。一番好きなプログラミング言語の開発と一番よく使っているツールの開発ができる環境というのはエンジニアとしてはかなり幸せだと思う。
そしてAnthropicのエンジニアの給与レンジを適当に調べればわかると思うけど、給料はマジで上がった。どんどん自分の身の丈に合わない給料と所属になっていく。人生のボーナスタイムだと思っている。なんか、マジでJavaScript気持ち良い〜〜って思ってすべてをサボってJSC速くしたり壊したりしてただけだったのにスーパーAIカンパニーに入社するっていう再現性が一ミリもないキャリアを歩み始めてしまった。
英語
なんかOSSとかをたくさんやってるからかよく勘違いされるんだけど、自分は全く英語が喋れない。マジで喋れない。というか大学受験を完全にスキップしたせいで学部卒の標準的な日本人と比べたら読み書きもできないと思う。
特に今年の9月に後述する本格的な勉強を始めるまでは、本当に全く喋れなかった。CEFR基準でいうとA2未満、低すぎて測定不能っていうレベルだった。アメリカ人を目の前にしたら「Hello, I'm Sosuke」しかいえないレベル。
そもそも自分は「英語で仕事がしたい!」とか「海外に住みたい!」という気持ちは全くなくて、日本で適当に普通に過ごせるならそれが一番良いと思っていた。でもなぜか日本人が一人もいないサンフランシスコのスタートアップに入っちゃったから、仕方なく英語の勉強を始めることにした。サイボウズの平野さんが前のブログに書いていたプログリットというコーチングのサービスが良さそうだったから、それを始めた。半年で100万円とかするのでめっちゃ高い。そして一日に3時間英語の勉強をすることになるので超ハード。お金は全部会社が出してくれたけど、努力は自分がしなければならない。
しかし効果はまあまあ高くて、7月の出張の時は全ての会話をGoogle翻訳でやってたけど、12月の出張では静かな空間で、相手がめちゃくちゃ容赦してくれた状態での簡単な1 on 1くらいだったら翻訳アプリを使わずにできた。自分ではあんまり上達してるって思っていなかったけど、改めて試験を受けたらCEFR基準ではA1 High(あと1点でB1 Lowだったので悔しい)になっていたし、最近の出張の時に同僚からは「前に比べると上達している」って言われた(聞き取れてればだけど)。というか普通に技術的な雑談がちょっとはできるようになっててびっくりした。流石にプロにコーチングしてもらいながら毎日3時間やれば多少は伸びるんだなあと思ってる。
でも当然このくらいじゃ今の会社でやっていくにはマジで全然足りなくて、今後もずっとやり続けなくてはならない。例えばスライドに情報があんまりないプレゼンを聞くのはかなり難しくて3割も理解できなかったと思うし、パネルディスカッションを聞くのとかチームランチとかは本当に何言ってるかわからなかった。
プログリットの半年プランが3月に終わるけど、継続しようと思う。本当にきついけど、オフィスで英語ができない方がきつい。
登壇
いくつかのカンファレンスで登壇させていただいた。
まず5月にTSKaigiで「TypeScriptとは何であって何でなく、誰のもので、どこへ向かうのか」という話をした。これはちょっとでかい話なんだけど、TypeScriptというプログラミング言語の特異性と、その性質を踏まえたうえでTypeScriptは今どこにいるのかっていう話の現時点でのスナップショットの話がしたかった。会心の出来ってほどではなかったけど、やりたい話はできたかなと思う。
次は11月にYAPC::Fukuokaで「一人で大規模OSSに立ち向かうには」という話をした。これはもともと maguro.dev という別の勉強会で15分のトークとして話す予定だったんだけど、自分が(おそらく)食中毒で救急搬送されてしまって話せなかったものを、30分に引き延ばしたバージョン。WebKit/JSC、再現性のあるアプローチを頑張って抽出して話した。概ねポジティブなフィードバックをたくさんもらうことができたのでよかった。ただ「普通に厳しいこと言ってるし、絶望した人もいるかもねw」みたいなフィードバックももらった。余談だけど、これでベストスピーカー賞というのをもらって、美味い明太子や肉、Switch2などをいただいた。ありがとうございます。
最後に同じく11月にJSConf JPで「JavaScriptにおけるasync/await呼び出しのスタックトレースの困難と実装」という話をした。これは自分のBunでの最初の仕事の話で、前述の7月にBunのオフィスに呼び出された時にオフィスでやっていたのがまさにこの作業。TSkaigiとYAPC::Fukuokaでの話がかなり抽象的だったのに対して、ここではかなり具体的な実装について話した。JavaScriptエンジンのJIT tierがどうとか概念的な話をしてくれる日本の人は割といるけど、エンジンの具体的な実装までやっている日本の人はかなり少ないので、こういう話がここでできたのはよかったと思う。でも駆け足で話すぎて時間が少し余ってしまったので、発表の仕方については結構反省している。
余談だけど、YAPC::Fukuokaの次の日がJSConf JP 2025だったからYAPCの懇親会には参加せずに急いで飛行機に乗って東京に戻った。マジでしんどかった。ちなみにその後にしっかりインフルエンザになって丸一週間くらい40度近い熱が出続けていた。
生活
6年半住んだつくばを離れて千葉県千葉市美浜区に引っ越した。今は東京駅まで電車で30分くらいなので、暇な人は遊んでくれ。
つくば市は本当に良い場所だったんだけど、あそこが良い場所なのは人間や大学ありきではあるから、卒業すると色々と事情が変わってくる。まあ大学のキャンパスの近くにアパートを借りていたから駅からはすごく遠くて、それは単純に不便だった。
サンフランシスコに移住するかどうかみたいな話があったけど、しばらくは日本に住み続けることになると思う。一応今の会社は東京にオフィスがあるし。でも出張した時にやっぱり近くに同僚がいるのは楽しいし仕事が進むなあと思ったのでサンフランシスコに行きたい気持ちはある。
OSS
最後に一応言及しておくけどPrettierはもうほとんどやっていない。英語学習を始めてからは時間がほとんどないというのと給料が上がったのでOpenCollectiveからのお金がなくてもある程度余裕を持って暮らせるようになったためである。とりあえず信頼できるもう一人のメンテナーが積極的にメンテナンスしてくれているのでPrettierプロジェクト自体は継続されている。
個人的には、BiomeやOxc Formatterがもっと成熟しPrettierがその役目を終える日も近いのではないかと思っているしそうあるべきだとも思っている。
終わりに
ということで、本当に人生が大きく変わってしまった一年だった。自分はただ受動的でいただけなのに、立場や待遇が大きく変わってしまった。それらを手放すのも勿体無いので、来年は立場や待遇に追いつけるように努力を重ねなければいけない。とりあえず目の前の仕事をちゃんとこなすこと、英語の学習を継続することに集中することになる。
多分勉強会とかカンファレンスにはあんまり行かなくなると思う。Ubieのときとは違って採用やプレゼンスなどの理由で自分が目立つ理由がなくなったわけだし。でも仕事では孤独になりがちだと思うので、友人の皆さんには気軽に誘って欲しいし、こちらからも誘うと思うので嫌でなければ適度に応じて欲しい。