門田莉歩 / ソフトウェアエンジニア
広島大学大学院 理学研究科 数理分子生命理学専攻
新卒でCCT入社
仮説検証の繰り返し
-学生時代の研究について教えていただけますか
数学系の研究室で、アリの行動を数理的に解析する研究をしていました。
アリのように集団で生活している社会性昆虫は、個体の利益より集団の利益を優先して行動すると言われています。じゃあみんながフル稼働で働いているんだろう、と思いきやそんなことはなく、“よく働くアリ”と“そうでないアリ”がいることが実験で示されました。
私が研究していたのは、そんなうまく説明がつかないアリの振る舞いについて、数学の力を使いながら仕組みやメリットを解明してやろう!というものです。実際のアリの実験結果を解析して特徴をつかみ、アリの行動を表す数式を考え、その数式に従ってシミュレーションを行い、得られた結果をと照らし合わせ、数式を改良して…という工程を繰り返していました。実験結果を良く表す数式が得られれば、その数式の特性からアリの行動の仕組みやそのメリットが分かるだろう!という算段です。
これだ!という結果は得られませんでしたが、こんな感じじゃない?という結果にはたどり着けました。もがきながら模索し続けていた研究生活でしたが、この研究を通じて自分の頭で考えて仮説を立てること、実行した後に仮説と乖離が生じた場合はその原因を1つずつ潰していくことの姿勢は身に付き、今の仕事でも活きていると考えています。
大学で初めて触れたプログラミング
-学生時代のプログラミング経験について教えていただけますか
初めてプログラミングに触れたのは、学部生時代に受けた、数学科なのになぜか必修だったプログラミングの演習科目でした。C言語を使った数値計算がほとんどで、ルンゲクッタ法で微分方程式の近似解を求めてみたり、gnuplotを使ってアニメーションを作ることで波動方程式を視覚化してみたりという内容でした。
研究室に配属されてからは、重たい処理が必要になる数値シミュレーションにはC言語、実験結果の解析やシミュレーション結果の視覚化にはあらゆるライブラリが揃った Python を使って研究を進めていました。
そのため、情報系出身の方のように、がっつりコーディングしていたわけではないので、入社後に多くのことを学んでいる状況だと思います。
デジタル革命を起こす大規模プロジェクトに従事
-CCTで今まで関わったプロジェクトについて教えていただけますか
製造ソリューション開発部で、製造業向けのECサイトの開発を行うプロジェクトに携わっています。かなり規模が大きく、携わっている方々も凄腕のエンジニアの方が多いので日々緊張感と充実感を感じながら従事しています。
配属された後しばらくは、Javascript で書かれたクライアントサイドが大半、Scala で書かれたサーバーサイドちょこっと触る感じで、バグ修正や新機能の追加開発などを行いました。ちゃんとしたシステム開発に触れるのが初めてだったこともあり、Git によるバージョン管理や Vagrant と VirtualBox を使った仮想マシンの構築などの方が、コーディングよりも苦戦した記憶があります。
去年の4月からは、複雑化したシステムを作り直すべく発足した、同じプロジェクトの違うチームに移りました。アップロードされた3Dモデルに対して、Web上で寸法を付けて製造情報を指定できる機能があるのですが、私はそのための仕組みを1から作り直す4人のチームで開発を行っています。言語は Typescript で、サーバー側からもクライアント側からも動かせるモジュールを実装しましたが、幾何計算が必要な機能なので、数学の頭が大いに役立ちました。最近はその機能の実装がひと段落したので、React を使ったクライアントサイドの開発にも手を伸ばしつつあります。扱える言語やライブラリが増えていくので楽しいです。
よりレベルの高いエンジニアへ
-今後実現したいことを教えていただけますか
漠然とした答えですが、コーディングのことなら私に聞け!と言えるようになりたいです。どんな複雑な要件でも根本から理解してすっきりした構造に変換できる、さらにそれを効率的に処理できるコードに落とし込める、コードの可読性・汎用性が高い、などなど、基本的だけど大事なスキルをとことん高めていきたいです。そのために、ただ経験を積むだけでなく、いろんな知識・技術を貪欲に吸収しながら、常により良いものを目指して模索し続けていこうと思っています。
入社して3年目を迎えていますが、CCTに合う方はズバリ”より良いものを目指し続けられる人”だと考えています。言われたからただやる、ではなく、なぜそれが必要なのかまで理解して、その上で最適なやり方を考えるような人が多くて、私が思うCCTの好きなところですし、そういう姿勢がある方は気持ちよく働けることと思います。
それ以外の点では、技術がすごい人、コミュニケーション能力が高い人、オールマイティにいろいろこなす人など、いろんな人がいるなあ、というのが私の抱くCCTの印象なので、合う方の特徴を挙げるのはとても難しいです…(笑)。逆に言えば幅広い仕事の領域を多様な方がいる環境で挑戦出来るので、高みを目指し続けられる方であれば是非一緒に働きたいと思います。