![見出し画像](https://assets.st-note.com/production/uploads/images/158174865/rectangle_large_type_2_92258bc74bb199c6819077c61d213ee3.png?width=1200)
コードタクトのCTOってどんな人? 本人に直接聞いてみました【前編】
今回は、高度なプロダクト開発を技術的な知見でリードする石田智也CTOの思いと人柄に迫るインタビューの前編です。プログラマとしての矜持やCTOとしてのこだわりに加え、学生時代の思い出やコードタクト代表の後藤正樹との出会いなどについて、本人に振り返ってもらいました。
![](https://assets.st-note.com/img/1728349854-IaLRkCviprZDmFUWNy756xSY.jpg?width=1200)
趣味のコードは「短距離走」仕事のコードは「長距離走」
——まずは自己紹介をお願いできますか?
コードタクトでCTOを務めている石田と申します。社内では「ぺんさん」って呼ばれています。主な仕事は研究開発に加え、プロダクトのアーキテクチャや機能設計など根幹に関わる部分に対して、技術的観点からエンジニアたちをリードする役割を担っています。
※CTO石田(ぺんさん)のXアカウントはこちら
——コードタクトにはいつから?
大学卒業後、代表の後藤正樹さんに誘われてコードタクトのひとり目エンジニアとして起業に加わり、いまに至っています。コードタクトは2015年の設立なので、今年でちょうど入社10年目になります。
——石田さんはRubyの標準ライブラリであるIRBとRelineのコミッタとしても知られています。2024年のRubyKaigiにも登壇されたそうですが、Rubyのどこに魅力を感じているのですか?
僕がRubyをはじめたのは、ギークハウス沖縄で毎週開かれていたRubyのミートアップに参加したのがきっかけです。まず気に入ったのは、Rubyの設計思想でした。これまで学んだ言語って割とプログラマを信用しない感じがして違和感があったのですが、Rubyは違っていたからです。
——どういう点がほかの言語と違うと?
普通、開発言語は標準クラスの挙動を勝手に書き換えたりできないよう制限されているものですが、Rubyは違います。プログラマが何らかの意図を持って壊したいなら、それを許容する懐の深さがあるんです。極端なことをいえば、足し算したら掛け算の答えを出すようなこともできてしまう。プログラマを信用し、クリエイティビティを尊重する思想が織り込まれているからこその設計だと思ったので、いまも使い続けています。
——「過保護」じゃないってことですね。ほかには何かありますか?
少ない記述で大きなことができる点も魅力ですね。裏でそれなりに準備をしておけば、最低限の労力で効果を最大化できるので、ある意味、スタートアップ向きの開発言語といえます。プライベートでは主にRubyを使っているのですが、まさに同じ理由からです。Rubyならプログラミングを限界まで追求できますからね。
——そういえば、プロフィールに「超絶技巧Ruby意味不明コンテストで金賞を獲った」と書かれてましたね。
はい(笑)。超絶技巧Ruby意味不明コンテストって、まったく役に立たないけど、面白いプログラムを評価するコンテストなんですが、まさにプライベートでのコーディングの成果といえます。趣味のプログラミングは、僕にとってエンジニアとしての腕を磨くためのいい機会であり、好奇心を満たしたり、ストレス解消の手段でもあったりするんです。
——業務時間中に書くコードと、趣味で書くコードの間にはどんな違いがありますか?
当然、仕事のコードは実用性が求められるので、ちょっと気になる部分があっても実用に耐えるレベルを十分クリアしていると思ったらそれ以上手出しはしません。でも趣味で書くコードなら、気が済むまでとことん掘り下げることもあれば、途中からまったく関係ない分野に飛び移ることもあります。。端からすれば、どちらもコードを書いているようにしか見えないでしょうが、僕のなかでは全然違う営みなんです。
——両者の違いをたとえるなら、どんな表現がふさわしいでしょうね。
趣味のコードは、対象がコロコロ変わるので「短距離走」、仕事のコードは過去の積み重ねを大切にしながら走り続ける「長距離走」みたいなイメージでしょうか。趣味のコードには、何のしがらみもなく思うままに書ける楽しみがあり、仕事のコードにはプロダクトの理想を見据えて本質的な課題を解決する喜びがある。普段はやらないようなことを趣味のコーディングでやった結果、仕事に役立つこともあるので、このふたつはおそらく根っこの部分ではつながっているんでしょうね。
——きっと仕事もプライベートも充実しているんでしょうね。最近どんなことに熱中していますか?
最近、Rubyの標準ライブラリであるIRBとRelineのメンテナーになったので、その活動に熱中してます。ほかにもメンテナーではないものの、気になる部分があるとどうしても見過ごせず、無限に時間を溶かしてしまいそうになるのが悩みのタネです。本当は自分のプロジェクトに時間を割きたいんですけどなかなか難しいですね。いくら時間があっても足りません(笑)。
こだわったのは、先々を見据えたアーキテクチャ設計
![](https://assets.st-note.com/img/1729071077-PxgUl1rB0LkuzYhZb8AD9dqI.jpg?width=1200)
——2024年は創業から10年目にあたります。これまでを振り返って一番ツラかった出来事を教えてください。
幸い開発にあたって、技術的に苦労した記憶はあまりないのですが、法人化するまでの準備期間中、開発資金を貯めるためしばらく受託開発をしていた時期が、気持ち的にはツラかったですね。一番やりたかったスクールタクトの開発に割く時間が受託開発で削られてしまうからです。2015年に法人化して、ようやくスクールタクトの開発に専念できるようになってホッとしたのを覚えています。それ以外だと、スケジュールが厳しいだとか、不得意なインフラ周り整備に手こずったという思い出がありますが、そこまでドラマチックなエピソードじゃないので……。なんだかすみません。
——いえいえ(笑)。ではスクールタクトの開発でこだわった点について聞かせてもらえますか?
散発的に起こる問題に対処するより、根本的に問題を起こさないようなアーキテクチャ設計にはとくにこだわりました。
——詳しく聞かせてください。
例えば先生が書いた図形を右に動かすのとほぼ同時に、生徒が同じ図形を左に動かしたとします。ソフトウェアのつくり方によっては、先生と生徒で見ている画面に差が出てしまう不具合を起こしてまいます。しかしgitのrebaseのようなコンフリクトを解消する仕組みを入れれば、そのリスクはゼロに抑えられます。あまり先々のことを考えず、場当たり的な設計に終始していると、何か問題が起こるたびにバグに追い立てられるハメになってしまいますが、原理的に問題が起きないアーキテクチャを採用すれば、そんなことに時間を割く必要はなくなります。あとで困ることがないよう、どのようにつくるのがベストなのかについては、それなりに時間をかけ知恵を絞ったつもりです。
後編インタビューもお楽しみに!
コードタクトについては、こちらをご覧ください!