ソフトウェアエンジニア(自動運転システム) 役割 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モデルの成果を、安全で安定した「プロダクト」として社会に提供するための橋渡し役を担います。モデルの性能を最大限に引き出しつつ、システムとしての堅牢性を確保するための技術的な工夫は、難易度が高くやりがいが大きいと言えます。 ソフトウェアエンジニア(自動運転システム)のメンバー 自動運転システム開発 2022年入社 渡邉 礁太郎 自動運転システム開発 2022年新卒入社 徳弘 賢人 自動運転システム開発 2025年入社 尾前 侑佑 自動運転システム開発の募集要項 ソフトウェアエンジニア / Software Engineer(OS・組み込みシステム、ファームウェア開発 / 自動運転システム) ◆本求人は、Linux OSやカーネル、デバイスドライバなどのファームウェア開発経験を持つ方を対象としています◆ チューリングは完全自動運転の実現を目指しています。所属する自動運転システム開発をするチームは自動運転AIモデル開発チーム(E2Eチーム)と車両チームの中間に位置しており、自動運転システムを支えるソフトウェアの開発や試験などを行っています。 チューリングの自動運転技術で安定して車両を動かすために、AI技術などのソフトウェアレイヤーの要求を適切に理解し、自動運転システム向けソフトウェアの開発および評価を担います。さまざまな機能を開発することはもちろんのこと、安全性・信頼性・保守性といった面でも高い性能を達成することがミッションとなります。 具体的な仕事内容 本ポジションのエンジニアが開発するのは、自動運転システム向けECUのOSやカーネル、アプリケーション、センサーなどを対象としたファームウェアです。 ▼車両に近い領域や各センサに関わる領域においては、以下の業務がメインとなります。 ・ベアメタルもしくはRTOSによるファームウェアの開発 ・自社開発回路やセンサ類の仕様に基づいたソフトウェアの実装 ▼自動運転システムに近い領域では、以下の業務がメインとなります。 ・自動運転向けに最適化されたLinux OSの開発 ・各種周辺機器のLinuxデバイスドライバの開発 ・実車両を用いたデバッグや挙動の解析 ソフトウェアエンジニア / Software Engineer(ミドルウェア / 自動運転システム開発) ◆本求人は、Linux環境でのソフトウェア・アプリケーション開発を経験している方やLinuxが得意(好き)な方を対象としています◆ チューリングは完全自動運転の実現を目指しているディープテックスタートアップです。 所属するチームはドライビングシステムチームであり、自動運転AIモデル開発チーム(E2Eチーム)と車両チームの中間に位置しており、自動運転システムに関わるソフトウェアのうち、E2Eチームが担当しているAI以外の範囲すべてを行っています。 具体的には、自動運転システムのソフトウェア開発や自社開発モデル用のデータ収集車両の開発・保守などです。 チューリングの自動運転技術で安定して車両を動かすために、AI技術やUIなどのソフトウェアレイヤーの要求を適切に理解し、自動運転システムにおける各種ハードウェアのコントロールを担います。 さまざまな機能を開発することはもちろんのこと、安全性・信頼性・保守性といった面でも高い性能を達成することがミッションとなります。 【具体的な業務内容】 ・組込みのSoC上で構築された自動運転システムのボトルネック特定やパフォーマンス改善 ・自動運転車で使用するセンサ制御ソフトの開発 ・Linux上で動く自動運転アプリケーションや関連するミドルウェアの開発 ・他開発チームや運用チームと連携した改善活動 など 【E2E自動運転AIに適した自動運転OS・ミドルウェアを作っていく】 チューリングでは国内にまだレファレンスのない独自のアプローチで自動運転AI開発を進めています。 AIモデルの入力に用いるカメラや制御する車両に合わせ、それらの仕様を鑑みた自動運転システム全体としての設計・開発を行う必要があります。 そのため、自動運転システムを支える組み込みソフトウェアやミドルウェア開発の経験がある人を求めています。 自動運転用エッジデバイスの計算能力が一定規模あるため、そのうえで動くソフトウェアやアプリケーション実装の知見が求められます。 下記の領域での開発経験があるとキャッチアップしやすいでしょう。 「家電」「マルチメディア」「テレビ」「パソコン」「音響」「カメラ」「楽器」「ネットワーク機器」「ゲーム」「バックエンドシステム全般」 ◼︎参考になるテックブログ チューリングの自動運転システム開発環境と、それを支える開発ツールたち https://zenn.dev/turing_motors/articles/d76005207e2b87 全プロセスが一秒止まる不具合、原因はLinuxカーネルにあり? https://zenn.dev/turing_motors/articles/a460fe08b54253 全プロセスが一秒止まる不具合続編: カーネル内部で何が起きたか? https://zenn.dev/turing_motors/articles/fdfb70b7a9d90b ソフトウェアエンジニア / Software Engineer(車載アプリケーション開発) ◆本求人は、エッジデバイスやクラウドなど、いずれかの環境でアプリケーション開発のシニア経験をお持ちの方を対象としています◆ チューリングは完全自動運転の実現を目指しているディープテックスタートアップです。 当社の自動運転のアプリケーション(データ収集システムなど)を中心に、OTA(※1)やフリート管理など自動運転システムを構成するクラウド/サーバーサイド連携機能まで幅広く携わっていただきます。プロジェクトやフェーズに応じてアプリケーション層を主軸に開発しつつ、必要に応じて制御ソフトウェアやミドルウェアなど低レイヤーの開発にも参画できる柔軟な環境です。 【具体的な業務内容】 ・車載計算機上で動くLinuxのアプリケーションの開発 ・Webアプリケーションの開発 ・データ収集システムの開発・運用 ・OTA更新基盤の設計・開発 ・フリート管理プラットフォームの設計・開発 ・パフォーマンスチューニングおよび品質向上施策の実施 ※1: OTA(Over-the-Air):ソフトウェアを無線通信でアップデートする技術のこと 車載インターフェースエンジニア / Car Interface Engineer ◆本求人は、高度な低レイヤーソフトウェア開発、車載ソフトウェア開発のいずれかの領域で経験のあるエンジニアや、カーハッキングやE/Eアーキテクチャに精通したソフトウェアエンジニアリングに取り組んできた方を対象としています◆ チューリングのミッションは、完全自動運転レベルの自動運転システムの開発を行うことです。 自動運転システム全体ではさまざまなモジュールによって構成されています。そのシステムが多くの車両で動作するには、車両個別のネットワークやECU・ソフトウェア構成への解像度を高めていく必要があります。 この求人は、自動運転システムと車両のインテグレーションを加速させていくポジションです。機械学習モデル、車両システム、ECUなど複数のレイヤーにまたがって技術課題を解決します。 【業務内容】 ソフトウェア統合プロセス中に発生する問題を特定、分析、解決し、スムーズで信頼性の高いソフトウェアシステムを確保します。具体的には下記のタスクを進めます。 ・ECUやゲートウェイなど車載機器の脆弱性診断・侵入テスト ・CAN通信やEthernet通信の解析・リバースエンジニアリング ・車両と自動運転システム間のインターフェース設計および実装 ・OEM・Tier1との共同研究 ※上記のうちの全てを担当するわけではなく、自身の強みを活かしたドメインで開発を進めつつ、他領域にも染み出しながら開発を進めていただきます。 ソフトウェアエンジニア / Software Engineer(Webフロントエンド) ◆本求人は、自動運転システムに関わる車載GUI(自動運転UI・カーナビ)およびWebシステム(フリート管理・評価基盤等)のフロントエンド開発を幅広く担うエンジニア向けの求人です◆ 本ポジションでは、自動運転プロダクトにおけるあらゆる「ユーザーとの接点」を技術面からリードしていただきます。 Turingの自動運転開発では、ドライバーが触れる車載GUIから、車両管理・運用を支えるWebシステムまで、多様なフロントエンドが必要です。本ポジションでは、単なる画面実装にとどまらず、「自動運転に関わるあらゆるユーザー体験を最適化する」ことがミッションです。 【具体的な業務内容】 ・車載GUI(自動運転UI・カーナビ)の設計・開発(走行状態の表示、ナビゲーション、ドライバーへの情報提示など) ・フリート管理システムのフロントエンド設計・開発(車両状態の可視化、遠隔監視・操作UI、アラート管理など) ・プロダクトマネージャー、デザイナー、バックエンドエンジニアと協働し、ユーザー体験を最優先にしたフロントエンド開発 ・ユーザーテストやフィードバックを基にしたUI/UXの継続的な改善 チューリポ・テックブログの関連記事 Turing Tech Talk 第16回 「自動運転を支えるLinuxベースのミドルウェア開発」 Turing Tech Talk 第14回 「TypeScriptでつくる自動運転UI」 車載ソフトウェア開発の挑戦!自動運転を支えるデータ処理と開発の舞台裏 「要求仕様が与えられない。そこに自動運転開発の面白さがある」組み込みエンジニアが大企業からチューリングに転じた理由 完全自動運転のデータ収集・デプロイを担うチームの役割と意義とは? Join us : 完全自動運転という難易度の高い課題を、様々なバックグラウンドを持つメンバーと取り組みませんか? エントリー 募集要項