30代からプログラマー。3年でRubyKaigi登壇。塩井美咲の「驚くほど運が悪い」人生はなぜ急変したのか
-
執筆 : 鈴木陸夫
- /
-
写真 : 藤原 慶
- /
-
編集 : 小池真幸
- /
「驚くほど運が悪かった」人生から、30代からプログラマーになり、たった3年でRubyKaigi登壇、現在はRubyのコミッターとして国際的に活躍する塩井美咲さん。一見すると突然開けたかのようで、その実一筋縄ではない塩井さんの半生を紐解く。

プログラミング言語Rubyのコミッターとして国際的に活躍する塩井美咲さん。プログラマーになったのは30歳になってからと遅く、そこからわずか数年で国際カンファレンス「RubyKaigi」の常連に。プログラマーとして過去二度の転職は、いずれもRubyコミュニティと深く関係している。
「それまでの人生は驚くほど運が悪かった。RubyとRubyコミュニティとの出会い以降、急に運が良くなってしまいました」
そう語る彼女の人生と向き合う態度は「運任せ」とは程遠く、実態はエクストリームな努力家だ。一方で人並外れて「運の悪い人生」だったというのは、おそらく誰も否定できない事実。プログラマーになる以前の半生をまとめてもらった資料から一部抜粋しただけでもこれだ。
- 1985年、高知県の海辺の小さな町に生まれる
- 小学校2年生の頃、祖父の経営する会社が倒産。その影響を受け両親、姉、祖母と共に地縁のない鹿児島県へ転居
- 中学校2年生の頃、人間関係を維持する体力が切れて不登校になる
- 通信制高校へ進学。学業の傍らフルタイムでアルバイトに従事する。海外留学を夢見るもののアルバイト以外の手段で自力で資金を得ることができず諦める
- 高校卒業後、アルバイト先などで出会う身近な同年代が早々と結婚し家庭を持とうとする中、一生に一度くらいはこの街を出て暮らしたいと思い立つ。学費・引越し代・当面の生活費を貯めて21歳の頃福岡の専門学校へ進学
- 専門学校1年生の頃、身近に経済上の問題が発生。その影響を受けて専門学校2年次に納入する分の学費を失う
- なんとか都合がついて専門学校2年生に進級するも同年に学校が倒産。奨学金が打ち切られる。生活のためにコールセンターで派遣社員として働き始める
- 24歳の頃、所属先の派遣会社が勤務先のコールセンターから撤退することとなり、雇い止めとなる。それを機会にずっと憧れていた東京で暮らしたいと思い立ち引越し先の検討のために東京へ向かうも、住居の目処が立った日の午後に東日本大震災が発生し上京を断念。福岡で再びコールセンターで派遣社員として働き始める
- 28歳の頃、20代の終わりを目前に「転職するならいまが最後のチャンスかも」と事務職へのキャリアチェンジを目指して公共職業訓練で簿記会計を学ぶ
- 29歳の頃、建設会社の総務部門で契約社員として働き始める。正社員を目指していたがその年末に会社の経営体制が大きく変わり、人員整理の対象になる可能性が頭をよぎってついに心が折れる
- 翌年発生した熊本地震をきっかけに転職活動を始めるが経歴の弱さおよび年齢のために難航。手に職をつけるためにプログラマーを志す
自らの意思で選び取ったスキルが一瞬で陳腐化するのはこの業界の常だし、転職した先の会社がある日突然倒産するリスクだってゼロとは言えない。キャリアに、そして人生に「運」の要素が絡んでくることは間違いない。
では、運がいいとはどういうことなのか。運は自らの手で引き寄せることができるのか。塩井さんの人生はなぜこんなにも突然開けたのだろうか。
プロフィール
- 塩井美咲株式会社エス・エム・エス プロダクト開発部 プログラマー人生右往左往のち2018年からプログラマーとしてのキャリアを開始。2021年から本年に至るまでプログラミング言語Rubyの国際カンファレンスRubyKaigi登壇。Rubyコミッター。地域RubyコミュニティAsakusa.rbメンバー。
※記載されているサービス名称や業務内容は、取材当時の情報にもとづいています。
どうせなら、ちょっとでも世の中がよくなる仕事を
事前にいただいた半生についてのおまとめ、ありがとうございました。これでもかというくらいに強すぎるエピソードが満載で、失礼ですが、ある意味羨ましいなと思ってしまいました。
以前にも自分の人生のお話をする機会があって。そのときに聞いてくださった角谷さん(日本Rubyの会理事の角谷信太郎さん)は「朝ドラにしてもいい」っておっしゃってました。
どこからお話を伺えばいいかすごく難しいんですが、一旦、プログラミングの世界に入っていくところからお願いしたいなと。RubyおよびRubyコミュニティ、プログラミングとの出会いの前後では「人生が大きく変わった」と言ってしまっていいんでしょうか?
そうだと思います。プログラミングを勉強しようと思って最初にたまたま着手したのがRubyだったんですが、そこから突然運が良くなってしまって。なんか怪しい話みたいですけど。
「運が悪い」という表現も納得のご経験をされてますもんね。
何かに対して一生懸命になろうとすると、そのたびに周りの状況が変わってそれを続けることが難しくなってしまう、というのを何度も繰り返してますね。もちろん振り返れば、自分で事態を悪くしてしまうような局面もあったんですが……。


