Jijのロゴ画像

ソフトウェア開発部 Rustエンジニア 石井大海

【プロフィール】
筑波大学大学院博士後期課程修了。博士(理学)。専門は数理論理学(公理的集合論)と計算機代数学で、Haskellによる数学的アルゴリズムの実装に関する研究で学位を取得。スタートアップ勤務を経て2024年にJij入社。数理最適化ライブラリ「JijModeling」の設計・実装をシニアソフトエンジニアとして推進。

Jijに入社した理由を教えてください

私は数学を専攻し、2019年3月に博士(理学)の学位を取得しました。その後、大規模シミュレーションソフトウェアの開発を手がけるスタートアップで約5年間、エンジニアとして開発に従事し、2024年11月にRustエンジニアとしてJijに入社しました。

私が大学院時代から慣れ親しんできた言語は、実は「Rust」ではなく「Haskell」でした。Haskellは有名なプログラミング言語ではあるものの、当時は使用している企業や開発者が少ない状況でした。 

前職では幸運にもHaskell環境下での開発に携わることができましたが、日本国内で「Haskell」を開発言語として採用している企業は、まだあまり多くありません。プログラミング言語へのこだわりは、私が仕事をするうえで譲れないポイントのひとつではありましたが、その一方で転職を検討する際は選択肢が限られてしまうという現実がありました。そこで、以前から興味を持ち、いつかは挑戦したいと考えていた「Rust」にも視野を広げて転職活動を進める中で、強く惹かれたのがJijでした。

Jijは、数理最適化技術に関して先進的な知見を持ち、プログラミング言語はこれまで私が親しんできたものとは異なるものの、それ以上に、エンジニアとしての自分のこれまでのスキルを活かして新たな挑戦ができる可能性を感じ、入社を決めました。

採用選考の過程における技術テストも非常に印象的で、これまで触れてこなかった領域に挑戦する面白さがあり、Jijの技術力の高さを肌で感じたことを覚えています。面談では、私からの質問に必要な資料をオープンに共有していただきながら丁寧に答えていただき、会社としての透明性やフラットで開かれたカルチャーを感じとることができたのも、大きな魅力でした。

 

現在の担当業務とやりがいを教えてください

現在は、ソフトウェア開発チームに所属し、最適化問題を効率的に定式化するためのPythonライブラリである「JijModeling(ジェイアイジェイ モデリング)」の設計開発を担当しています。

 「JijModeling」は、様々な既存のPythonライブラリと連携しながら、特定のソルバーに依存しない形で最適化モデルを記述し、効率的に実行できる点を強みに持ち、この実装にRustが採用されています。スクリプト言語であるPythonの拡張機能を、別の言語で開発するのは非常に大変ですが、Rustが持つ所有権システムのおかげで、快適に実装を進めることができています。 

今は、 「JijModeling」を大幅にアップデートする開発プロジェクトが進行中で、開発設計全般をシニアソフトエンジニアとして任せていただいています。ちょうど社内ユーザーへのヒアリングが終わり、ニーズや課題をまとめた上で新たな仕様を練り実装していくプロセスへと進めているところです。自身が開発したものが、誰かの役に立っているという実感をダイレクトに得られるのは、ソフトウェアエンジニアとして何よりの喜びであり、やりがいにもつながるものです。

また、Jijでは開発業務で得た技術や知見を、国際学会などでの発表を積極的に行っており、現在、論文執筆にも取り組んでいるところです。日々の実務に加えて、学術的なアウトプットにも挑戦できる点は、大きな魅力だと感じています。

今後どんなことにチャレンジしていきたいですか

数理最適化という技術は、知っている人にとっては非常に有用なものですが、まだまだ一般には広く知られているとは言えません。

数理最適化と相性が良いとされるスケジュール作成や業務効率化といった課題は、大企業に限らず、中小企業や自治体など、さまざまな組織が抱えています。 

たとえば、学校で働く私の友人から、「時間割を組むのがとても大変」といった話を聞くことがあります。JijMoldelingを使ってこの問題に取り組めば、時間割作成にかかる作業時間を圧縮し、先生方の業務負担を大幅に軽減することができます。そして、そこで得られた時間を生徒の指導に充てることができれば、これまで手が回らなかった対応や、よりきめ細やかな指導を行う余地も生まれるのではないかと思うのです。

まずは、私が研究開発をしているJijMoldelingをよりユーザーフレンドリーなツールとして育て、専門家以外の方にも広く使ってもらえるようにしたいと考えています。

そしていつか、誰もが当たり前のように数理最適化を活用する世の中になったときに、「数理最適化を記述するならJijMoldeling」と言ってもらえる存在を目指したいです。

JijModeling は第一義的には Python ライブラリですが、それ自体一つのプログラミング言語です。ユーザ体験の向上や大規模言語モデルとのシームレスな連携を実現するには、構文や言語機能・型システムをどう設計していくべきか常に考え続けなければなりません。このような観点を持って一緒に「プログラミング言語 JijModeling」の開発に携るメンバーがさらに増え、切磋琢磨しながら仕事ができたらいいなと思っています。

記事をご覧の方へのメッセージをお願いします

数理最適化は、私たちの身近にある小さな困りごとから、社会が抱える課題まで、幅広い事象に対して解決へ導くことのできる技術です。Jijのプロダクトを通じて、自分たちの手で開発したソリューションが、社会に直接的なインパクトを与えられるという実感は、この分野で働く大きな魅力のひとつだと思います。

また、量子技術が現実の産業に応用されはじめるなかで、Jijはその推進を担う主要プレイヤーとして、国内外でその地位を確立しつつあります。社会実装の最前線に立ち、その変化を肌で感じながら技術で貢献できる、エンジニアにとって非常に刺激的であり魅力的な環境が、Jijには整っています。