統合SW開発部 の求人一覧 - 株式会社T2
Autonomous Driving Software Architect (Software architect - Integration)
T2で独自開発しているLv4自動運転ソフトウェアのアーキテクチャを設計いただきます。
システムアーキテクトやプロジェクトマネージャ、各コンポーネントの開発チームとも連携し、ソフトウェア全体の整合性を担保しながら、各コンポーネントの役責整理、リソースの割り当て、IFの定義などのソフトウェアアーキテクチャを設計いただきます。
L4の自動運転ソフトウェアは、常に安全に動作することが求められる一方、複雑度が高く個々のコンポーネントが正常に動作するだけでは課題が解決できません。ピークパフォーマンスではなく、システム全体のワーストケースが許容可能なレベルであることを保証する必要があります。これを短い開発期間で実現するために様々なトレードオフを考慮し開発を推進していける方を求めていきます。
例えば
1.コンポーネントを分割したほうがテストの効率は良くなる傾向にありますが、レイテンシ面で不利になります。
2.追加機能に対し、新しいコンポーネントや強引なデータフローの追加で対応したほうが短期的な開発効率は良いかもしれませんが、中期的にはシステムの複雑度が増し、レビューやテストの工数が溢れてしまうリスクがあります。
3.スマートなアルゴリズムで対処しきれない場合、地道で手間のかかる手段を検討する必要があります。
4.追加機能に対し、どのコンポーネントで対応するか、は純粋な設計面だけではなく、担当するチームのスキル面を考慮する必要があるかもしれません。
また、複数のコンポーネント間の相互影響によって発生する課題は設計面での対策の他、後から課題が見つかった場合に最小の影響でどのように対策するか、という難しいパズルを解く必要があります。
これらの要素を考慮しながら、機能をコンポーネントに分割し、データフローを定義し、インターフェースを具体化し、処理レイテンシ、CPU、RAMなどのリソースを配分していく、というのが主な役割になります。
単なるプログラマや小規模プロジェクトとは違い、考え方の違う多数の人々と協力する大変さがあります。一方、多人数だからこそできる”現実世界で物流を支える自動運転トラック” が "どう動いているのか?どう動くべきか” を決める1人として、自動運転システム全体に影響を与えることができるポジションになります。
業務としては関係者を特定し、
1.実現する機能を明確にする。どういった状況で車両がどのように振る舞うべきか?
2.実現すべき日時を明確にする、一発で実現するのか、段階を踏むのかも含む。
3.ソフトウェアアーキテクチャの変更内容のたたき台を作る (これが本業)
4.関連実装チームなどと相談し、変更内容を合意する
5.ドキュメントに変更内容を反映する
6.変更内容のテスト方法を相談する
といった内容をまずはチームリーダーと一緒に進めてもらい、最終的には独り立ちしてもらうことを想定しています。
Autonomous Driving Software Platform Engineer
レベル4自動運転実現に向けた、安全で信頼性の高いソフトウェアプラットフォーム構築を担います。C++を主軸に、リアルタイムOS上のミドルウェア開発、機能安全・セキュリティを考慮したアーキテクチャ設計、高効率な開発環境構築、および車両システム統合まで幅広く携わります。
例えば以下のような業務があります。
- リアルタイム性・高い実行効率・安定性/安全性などの特性を備えた自動運転ソフトウェアプラットフォームのアーキテクチャ設計・開発(ミドルウェア、ドライバ、共通機構)
- 機能安全・サイバーセキュリティを考慮したソフトウェア開発
- 高効率な開発環境の構築と改善(CI/CD、品質向上)
- 次世代自動運転車両のシステムインテグレーション