改めてになりますが、2017年にプログラミングに手を出してみようと思われたのは?
当時、私は福岡で契約社員として事務職に従事していました。入社時から正社員を目指して結構頑張っていたんですが、あるとき勤務先の会社の体制が大きく変わる出来事が起こりまして。先行き不透明な状況で、もしいま人員整理が行われたら真っ先に非正規雇用の自分が解雇の対象になるな、って震え上がりました。
当時30歳で、それまで30年くらい自分の人生をどうにかしようと頑張ってはきたものの、またしても難しい状況に直面して心が折れてしまって。とはいえそれでもまだ自分の人生は続いていくので、労働することからは逃れられない。どうせ働かないといけないのであれば、働いたぶんだけちょっとでも世の中がよくなる仕事がしたいと思ったことが、まず前提にあります。
はい、はい。
そんなふうに考えていた次の年に、福岡の隣の熊本県で熊本地震が発生しまして。私が働いていたのは建設系の会社だったので、社員の皆さんはすぐに復旧作業に向かわれました。現場に向かわれた社員の皆さんの仕事は、被災者の人々の生活を支える、まさに社会のための仕事ですよね。
一方で私が何をやっていたかというと、表現が難しいんですけど、総務の仕事って会社の意向と現場の社員さんの間に立つような部分があって。その「会社の意向」の方に対してそもそも自分の中であまり納得がいっていない部分が結構あったんですが、それを社員の方に遵守してもらうことを推進するのが自分の仕事だとしたら、それは少なくとも「ちょっとでも世の中が良くなる仕事」ではないなと思ってしまい。それで転職を考え始めました。
ですから、転職活動をするにあたっては、公共性の高い分野で事業を展開しているベンチャー企業を中心に受けることにした……のですが、その時点での経歴が事務職3年、その前はコールセンター勤務となると、どうしたって効きが弱いと言いますか。
まあ、そうですよね。
特にベンチャーだと、一人ひとりの能力がすごく求められるような現場だと思うので。そういう会社で働くための熱意はあっても、経験やスキルが全然足りていなかったんですよね。結果的に、当時どうしてもここで働きたい、と思っていた会社さんの選考に落ちてしまって。
これは何かしら専門的な技能を身につけて、戦力になることを目指せる状態で転職活動に臨んだ方がいいのではないかと思い、それでWebプログラミングの勉強を始めました。いまはいろんなサービスがインターネット越しに提供されているので、インターネットがつながるところならWebの仕事があるだろうと考えて。


話の腰を折るようですけど、一つ前のところ、「自分のために頑張ることに心が折れてしまったから、ここからは世の中のために働こう」というのがいまいちわからなくて。社会的に成功した人が「欲しいものは手に入れたから、ここからは世の中のために」となるのはわかるんですが、塩井さんのように報われてこなかった人がそう思えるというのは、どういうことなのかなって。
ネガティブに捉えると、一種の「学習性無気力」なのかもしれない……。別の言い方をすると、悟りを開く、みたいな?
自分自身にベクトルを向けて何かを頑張ろうとした結果それが台無しになると、頑張ったぶんものすごくエネルギーをもっていかれるんですよね。実際は何もかも消えてしまうわけではないはずなんですが、こういうことを立て続けに経験すると徒労感が大きくてですね……とはいえ、まだ私は生きているので。そういう人生がその先も続いていくなら、自分のためにエネルギーを使って徒労を続けるより、自分の代わりに世の中にエネルギーを向けたほうがいいんじゃないかって思ったような気がします。
それに加えて、働くっていう行為は毎日の積み重ねなので。たとえば、いまは毎日コードを書くということを仕事にしていますが、書いたコードのぶんだけ、世の中に対して差分が発生しているわけですよね。ということは、無駄にはなっていないし、ひっくり返ることは多分ない。このコードが世の中で価値を出している限りは、自分がやったことは無駄になってないというふうに思えるので。
「ツール以上の何か」としてのRuby
30代にしてゼロからのスタートになるわけですけど、最初は『Progate』で学び始めたと過去記事で読みました。
そうですね。まず触ってみたのは『Progate』。で、ちょうどプログラミングスクールというものが世に出てきて、私の視界にも入ってくるぐらいの時期だったので、思い立って半年のコースに入学をしました。その次の月に福岡の地域RubyコミュニティFukuoka.rbが「福岡Ruby会議02」というカンファレンスを開催したのですが、たまたまそこに参加したのが現在につながるスタート地点という感じです。
学び始めてすぐにカンファレンスに参加するっていうのは、結構ジャンプがあるような気もしたんですが。
いや、どうなんでしょうね。正直、カンファレンスで皆さんがお話しされている内容というのはまったくわかってなくて。なにせ私、そのときは返り値の概念さえよくわかってなかったぐらいなので。Rubyでいうとeachは知っているけどmapはまだ知らない、みたいな。
そのときのキーノートスピーカーのお一人はRubyコミッターの笹田耕一さんで、「Rubyにおけるトレース機構の刷新」というRubyのトレース機構のパフォーマンス改善についてのお話をされていたんですが、そんなRubyKaigiみたいな発表、わかるわけない(笑)
でも、自分のこれまでの人生とはやることが大きく変わって、プログラマーとして生きていくことになるのであれば、できることは全部やらないといけないだろう、と。そう思っての行動だった気がします。


