
CTO 藤村がホストするPodcast、論より動くもの.fmの第36回を公開しました。今回は2025年新卒入社エンジニアの大塚と、ものづくりについて話をしました。
論より動くもの.fmは、Spotify、Apple Podcast、YouTubeで配信しています。フォローしていただくと、新エピソード公開時には自動で配信されますので、ぜひフォローしてください。
ホームディレクトリでClaude Codeを動かす日は来るか
藤村:こんにちは、論より動くもの.fmです。論より動くもの.fmは STORES のCTO 藤村が技術や技術じゃないことについてざっくばらんに話すポッドキャストです。今日は STORES のエンジニアの大塚さんに来てもらっています。
大塚:こんにちは、よろしくお願いします。
藤村:よろしくお願いします。STORES で働いてどれくらい経つんですか?
大塚:今新卒2年目なので、正社員として入社してからは1年ちょっとなんですけど、その前に1年ぐらい内定者アルバイトをしていた時期があったので、2年ちょっと会社に所属してます。
藤村:そうですよね、もう新キャラっぽくはないというかしっかり馴染んでる。STORES のエンジニアだなぁ、STORES には面白いエンジニアがいるな、その枠の筆頭です。
大塚:筆頭にはなれてるのかな?
藤村:なれてるんじゃないですか、RubyKaigi 2026も出ているし。最近はどんな仕事をしているんですか?
大塚:最近はインフラ寄りの仕事をやっていて、そのインフラの上で管理用のソフトウェアを作ることありますけど、STORES のサービスーー例えば STORES ネットショップとか、そういう表層に出てくるサービスの開発には関わっていないです。
藤村:アプリケーションって感じではないですよね。具体的にはどんなことやってるんですか?
大塚:開発環境をいい感じにしようみたいなプロジェクトがあって。STORES で働いているエンジニアにはMacBookが支給されてるんですけど、それだとできることに限りがあるんで、もっとリモートにサーバを立てて色々やっていこうみたいな話が進んでいます。そのためにAWSのインフラをいい感じにしたり、それぞれの開発者に貸し出したマシンをどう管理しますかみたいな。インフラを管理するためのソフトウェアを作ったりしてますね。
藤村:ローカルで全部を立ち上げるんじゃなくて、全部入っている便利なものをみんなに配ればいいだろう方式?
大塚:そうです。
藤村:補足すると、STORES の開発環境は紆余曲折あって、昔は自分が開発しているアプリケーションだけでローカルで、あとはリモートの共用環境だった。サービスがたくさんあって、バックエンドもフロントエンドもたくさんあるので、そういう構成だった。そこから全部ローカルで動かせばいいんじゃないか期があって、今はAIコーディングのブームがあって、全部が入っている開発環境が欲しいのを時期に入った。それを作っているという感じですね。
大塚:サービス間の連携が多いので、複数のサービスを同時に開発する、同時にコードをいじって動かして、みたいなことをやっているので、そうなると結構辛いんですよね。
藤村:大塚さんってClaude Codeを使っている?
大塚:今はClaude Codeをメインで使ってます。
藤村:Claude Codeってどこで立ち上げてます? リポジトリ?
大塚:場合によりますね。リポジトリの中で立ち上げることが多いかなって感じなんですけど、1 つのリポジトリで完結しない時にはその1個上のディレクトリで立ち上げてここの中にサービスいっぱいあるからいい感じに読んでねってやったりしてます。
藤村:やりますよね。そのうちホームディレクトリで動かすようになるんですかね?
大塚:どうだろうな。 LLMに全てを任せるのは怖いみたいな話もあるじゃないですか。 最近は感覚が麻痺してきたので、どうでもいいかみたいな感じになってるんですけど。それはそれとして、ホームディレクトリで動かしたいことは今のところそんなにないかな。何をやったらホームディレクトリで動かしたくなるかな。
藤村:そうなんですよね、僕もプライベートのパソコンは全部読めるようにしてますね。全部読めて承認なくすべてができるようにしてありますけど。クレデンシャルっぽいものを置かないみたいな努力目標はもともとあったんで、そんなに心配ないんですけど、仕事だとちょっと怖いはあるよな。
コンパイラが好き、最適化しやすい言語を作りたい
藤村:大塚さんはプログラミングが好き?ソフトウェアが好き?
大塚:難しいな、どっちも好きですよ。
藤村:プログラムとプログラムを支える技術たちーーコンパイラやインタープリタだと、どっちに興味ある方ですか?
大塚:私はコンパイラに興味があって、学生時代の研究もそれでしたね。
藤村:そうですよね。プライベートでも色々作ったりしていて、RubyKaigi 2026の発表もそうでしたよね。最近は何か面白いものを作ってますか?
大塚:面白いものとして出せるものはあんまりないんですけど、プライベートでもプログラミング言語の開発を昔、もう5年ぐらい前にやってたり。最近もRubyKaigi 2026でいろいろ話を聞いた結果、プログラミング言語を作りたいなと思って、ちょっと作りかけてたのを引っ張り出してくるとかしてますね。
藤村:どんなものを作ろうとしているんですか?
大塚:今やりたいのは最適化ですね。5年前、大学生の時に作ったプログラミング言語があるんですけど、大学で習ったことを自分で実践してみたいというモチベーションで作っていました。授業で習ったこと、聞きかじったことを一通り実装したら動きました。ただ、それだと、そこから先には行けないので、今はもうちょっと実用的なものを作りたいなと思っています。プログラムの最適化の技術をいろいろ入れ込んでみたいなことを考えてますね。
藤村:プログラムの最適化ってどんなもの?
大塚:例えば 1 + 1 という式があった時に、それってプログラムを実行しなくても結果がわかるじゃないですか。プログラムを読んでこれは定数 + 定数だとわかったら、それは先に計算しちゃっていいわけです。というような、コンパイル時、最適化の段階でわかることを全てたたみ込んでシンプルにしていくとか、命令の実行順を並び替えていい感じに実行できるようにするとか、そんな感じの最適化を今は考えています。まだ実装はほとんど進んでないんですけど、アイデアはそんな感じです。
藤村:それは盆栽的な感じですか?お家で育てるのが楽しいみたいな?
大塚:私は他の人が作っていないものを作る方が好きですね。市場に出回ってない野菜を庭で育てるみたいな。
藤村:今肥料をあげたり、品種改良をやってるわけですね。
大塚:それが売れるかどうかはどうでもよくて、私はスーパーにないものを食べたいので、庭で育てるみたいな感じです。
藤村:なるほどね。最適化にまだやってないことがありそう感があるんですか?それともとりあえず最適化を一通りやってみるかみたいな感じ?
大塚:最適化自体は過去の先人たちの積み上げをそのままありがたく使わせてもらう方針を考えています。やりたいことは、最適化しやすい言語仕様を作る方ですね。言語仕様のレベルで最適化しやすいように色々組み立てることで、めちゃくちゃ最適化ができるんじゃないかと考えています。
藤村:HaskellはC--っていう中間言語に一回落とすんですよ。それで多分、何ステージもそういうのがあって、最適化をめっちゃかけやすくして。GHCはそういう感じらしいですね。僕もそんな詳しくないけど、そういうトリックがたくさん入っててめっちゃ面白いと聞いたことがあります。
大塚:GHC、実はほとんど使ったことがなくてよくわからないです。
藤村:面白いらしいですよ。エアプですけど。作ったことはあるけどハックしたことは全くないんで。
大塚:関数型言語って最適化の研究だと結構使われてますからね。欲しい性質が結構のってるので研究が進んでる。その辺も参考にしていきたいなと思っています。
ツールを公開すると誰かが使ってくれる
藤村:そういえば、さっきチラッと、作っているツールを公開したら面白いことがあったって話しませんでしたか?
大塚:そうですね。それこそスーパーに売ってない野菜を手作りするみたいな話なんですけど。他のソフトウェアを作る上でちょっと欲しいツールが、すでにあるものだと微妙に足りないので、自前で作ってたんですよ。
自前で作って、別に自分だけが使えればよかったんですけど、ソースコードをプライベートにしておく理由もないので、ライセンスだけとりあえず書いてパブリックにしました。そうしたら、この間、オーストラリアの人からissueが飛んできて、「あなたのツール使いたいんですけど、我々のユースケースだと微妙に何か動かなかったんで見てもらえませんか?」と問い合わせがあって。よく見たらバグだったので直しましたという話がありました。
藤村:どんなツール?
大塚:Visual Regression Testっていう概念があります。例えばスマホアプリの開発をしていて、画面のスクリーンショットをそのテスト用に保存しておいて、変更した時にそのスクリーンショットと差分をとって、違いがあれば想定外の変更が入ってそうだと判断するテスト手法です。それをやるためには画像を比較するっていうシステムが必要で、そのツールはあったんですけど、私がやりたいのは画像じゃなくて、音声やテキストにも利用したい。Visual Regression Testっぽいんだけど、ビジュアルに限らずいろいろやりたい、ということがあって。
藤村:そんなケースがあるのかって思ったんだけど、わかるかもしれない。
大塚:なので、ディレクトリを2つ渡すと、そのディレクトリの中のファイルを再帰的にたどって、変更前のところにはこのファイルがあるけどこっちにはないよね、とか。例えば音声だったらスペクトログラムのこの辺りが変わってるという差分を出すとか。JSONファイルが変更前と変更後の2つあったら、このキーが消えてるよ、順番変わってるよとか、そういうセマンティックな比較をする感じのツールを作ってたんですよ。何をやりたくて作ったかというと、テキストの比較ができるので、比較した結果がHTML形式のレポートとして出せるんですよ。これをすると、Visual Regression Test用比較ツールの判定結果自体をVisual Regression Testできるという一発ネタがやりたくて。
藤村:意外にも人が使ってくれたんですね。
大塚:そうです。その方はオーディオの比較、音声の比較がやりたいみたいで、「このファイルだと判定されないんですけど」と聞いてきました。
藤村:いや、オーディオの比較はやりたくなりますね。わかります。それ面白いですよね。やっぱりツールって公開すると誰かしら反応してくれることがあるというか、僕も過去そういう経験がそこそこあって。
大塚:そうなんですか?
藤村:あります。git grepの結果をsedとxargsに渡して、fooをbarに丸ごとリポジトリで変換するのを、毎日のように何度もやっていて。これワンコマンドでやりたいなと思ってサブコマンドを作ったら使ってくれる人がいた。あとは10年くらい前に、Railsだとrails newって入れると全部出るじゃないですか。Haskell用のいいものがなかったんで、当時流行ってたJavaScriptのGruntっていうツールを真似て作ったら、使いたいって人がポコポコいてくれたり。そういうのが何度かありますね。
手芸の一つですね。最近作ってないですけど、gitのサブコマンドを作る手芸があって。git logして、一番ホットなファイルが知りたい時があるんですよ。どこが盛り上がってるのか、盛り上がりの推移を見れるようにしたいと思っていろいろやり方を考えていたけど、あんまりうまくいっていなくて。僕の次の手芸の候補ですね。
大塚:なるほど。
藤村:プラスとマイナスの絶対値の和が歴史的に多いやつが盛り上がっているファイルだろう、みたいな。これから作ろうとしているものはありますか?
大塚:そうですね、GPUをいじりたいなと思っていて。今もちらほらやっていて楽しいので継続します、という感じなんですけど。
藤村:何をするんですか?
大塚:グラフィック用のライブラリで自分で描画のシステムを作るみたいな。こういうことをちらほらやっていて、ウィンドウを1枚確保した後、やろうと思えばそこに何でも好きなものを書けるんですよ。何ができたら嬉しいかなっていうのはちょっと考えてるところではありますけど、GUIのフレームワークを作ってみると楽しいかなと思ってます。
藤村:このご時世のGUIフレームワークは面白そうですね。
大塚:そうですよね。
藤村:違うものになりそうですよね。意外と大塚さんはマルチモーダルな人というか、Visual Regression Testもそうだし、RubyKaigi 2026の発表もビジュアルで、しかも3Dだったじゃないですか。音声の話も出て、テキストの読み書きだけじゃない人だなと改めて思いました。
大塚:それで言うとRubyKaigi 2026の発表はまさにそのGPUをいじってみたいな話なんですけど。昔から動画を見たりすることが多くて、動画を自分で作っていたこともあるんですよ。
藤村:そうなんですね。
大塚:その辺の考え方が動画に寄ってるんだと思いますね。
藤村:なるほどな。開発用のツールとかも、今はビジュアライズや動画でできちゃうし、その方が便利な場合もあるかもしれないし。そういう引き出しがあるのが面白いですよね。Webアプリケーション屋さんだと、ともかくJSONの出し入れと、それをどうやって正しい性質がいいところに保存するか、みたいな感じになるけど、大塚さんの引き出しは幅が広い。
という話を延々とすることもできずですが、それは次回に期待ということで、今回はそろそろ終わろうと思います。大塚さん、楽しい話をありがとうございました。
大塚:こちらこそありがとうございました。
藤村:ということで、論より動くもの.fmでした。ハッシュタグ「論より動くもの」で感想をぜひXに投稿してください。見に行きます。ということで、改めて今日はありがとうございました。
大塚:ありがとうございました。
藤村:ごきげんよう。(完)
STORES では新卒採用をしています。論より動くもの.fmを聴いて、少しでも STORES に興味を持たれた方は、ぜひHello STORES(会社説明会)にご参加いただけると嬉しいです。