本文へ移動
_7S_2873

役割

MLモデル以外の自動運転システム開発を行うソフトウェアエンジニアの主な役割は、完全自動運転や自動運転を世の中のインフラにできるよう、システムの安全性と安定性を担保することにあります。

MLエンジニアなどが開発する先進的なモデルが、公道という現実世界で安全かつ安定したシステムとして広く使われるために、基盤となるアプリケーションやシステム全体のアーキテクチャの構築・維持に責任を持ちます。Linux環境下で動作するシステムの開発を通じて、自動運転という未来の技術の信頼性を根底から支える、非常に重要なミッションを担います。

業務内容

  • 車載計算機上で動くLinuxのアプリケーションの開発
  • Webアプリケーションの開発
  • データ収集システムの開発・運用
  • インフォテイメント機能の設計・開発
  • OTA更新基盤の設計・開発
  • フリート管理プラットフォームの設計・開発
  • パフォーマンスチューニングおよび品質向上施策の実施

※1:OTA(Over-the-Air):ソフトウェアを無線通信でアップデートする技術のこと

ソフトウェアエンジニア(自動運転システム)として働くメリット

チューリングの自動運転システムのソフトウェアエンジニアとして働く最大のメリットは、完全自動運転や自動運転を社会のインフラにするという、極めて大きな目標に貢献できることです。MLエンジニアが開発する先進的なモデルが、世の中に広く安全かつ安定して使われるシステムになるために、安全性と安定性を担保するシステムの構築に深く関われます。

どれほど先進的なモデルが開発されても、それを支えるシステムが安全でなければ意味がありません。このチームは、そのシステムの安全と安定を保証するという、社会貢献性の高い、基盤となる役割を担います。

10年後、15年後に自動運転が世の中のインフラとなったとき、自身が携わったシステムの開発がその大きな功績となったことを実感できるでしょう。Linux環境でのアプリケーション開発経験を活かし、次世代の社会インフラを築くという、キャリアにおいて非常に価値のある経験を積むことができます。

この職種にマッチする人材

Linux環境でのアプリケーション開発経験が豊富な人材です。チューリングの自動運転システムは、NVIDIA製の計算機Orin上で、Ubuntuと呼ばれるOSで動作しています。そのため、Linux環境で動くシステムの開発経験は必須要件となります。特に、高い安定性と安全性が求められる環境でのアプリケーション開発経験を持つ方は、非常にマッチします。

  • Linux環境でのアプリケーション開発経験が豊富な人
  • 組み込みソフトウェア開発の経験を持つ人
  • 自動運転システムやロボットなどリアルタイム性が求められる開発経験がある人
  • システム全体の安全性と安定性の担保に責任を持って取り組める人
  • 複数のコンポーネントやモジュールから成る複雑なシステム開発経験がある人
  • 疎結合なシステムにおけるPUB/SUB通信などの連携設計経験がある人

他職種連携の魅力とやりがい

ソフトウェアエンジニア(MLOps)

現実世界のデバイスからのデータ収集、およびデータの書き出し形式や仕組みについて連携します。MLOpsが構築するデータパイプラインの起点となる部分に関わるため、データが学習可能な形式で適切に、かつエラーなく書き出されるように、共同でシステムの実装や改善を行います。データの形式変更やエラー対応など、パイプラインの「川上」における要件調整が主な業務です。

現実世界のデータをいかにモデル学習に利用できるかという、自動運転開発の本質的な課題に向き合えます。デバイスからのデータ取得・書き出しという、MLパイプラインの最も上流に位置する部分に関わることで、データの品質と効率に貢献するという、技術的な重要性の高い役割を担えます。

MLエンジニア

モデルが出力する信号の受け渡しや、システム上でのモデルのパフォーマンス最適化について連携します。モデルが自動運転システム上でスムーズに動作し、他のシステムやモジュールに高速に信号が渡されるような工夫を、システム側から行うことが求められます。

先進的なMLモデルの成果を、安全で安定した「プロダクト」として社会に提供するための橋渡し役を担います。モデルの性能を最大限に引き出しつつ、システムとしての堅牢性を確保するための技術的な工夫は、難易度が高くやりがいが大きいと言えます。