その当時やった「やれることすべて」には他にどんなことが?
プログラミングスクールのカリキュラムとは別に「Rails チュートリアル」っていうすごく有名な教材をやったりとか、いろんな技術書、たとえば『たのしいRuby』だったりいわゆるチェリー本だったり『パーフェクトRuby』だったり、DB設計に関するものとか、Webの仕組みに関するものなんかをわからないなりに読んでみたりとか、ですかね。
やると決めたらとことんやるのは、塩井さんの振る舞いとしてはプログラマーを目指す以前から通じるものですか。
そうかもしれない。進学のためにお金を貯めたり、上京のためにお金を貯めたり、公共職業訓練校の試験のために勉強したり、正社員を目指して全然お給料には反映されないけど期待されている仕事を頑張る、みたいなことですよね。
追い詰められていたから、という部分もあったと思うんですけど、もともと目の前にある一つのことを頑張るしかできない人間なので、目の前にたとえば「転職する」っていう目標ができたらそれをやるっていうことだったんでしょうね。
実際に始めたプログラミングは、その当時どういうものとして感じられていましたか?
基本的には目の前のことで必死だったんですが、本当に福岡Ruby会議02に参加したことが自分にとってはすごく良くて。それがすべての転機になったという感じだったんですよ。
このときのイベントには「もう一度、Rubyと出会う」というテーマが設定されていて、「もう一度」もなにも私としては初めてだったんですけど、登壇されている方々はそれぞれに「自分にとってのRuby」との出会い直しの話をされていました。
中でも島田浩二さんのオープニングトークには衝撃を受けまして。島田さんは、「自分にとってのRubyというのは、”めがねであり、ペンであり、言語である”」とおっしゃっていました。自分に物事を解釈するための視座を与えてくれたり、問題を解くことや考え事を手伝ってくれて、それをうまいこと言うことができるような存在。
それまで、プログラミング言語というのは世の中に価値を提供するためのツールで、同時に自分にとっては新しい職を得るためのツールだと思っていて。もちろんそういう側面もあるんですが、一方でこんなふうな言葉で語られるプログラミング言語って、おそらく素晴らしいものなんじゃないか、って。まだ勉強し始めたばかりで島田さんの言葉をちゃんとつかめていたわけではないのですが、「自分でもその感覚がわかるようになりたい」と思いました。
島田さんがご自身の言葉でRubyについて語っていたように、自分もいつか自分なりの言葉でRubyを語れるような日が来るのかな、来たらいいなと思った気がします。
細かい技術的なことはまだわからないけれども、このように表現されるRubyの神髄をいずれ体感したい、というような?
島田さんが使われる「Rubyと一緒にプログラミングする」という表現が私はすごく好きで。仕事のために一方的に使役するための道具だと考えていたら、そういう表現にならない気がするんですよね。
Rubyというプログラミング言語が単なるツールを超えた、もしかすると仕事の領域も超えた、自分の人生にとって大事な存在になり得るのではないかと感じたんだと思います。
ああ、なるほど。それは確かにすごい。


