「コンピュータサイエンスを完全に理解したい」――アルゴリズム“以外”への関心がソフトウエアエンジニアとして活躍する起点に
「人とソフトウエアの共進化」をビジョンに掲げ、アルゴリズムの研究開発とソフトウエアの社会実装を推し進めるPKSHA Technology(以下、PKSHA)。機械学習と画像処理に対する経験を重ねて入社した加藤俊幸さんは、入社後、アルゴリズムエンジニアとして活躍したのちに、ソフトウエアエンジニアとしてもさまざまな技術的課題に挑戦しています。アルゴリズム“以外”の領域に加藤さんが挑戦する理由とは。これまで重ねてきた経験に基づき、その源泉となる想いを聞きました。
関心や「好き」を軸に選んだキャリアの先で偶然出合ったPKSHA
――学生時代にどのような活動や研究をされてきたのかお聞かせください。
中学時代の友人から「ゲームを作ろう」と声をかけてもらったのがきっかけで、プログラミングを始めました。始めに触れたのは、C++ と Win32 API でした。 そこから独学を続け、高校2年生のときに日本情報オリンピックに出場し、中部ブロックの成績優秀者となりました。そこではハイレベルな同世代に出会うことができて面白かったものの、自分自身は競プロ(※競技プログラミングの略)の道を極めるよりも、もっと実用的なものづくりに対して興味があるのだと実感したのを覚えています。
大学では工学部に進学し、主に画像処理系の研究をしていました。コンピュータを用いつつ数学的な処理も求められる領域に興味があったので、三次元の物体認識に関わることをしていました。修士の研究では、500fps で任意の剛体のトラッキングを行う手法を開発しました。この手法を用いることにより、遅延なく物体にプロジェクションマッピングなどを行うことができます。
――大学院卒業後、新卒で入社した富士通では、ソリューションビジネスの技術営業をされていたんですよね。
メインフレームからサーバー、HPC 向けの CPU まで幅広いハードウエアに強みを持つ富士通がもともと好きだったことから入社しました。ひとつの技術を極めるエンジニアに閉じるよりは幅広い仕事に挑戦したいという想いがあったので、あえて技術営業を選択しました。配属された部署では、機械学習に関わる仕事を中心にアサインされました。さらに全方向に能力を伸ばしていきたいと思っていたとき、ある交流の場をきっかけにPKSHAのメンバーと出会い、声をかけてもらったことが転職のきっかけです。
――大手企業からベンチャー企業に転職することに迷いはありませんでしたか?
もちろん当時は転職することのリスクも考えて悩みましたし、PKSHAの事業内容は、当時は詳細にはわかりませんでしたが、チャレンジしたい、「今の自分にとってはPKSHAで働いたほうが面白そうだ」と思えたことが転職の決め手になりました。
「やりたい」を起点にアルゴリズムエンジニアからソフトウエアエンジニアへ
――入社後はどのような業務に携わっていますか。
入社後はこれまでの機械学習と画像処理の知見を活かし、同領域の開発に携わってきました。高所から道路状況を撮影することによる渋滞検知や、プリント基板の不良品検知などが携わった案件の一例です。
他には様々なソリューションの種となる、動画像から特定の物体や挙動を検知できるシステムの構築に携わり、私は初期の画像処理プログラム開発を担当しました。また、このシステムではメディアサーバーと社内で呼んでいる、 WebRTC や GStreamer などを用いて映像の配信や録画、検知結果などの保存を行うシステムが使われており、こちらの開発も行っています。
――もともとの専門領域から、ほかの領域にも染み出していったのですね。
そういうわけでもなく、もともとアルゴリズム開発を含めたすべての領域に興味がある中で、アルゴリズム以外のソフトウエアの領域にも携わりたかったためです。画像処理も好きですが、こうしていろいろ仕事をしていくうちに、直近自分がやりたい領域はソフトウエアエンジニアのほうかもしれない、と感じるようになってきたんです。アルゴリズムも理解しつつ、“それ以外”もやりたいという気持ちが強くなっていきました。
――興味の変化に伴って、業務内容も変化していったのでしょうか。
そうですね。そこから携わったのが、クレジットカードの不正検知ソリューションのC++への移植と、クラウド側のシステム開発です。社内のシャッフルランチ(※)の話題で、自分が「C++が大好きで、最高の言語なんですよね」「C++ 完全に理解した」などと話したところ、偶然そのタイミングでニーズがあったこの案件にアサインしてもらうことになりました。
(※)シャッフルランチ……PKSHAグループ内で毎週定期で行われるランチ会。部門や職種の異なるメンバーが自由に参加できる交流の時間。
――絶好の機会が訪れたんですね。実際は案件内でどのようなことをされたんですか。
アルゴリズムと実装の中間にあたる部分を、一任していただけることになりました。クレジットカードのオーソリ処理では、処理スピードとセキュリティが求められるため、閉域環境ですべて処理しなければなりません。今回のケースでは Linux の Shared Object、要は単体で動くコンパイルされたものが求められていました。私はそのプログラムを書いたり、学習プログラムを引き継いでデイリーバッチが回るシステムを実際に組んだりといった業務を推進しました。アルゴリズム以外の部分はほとんど自身で担当したような形です。特に閉域環境上のプログラムは、依存ライブラリは標準ライブラリとシリアライザのみで、それ以外は機械学習のアルゴリズムも含め、すべてフルスクラッチで実装しました。メモリの確保も最低限にしたため、推論速度は世界最速だと思っています。
アルゴリズムに強みを持つ会社だからこそ、“それ以外”への関心が活きる
――自身がやりたいと感じていた“それ以外のすべて”と言える業務を担ってみて、いかがでしたか。
PKSHAがアルゴリズムに強みをもつ会社だからこそ、“それ以外のすべて”の部分でおおいに活躍できています。個人的には「他の人ができることを無理に自分がやる必要はない」と思っており、好きな技術領域に挑戦できて非常によかったです。それからハードウエア領域にも昔から興味があったのですが、現在はアイテック(※)の機器開発に携わっているので、これも挑戦している領域のひとつですね。
(※) 駐車場設備機器の製造・販売、及び駐車場システムの開発・提供を行うグループ会社。
――非常に幅広い領域に興味を持たれている印象ですね。
最近あらためて、「低レイヤーが好きだ」と実感するようになりました。私はアプリケーションや機能よりも、「コンピュータが”現実に”どのように動いているのか」といった問いに対して興味があり、理学的なコンピュータサイエンスよりも、工学的なコンピューターサイエンスの本質に近しい領域をより深めたいと考えています。そういった関心から、自作OSを作って仕組みを理解して満足するということはなく、実際に使われている Linux などを使って最も良い製品を提供することが重要だと思っています。実際に依存しているものがどのように動いているか分からないと、その上で動くプログラムを書くのが怖くないでしょうか。
そういった関心を踏まえて、参画しているアイテックの仕事についてお話すると、精算機など駐車場の機器に組み込まれるコンピュータは、安価にしなければビジネスモデルとして成立しません。そこに強い制約があるからこそ、組み込みのコスト削減の手段として先ほどお話したような低レイヤーの知識が活きますし、工学的な面白さがあります。
振り返ってみると、幅広い領域で挑戦できるPKSHAという環境で、自身がこうした興味関心を持っているからこそ、今この仕事ができているのだとも感じています。
――今後ソフトウエアエンジニアとして入社される方々は、どのようなことに挑戦できそうでしょうか。
範囲が広くなってしまいますが、「コンピュータに関連することならば、なんでもできますよ」とお伝えしたいです。クラウド上でシステムを組むために Go や Python も使うし、必要であれば React で GUI を書くこともあるし、シンプルに言えばフルスタックエンジニアとして活躍できると思います。何か特定の技術領域にこだわりを持つというよりは、幅広く挑戦していきたい方のほうが向いている環境です。
また、最後にお伝えしたアイテックの仕事に絞って言うと、新しい精算機を設計する挑戦の機会もあります。現在は Raspberry Piを使っていますが、もっとコストを下げるために別の機器を製造することも考えられるでしょう。こういった可能性を広げるためには当然技術力が求められるので、興味がある方はぜひ来ていただきたいです。
――最後に、転職を検討している方々に向けて、メッセージをお願いします。
私は、ある企業が提示していた「コンピュータサイエンスを完全に理解した人材が欲しい」という言葉が印象に残っていて、その言葉を目標にしています。低レイヤーに対して関心があるのも、より理解を深めるためには必要不可欠な領域だと感じているからです。
PKSHAに入社してから自分の理解の一歩先にあることに挑戦し続けてきた中で、コンピュータサイエンスに対する理解は着実に深まりつつあると実感しています。PKSHAは機械学習などのアルゴリズムの印象が強い会社ですが、機械学習に強みを持つ人材以外も活躍できる領域が多くある会社です。私はその一例ですが、自分にも合っているかもしれないと感じた方は、ぜひ共に働きましょう。
―INFORMATION―
PKSHA Technologyでは、ともにはたらく仲間を募集しています。
Wantedlyや採用サイトから応募が可能ですので、是非ご覧ください!
▼ソフトウエアエンジニアの募集要項はこちら
▼中途採用:全職種の募集要項はこちら
▼ PKSHA 採用サイト
▼ Wantedly はこちら