福岡Ruby会議02は土曜日のほぼ丸一日かけて開催されたんですが、休みの日にも関わらずいろいろな方が会場に来られて、皆さんすごく楽しそうにされているんですよね。
私はそれまで、仕事というのは一般的に言ってあんまり楽しくないことが多いものだと思っていたんですが、集まっている方々はおそらく職業プログラマーの方が多くて、その仕事で使うプログラミング言語のイベントに参加して、こんなに楽しそうにしている。それは結構なカルチャーショックでした。こんな世界があるのか、と。
登壇している方に突撃したりとか、そういうアクションも?
いやいや、さすがにあまりの初心者なので、そこまでの勇気は。ただ、その後転職して上京するまでの間、Fukuoka.rbにはよく顔を出すようになりました。
塩井さんはそこで何を?
それこそプログラミングスクールの課題だったりRailsチュートリアルだったりをやっていました。そうすると、周りの先輩方がアドバイスをくださったりして。
Fukuoka.rbにはRubyコミッターの方だったりRubyKaigiに登壇されている方も含めてベテランの方がたくさんいらっしゃるので、そこに「プログラマーになりたくて勉強してます!」という人間が参加するのは、最初は場違いなのでは?と思っていたのですが、実際にはそれで嫌な顔をされたりなんて全然なくて、むしろ歓迎してもらえる。それはすごくありがたかったですね。
どういう人たちに囲まれているかで人生が決まるというのは一般論としてよく言われることですが、塩井さんの前半の人生は、どれだけ努力してもそういう環境が手に入らなかったわけですよね。その点、Rubyのコミュニティ、プログラマーの界隈というのは、誰に対してもそういう環境を提供してくれるっていうことなんでしょうか。だとしたら人生一発逆転のチャンスがあるというか、なんだか希望だなって。
そうだと思います。他の言語のコミュニティがどんな雰囲気なのかはちょっとわからないんですが、Rubyコミュニティに関しては、新しい人が来ることをすごく歓迎していますね。
有名な話なんですが、以前Quoraというサービスで、Rubyコミッターの卜部昌平さんが「Rubyに足りないものは何か」という質問に「初心者です」と回答されていて。初心者、つまり新しい人が来てくれないと、プログラミング言語は衰退してしまう。私もいまはコミュニティの中の人間になっていますけど、どんどん新しい人に来てもらえると嬉しいなって思ってます。
仕事のなんたるかを教わった『達人プログラマー』
コミュニティに出入りし、Rubyについて学び始めた塩井さんが、プログラマーとして最初に働く場所にキャタルを選んだのはどういう経緯だったんですか?
ご縁のあった会社さんで少しの間だけインターンをさせてもらった後、どういうふうに働くのかで悩んでいたんです。おそらくはFukuoka.rbで相談すればよかったんですけど、その当時はまだちょっと人見知りしてまして、その勇気は出なくって。
他にプログラマーの知り合いはいないので、相談に乗ってもらえる人がいないかなと思い、CtoCのスキルシェアサービスを頼りました。キャリア相談のようなカテゴリの中でたまたま「エンジニアのキャリア相談に乗ります」というものを見つけて、相談に乗っていただいた相手がたまたまキャタルのCTOだった、というのが流れです。
いろいろと話を聞いていただいた上に、キャタルでも近々採用を再開するというお話があり、ほどなくして本当に募集が始まって、応募して、ありがたいことに採用が決まったという感じです。


でも、もちろん縁だけで選んだわけではないですよね?
ああ、それはもちろん。どこでもよかったわけではなくて。
キャタルは小中高生向けの英語塾の会社で、東京と福岡で教室を展開しています。東京から見ると地理的に離れた福岡でも質の高い英語教育を提供したいということで教室を運営しています。
転職する際に考えていた分野は教育、福祉、医療、介護。中でも教育に関しては、自分自身の人生の中で一番経済上の、あと住んでいる場所の格差を感じてきた分野なので関心が高くて。それでご縁のあったキャタルに入社を決めて、上京してプログラマーとして働き始めました。業務内容としては、塾で使用される学習管理システムの開発です。
実際にプログラマー、エンジニアとして働き始めてみてどうでしたか?
まずはまともにコードを書けるようになるまでが結構大変だった気がします。
毎日なにをどうすればいいか全然わからなくて、どれだけわからなかったかというと、何かしようと思っていろいろと調べたけれど結果的になにもわかりませんでした、という話をFukuoka.rbのLT大会で披露してしまうくらいなにもわかりませんでした。
ちなみにそれが私の登壇デビューです。
そこから、どこかのタイミングでいいサイクルに入っていった。
それでもまあ、しばらくすると、本当になにもわからないみたいな状況はだんだん減っていくじゃないですか。そうしてプログラマーになって2年ぐらい経って、なんとなくコードは書けているような気がするし、事業側からの要望にも対応できているような気もする一方で、「これでいいんだっけ?」っていうもやもやが発生し始めまして。
というのも当時私はプログラマーが二人だけのチームにいたんですが、時期的にはコロナ禍の真っ最中で、そうすると二人とも在宅で非同期にそれぞれにやることをやるii 個人戦のような感じになってしまっていまして。状況としては別にすごく困っているわけではないけど、一方でそれがうまいやり方なのかよくわからない。自分にとっては初めての職場なので、参照点もないですしね。
そういう時期に、自分にとって一番の居場所であるAsakusa.rbという地域Rubyコミュニティで、『達人プログラマー』と『エクストリームプログラミング』を勧めてもらいました。仕事をするという文脈においては、これらの本からすごく影響を受けました。


どんな影響を?
『達人プログラマー』には「石切職人が石を切り出すときには、その石を使って形作られる大聖堂の姿を思い描かなければならない」という一節が出てきます。
それまで私は、プログラマーの仕事というのはプログラミングをすることなんだと思っていました。なんですが、自分がコードを書いて作ったソフトウェアを最終的に価値のあるサービスとしてお客さんに使ってもらうためには、当たり前ですがそもそも自分たちがどういうサービスを提供したいのか、その全体を理解した上で目の前の仕事に向き合う必要があります。
そのために事業側とちゃんとコミュニケーションをとっていくこと、必要に応じて開発側から事業側へとフィードバックすることも含めて自分の仕事をやっていかないといけないと学びました。ソフトウェアを直接変更する人たちが集まった単位ではなくて、そのソフトウェアに関心のある人々全体が自分のチームなのだと思うようになりました。
そうすると行動としても明らかに変わるものですか。
そうですね。事業側の定例ミーティングに参加するようになったり、企画、デザインの段階から絡みに行くようになったり。一方で事業のことを考えるためにはソースコードの品質も高めていかないといけないので、開発側でも勉強会だったり読書会をやってみたりしてました。
そのうち開発メンバーも増えてきたので、その全体の開発の様子を見守ってみたり。あとメンバーの発案で毎日雑談の時間ができたので、おかげでプログラマー同士のコミュニケーションの機会もだいぶ増えました。
「びっくりするくらいのとんとん拍子」の代償
過去記事を読んだところによると、アイデンティティ・クライシスが起きたというエピソードもありました。それもこの時期ですか?
それはもうちょっと後ですね。いまのは2020年の夏以降の話。アイデンティティ・クライシスが発生していたのは2022年の1、2月ぐらい。
そのお話も伺いたいです。
前提として、2021年9月に「RubyKaigi Takeout 2021」がオンライン開催されました。
RubyKaigiはご存知の通り、2006年から2012年を除いて毎年開催されている、プログラミング言語Rubyのテックカンファレンスです。Rubyの生みの親であるまつもとゆきひろさんを始めとして、Rubyの開発に携わる人々が国内外から一堂に集まって、自分たちの書いたコードについてお披露目する場になっています。
その他にもRubyのエコシステムに携わる人だったり、MRI(Matz’ Ruby Implementation:C言語で実装されたRubyの公式処理系)以外の処理系の開発者だったり、あるいは「Rubyでこんな面白いプログラムを書いてみた」という人々のお話をたくさん聞くことができるんですが、そこで発表を聞いた人たちがさらに「自分も何かに挑戦してみよう」と触発されてしまうような、そういう本当にすごい、すごい場所なんですよ!
という前提の上で、私自身はRubyKaigiに対して「一生に一回でも登壇できたらいいな」「いや、でもやっぱり自分には難しいかな」という思いでいました。それくらいに自分からすると敷居の高い場所。でも、そんなRubyKaigiに、2021年に登壇できることになってしまって。
経緯としてはまず、RubyKaigi Takeout 2021のCFPの締切の1週間くらい前に、Asakusa.rbのオンラインミートアップでいろんな人から「塩井さんもそろそろプロポーザルを出したら?」と誘われまして。で、さらにその次の日にたまたま開催したFukuoka.rbのオンラインランチ会で、こっちでもいろんな人から「プロポーザルを出すべき」と1時間くらいかけて説得されて。それでなんとかプロポーザルを絞り出して提出した結果、なんとacceptいただいたんです。


プログラマーになって、わずか数年で。
プログラマーになったのが2018年なので、その3年後にRubyKaigiへの登壇機会をいただいたということで、びっくりするくらいのとんとん拍子ですよね。いや、周りを見渡すともっとすごい人もいるんですけど。私の場合は、上京してからの3年間ですっかりRubyとプログラミングが自分の生活の中心になっていました。仕事ではもちろんコードを書いているし、仕事以外の時間はプログラミングの勉強をするか、あるいは上京したての頃はテンションが上がっていたので、Asaksusa.rb始め東京のあちこちの地域Rubyコミュニティに顔を出したりして、ものすごく密度の高い毎日を過ごしていました。その上2020年からコロナ禍の影響で家に引きこもることになって、そうするとますますプログラミングの他にやることがなくなってしまって。コミュニティのミートアップだけはオンラインになりましたが。
この生活というのは、自分がプログラマーになる前とは住む場所も、仕事も、交友関係も、興味も、余暇の過ごし方も、何もかも全部違います。
何でそうなってしまったかというと、最初の頃は仕事で足手まといにならずにコードを書けるようになりたくて必死で、自分の余暇の時間の多くを仕事の勉強のために使っていたんです。同時に職場の外のRubyコミュニティではいろんなRubyistたちと出会って、たくさんの刺激をもらっていて。それによって仕事だけじゃなく自分の興味が広がったり、自分のわかることやできることが増えていくこと自体が楽しくなってきてしまっててですね。そうやってプログラミングにのめり込んでいるうち、結果として「一生に一度でも」と思っていたRubyKaigiに登壇できてしまった。
一方でRubyKaigi Takeout 2021の後、秋から冬にかけて若干コロナの状況が落ち着いて、しばらくぶりに外出できるようになった時期がありました。せっかくの機会なので休日にちょっと観光気分で、東京の街をあちこち散歩したりしてみました。それからすごく久々に映画館で映画を観たり。あと私はプログラマーになる前から喫茶店に行くのが趣味なんですが、出かけた先の喫茶店でプログラミングとまったく関係のない本を読んでいたりすると、それがすごく楽しくて。これって自分にとって幸せな時間の過ごし方だな、自分はやっぱりこういう時間が必要な人間だったんだな……と思ったときに、「あれ? じゃあこの3年間、プログラミング漬けで過ごしてきた人間って一体誰なんだっけ?」ってなってしまって。
ああ、なるほど。
プログラマーになるまでの人生というのは、生活は本当にずっとしんどかったけど、少なくとも自分にとって自然体で時間の過ごし方をしていたんですよ。お金をやりくりしながら休日に本屋さんや喫茶店に行ったり、音楽を聴いたり映画を観たりですね。ところがプログラマーになってからは、自分の中で相対的にプログラミングの方が重要度が上がって、そのために時間を使うようになって、それはそれで楽しくて、そしてその結果なぜかいろんなことがすごくうまくいっている。それまでは何をやっても全然うまくいかなかったのに!
でも、プログラミングというのはもともと自分の人生にあった存在ではなくて、たまたま後からやってきたものなので。そう考えると2018年から3年間のことを自分の人生とは思えなくなってしまったんです。誰か自分じゃない別の人の人生をやっているような気持ちになってしまって。
そういう状態になると、表れとしては何が起きるんですか?
落ち込んでいました。とはいえ表面的には何も変わらず、それまで通りプログラマーとしての生活を続けていました。
変わらずプログラミングはやっているが、気持ちが落ち込んでいる。
「プログラマーとしての人生」が自分に馴染んでいる感じが全然してなくって。こういう恵まれた環境だったり新しい人間関係だったり楽しい時間っていうのは突然自分の人生にやってきたものなので、同じように突然終わってしまうんじゃないかという漠然とした不安がありました。むしろこれを自分の中に引きとどめるために、プログラマーとしての生活を続けるしかなかった。
そこから脱したのは?
そもそもRubyKaigi Takeout 2021での発表内容について、自分の中で十分に納得を得られていなかったんですよね。でもRubyKaigiというのはやはりすごく大きな存在なので、登壇したことについていろんな方からポジティブな声かけをいただける。すごくありがたいことなんですけど、自分の実力には見合わない評価をいただいているような、周りのみんなを騙してしまっているような気持ちでした。自信がなさすぎて、これっていわゆる「インポスター症候群」(編注:自身の高い能力や実績を評価されたとき、それを認められず、自己不信感を抱いてしまう心理状態)なのかな、いやいや自分なんかがインポスター症候群なんてそんなおこがましい……みたいに思っていた気がします。
でも考えてみるとそうやっていただける言葉というのは、自分がこれまで積み重ねてきて、その結果RubyKaigiで発表することができた内容についてのフィードバックなんですよね。自分の積み重ねに対する、地に足のついた、私宛ての言葉。だとすれば、それをみんなからの評価としてちゃんと受け止めないといけないと思い始めて、ちょっと気持ちが落ち着いてきた感じです。
そうすると、落ち込んでいる間「自分にはこんな難しいことは絶対無理」と思っていたようなことでも、その周辺の技術を勉強するくらいの小さいことなら手をつけられるようになります。その小さいステップを重ねて作ったものが次のRubyKaigi 2022での発表につながりました。ちょっと気持ちが落ち着いた状態で、目の前のやることに集中した、という感じでしょうか。


楽しむには「基本的なこと」から逃げてはいけない
一つ細かい質問をすると、最初のRubyKaigiでの発表ってアプリケーションプロトコルフレームワークを開発した話ですよね? 過去のインタビューでは「ネットワークが好き」というお話もありましたが、どういうところから興味を持ち始めたんですか?
経緯が長いのでどこから話したらいいかよくわからないんですが、まず私が上京して最初に通い始めた地域RubyコミュニティがAsakusa.rbです。Asakusa.rbはコミュニティ自体の歴史も長いし、メンバーにはベテランの先輩方も多くていまもずっと刺激をもらえる大好きな場なんですが、一方当時の私は駆け出しだったので、もうちょっと自分と立場が近い人とも交流したいなと思いまして。なので、並行してTama.rbというコミュニティにも顔を出し始めました。こちらはプログラマーとして働き始めて1、2年以内ぐらいの、私からみるとちょっと先輩の人々が多く参加されている場でした。
そこでの活動の一つとして、2019年にTama Ruby会議01という地域Ruby会議が開催されることになりました。私も発表枠をいただいてオープンソースのコードリーディングをするというテーマで発表をしたんですが、その時に選んだ題材がRackミドルウェアとして実装されているActionDispatch::Cookiesでした。
その発表をたまたまtDiaryの作者のただただしさんが会場で聞いてくださっていて、懇親会のときに「Rackミドルウェアに興味があるなら、自分で作ってみるのもいいのでは?」とアドバイスをくださったんです。
で、アドバイスに従ってRackミドルウェアを作りまして、そうすると今度はRackアプリケーションを動かせるようなRackサーバーを作りたくなってしまって。で、Rackサーバーを作ったんですがその結果、これはすごく楽しいけど、この楽しいのもっと先に進むためには、多分もっと基本的なことから勉強しないといけないような気がしてきて、それでネットワークプログラミングに興味を持ちました。


そこですよね、普通の人と違うのは。好奇心が旺盛というか。
好奇心旺盛というより、負けず嫌いなのかもしれません。たとえばRubyもそうで、Rubyは本当に楽しいけれど、楽しいRubyを理解しようと思ったら、Rubyがどんなふうに動作しているのかを知ることから逃げちゃいけないような気持ちがあります。楽しいことを楽しむためにいま見えているものにもっと近づいてよく見ないといけない、基本的なところから逃げてはいけないという気がするんです。
「わざわざ掘ってるな」と感じる人も多いと思うんですが、いまの塩井さんの言い方だと、むしろこっちこそが本流で、そこを見ないことはむしろ逃げなんだ、と?
だって難しいので……難しいことに直面した時に、「難しいからここで引き返そう」となるのが悔しいんだと思います。負けず嫌いの方が勝ってしまう。
それはプログラミング以外でも?
いえ、すべての物事に対して発揮されているわけではまったくないです。根本的にはいま向かっている対象のことが好きだったり興味があるから、自分にとって好きなことのために難しいことでもやっていきたいという気持ちなんでしょうね。
「Rubyそのものを知りたい」という最初の衝動のお話ともつながってるんですかね。ツールとして使うだけなら使いこなせればいいという話になるけれど、パートナーとして「一緒に作っていく」となったら「あなたの深いところまで知りたい」となる、みたいな。
いや、私も最近気がついたんですよね。愛が重いタイプの人間なんだなって。


「あ、このコードはこう言いたいのかな」
RubyKaigi2022が9月の開催。その直後の2022年10月にキャタルからエス・エム・エスへと転職されていますね。
はい。キャタルでは4年働きました。自分がいる間にやりたいと思っていた大きな仕事があって、着手してからやり切るまで結構時間がかかってしまったんですが、それを終えたら自分がキャタルでやるべきことはひと段落かなと思って転職活動を始めました。
どうしてエス・エム・エスだったんですか?
まず、自分の中でできることがだんだん増えてきたことで、そのできることをもうちょっと広い範囲に適用したい、チームやサービスの規模が大きいところで働きたいという気持ちが生まれてきていたことがありました。ですからキャタルよりもサービス規模の大きいところで考えていました。
それに加えて、私はそのときにはもう完全にRubyコミュニティの中の人間になってしまっていたので、その感覚が伝わるメンバーがいる職場だと嬉しいなと思っていました。
その上で、自分の選択肢の可能性を広げてみようと思っていろいろな会社さんの話を聞きに行ったんですが、最終的にはやっぱり公共性の高い分野で仕事をしたい、という気持ちになりまして。プログラマーになって4年経っても、自分が働きたいと思う領域は全然変わっていないことが確認できました。
そういうタイミングでエス・エム・エスから声をかけてもらって、技術部長の田辺(田辺順さん)とお話をしたんですが、そもそも転職活動前から気になっている会社ではあったんです。高齢社会というのは私たちが避けられない未来ですし、その状況下で発生する社会課題に対して仕事で関わることについてはもともと興味がありました。なのでそのまま選考に進んで、ご縁があって採用されたので、結果的には転職活動中にはエス・エム・エス一社しか受けていません。


じゃあ中の方ともお知り合いだったんですね。
働く前から仲良くしていたRubyistがいたのと、あと田辺を始め一方的に知っているRubyistが何人かいまして。そういうメンバーと一緒に働けたらいいだろうというふうに思っていました。
転職においても、やはりRubyのコミュニティというところが軸の一つとしてすごく大きい?
自分の中では、会社員である前にRubyistだという感覚があって。たとえば同じチームにRubyistとしてのコンテキストが通じるメンバーがいると嬉しいですし、自分のRubyistとしての活動を見守ってもらえたり、あるいは会社がRubyだったりRubyコミュニティに心を寄せている様子が見られるとさらに嬉しい気持ちになりますね。
この時点で塩井さんはもう、界隈では有名な方になられているわけですよね。ご自分で言うわけにはいかないかもしれないですが、でもあれだけ「すごい」とおっしゃられているRubyKaigiに連続で登壇されているわけですから。当然皆さんに認識されてて「あっ、あの塩井さんだ」って感じにもなるわけですよね。
そんなことは全然ないです! まだまだ若輩者です。
いまはどういうお仕事に携わられているんでしょうか。
エス・エム・エスでは、「高齢社会の情報インフラを構築する」ために40以上のサービスを展開しています。わたしはその中で、『カイゴジョブ』という介護・医療・福祉・保育領域の求人サイトの開発に携わっています。
充実している感じですか?
そうですね。私のチームでは、プログラマー、QAエンジニア、デザイナー、事業メンバー全員でアジャイルなチーム開発を行っています。チームでソフトウェアをうまく作ることだったり、その過程で事業理解やユーザー理解を深めることだったり、作ったソフトウェアをちゃんと世の中にデプロイしていくことに常に意識を向けているというような環境です。
自分が作ったものが世の中に出ていくことに対しての手応えは大きいです。もちろんソフトウェア開発自体が簡単な仕事ではないので、どうすればうまくいきそうかというのを常にチームで考え続けないといけないんですが、フィードバックをもとに改善しようとしているサイクルを経験できることはすごくありがたいことだなと思っています。
仕事のどういうところに一番喜びを感じますか?
難しいですね。どこか一つを取り出して「これがあるから楽しい」というよりは、全体的な体験として充実しているという感じなので。
まずRubyで仕事ができているのはすごく楽しい要因の一つだと思います。事業メンバーと日常的にコミュニケーションをとりながらサービスを開発できるのも、作っているものに対する手応えにつながっていますね。それぞれが黙々と一人で頑張るというよりは、みんなで作るという感じ。それがうまく回っているように思えるのもすごくいいなと思っています。


一番最初に福岡Ruby会議02で感銘を受けた、ただ単にツールとしてRubyを使って何かを作るのではなくて、Rubyが自分を促してくれるとか、Rubyと一緒に作るみたいな感覚が、いまの塩井さんにはありますか?
いやープログラミングって難しいですね、というのが前提なんですけど、たまに、本当にたまに「あ、このコードはこういうふうに書いてほしいのかな」って、Rubyの気持ちがわかるように感じる瞬間はあります。なにを言っているんだという感じなんですが。
もちろんおいそれと「わかる」なんて言えないですけど。
『カイゴジョブ』はRuby on Railsで開発しているんですが、私の上司の諸橋(諸橋恭介さん)が2023年のKaigi on Railsで登壇した時、発表の中で「Railsの気持ちになってみる」っていう語彙を使ってまして。というかたまに職場でも耳にするんですが。私自身はまだその気持ちを掴みきれていないんですけど、時々「これかな?」と思う瞬間がある、というのがいまです。
つまり、そういう会話が成り立つ環境ってことですよね。
いや、私とmoroさんの間でしか成り立っていないかもしれない……ちょっと他のメンバーに訊いてみないとですね。
渾然一体とした、うまく説明できない感じが自分
RubyおよびRubyコミュニティとの出会いが塩井さんの人生を大きく変えたのは間違いない気がするんですが、冒頭、Rubyとは「たまたま出会った」という表現を使っていたのが印象的で。それは本当にたまたまだったのか、それともいま振り返ると、なにかしらそれまでの人生でした経験や、そこから育まれた価値観が引き寄せた部分もある?
Rubyの公式サイトには「A Programmer’s Best Friend」とあります。プログラマーが書いていて楽しい、ということが言語としての価値であるというふうに言っている。つまり、すごくコンピュータではなくて、人間にフォーカスしている言語なんです。
一方で、自分の人生を評価するとしたら「世の中にはたくさんのいろんな人がいる」という事実に対するひとつのわかりやすいサンプルのような気がしています。自分も含めて、あるいはもっと難しい人生を送っている人も含めて、どうすれば自分たちが身を置いているこの社会をうまく続けていけるんだろう、ということにずっと興味があります。そして、そういうことを考える際には、やはり人間に関心が向いてしまう。
人間にフォーカスしているプログラミング言語と、人間に関心が向いてしまう自分。そういうところに接合する部分があったのかもしれないですね。


趣味についても伺いたいです。SNSなども拝見すると、喫茶店などでよく人文書を読まれているようです。先ほどは「プログラミングとは関係のない趣味」とおっしゃってたんですが、とはいえ、ここまでのお話を聞いているとなんとなく関係していそうな気もするんですよね。
人文書を読むことについては仕事やプログラミングとはまったく関係のない趣味だと思っていたんですが、今日お話ししていて、もしかするとちゃんとつながっているかもしれないと思いました。どんな仕事をしたいと思うかだったり、どうしてRubyを好きだと思うかにも、ひょっとしたらずっと地続きだったのかもしれない。
先ほど、「社会にいろんな人がいるという前提で、どうすれば社会をうまく続けていけるかを考える」ということに興味があるとお話ししました。この分野に「公共哲学」という名前がついていることをごく最近知ったんですが、その文脈でたとえばハンナ・アーレントの思想に触れて、まさにいま勉強しているところなんですけど。ここは確かに「プログラマーとしての自分」と「もともとの自分」とが奇跡的に重なった部分だと感じています。
いま「プログラマーとしての自分」という言葉を使ってしまいましたが、実際にはそんなにきれいに切れるようなものではなくて、「もともとの人生」ともつながっているし、自分が好きなもの同士の間にも共通しているものがあるのだろうな、と。この渾然一体とした、うまく説明できない感じが、一人の人間としての自分なのだろうという気はします。
運が悪かったところから急に運が良くなったみたいな表現もありましたけど、でも、それまでの人生が乗っかった結果としていまがあるという観点で言えば、悪かった運にも意味があるというか、それは実は運が良かったとも言えなくもないというか。
渦中は本当に大変だったので、RubyとRubyコミュニティに出会っていま恵まれているのは結果論でしかないんですが、ただ、実は私はいまの人生と同じくらい、プログラマーになる前の人生のことも大事に思っているんです。私をRubyにつなげてくれたこともそうだし、それがなければ自分の人生とは言えない。大変ではあったけど、同時に振り返ってみると、自分にとってはいまに至るまでこんなに幸せな人生はないなと思っています。


取材協力: 「新宿DUG」 (公式サイト)