【フルリモート/週5/Java】数百万台のコネクテッドカーから送られる膨大なテレメトリデータを処理するIoTバックエンド・ストリーム処理基盤の開発 お任せしたいこと [役割]バックエンドエンジニアとして、数百万台の自動車(コネクテッドカー)やIoTデバイスから絶え間なく送信される位置情報・センサーデータをリアルタイムに収集・処理する「大規模IoTデータプラットフォーム」のJava(Spring Boot)を用いたAPIおよびストリーム処理ワーカーの開発をお任せします。 [役割に対して求める成果]秒間数万〜数十万件に及ぶ莫大なデータストリームに対して、欠損や遅延を生じさせることなく、安定して処理(パース、フィルタリング、永続化)できる堅牢なバックエンドシステムを構築すること。また、蓄積されたデータを他システム(MaaSアプリやデータ分析基盤など)へ低遅延で提供するための高パフォーマンスなマイクロサービス群を設計・運用し続けること。 具体的な業務内容 ・Java(Spring Boot)を用いた、コネクテッドカー向けバックエンドAPIおよびデータ処理ワーカーの詳細設計、実装、テスト ・Spring WebFlux(Project Reactor)等を利用した、ノンブロッキングI/Oによる高並行・高スループットなAPIの開発 ・AWS IoT Core等で受けたMQTTメッセージを、Apache Kafka(またはAmazon MSK, Kinesis)を介して非同期かつ順序性を保って処理するストリーム処理アーキテクチャの実装 ・数テラバイト規模の時系列データを高速に書き込み・検索するための、NoSQL(MongoDB, Cassandra等)およびRDBMSを組み合わせたデータモデリング ・gRPCを利用した、マイクロサービス間のセキュアでハイパフォーマンスな内部通信インターフェースの設計・実装 ・高スループット環境下におけるJVMのパフォーマンスチューニング(ガベージコレクションの最適化、ヒープメモリ管理)およびボトルネック調査 ・車両の異常検知(事故、故障アラート等)をリアルタイムに処理し、ユーザーやコールセンターへ即時通知するミッションクリティカルなロジックの実装 ・JUnitやMockitoを用いた自動テストの実装と、Datadog/Prometheusを利用した分散システムにおけるメトリクス監視・トレーシング環境の構築 必須スキル・経験 ・Javaを用いたWebアプリケーション、またはバックエンドシステムの実務開発経験(3年以上) ・Spring Framework(Spring Boot)を用いた開発経験(2年以上) ・RDBMS、またはNoSQLを用いたデータベース設計、および大量データを扱うシステムのチューニング経験 ・Git/GitHubを用いたプルリクエストベースでのチーム開発経験 歓迎スキル・経験 ・IoT機器、モビリティ、通信キャリア等の領域における大規模なバックエンドシステム開発経験 ・Apache Kafka、Amazon Kinesis等のストリーミングデータ処理基盤の設計・運用経験 ・Spring WebFlux等のリアクティブプログラミングの実装経験 ・gRPCを用いたマイクロサービス間通信の設計・開発経験 ・JVMの高度なチューニング、およびプロファイラを用いたメモリリーク等のトラブルシューティング経験 ・AWS(EKS, MSK, IoT Core, DynamoDB等)を利用したクラウドネイティブ環境での開発経験 ・Docker、Kubernetesを用いたコンテナオーケストレーション環境の基礎知識 開発・業務環境 開発言語:Java 21 フレームワーク:Spring Boot, Spring WebFlux データベース・KVS:PostgreSQL, MongoDB (または Cassandra), Redis メッセージング・通信:Apache Kafka (Amazon MSK), MQTT, gRPC インフラ:AWS (EKS, MSK, IoT Core, DynamoDB等), Docker, Kubernetes テスト・CI/CD:JUnit, Mockito, GitHub Actions 監視・ツール:Datadog, AWS X-Ray, GitHub, Jira, Confluence, Slack プロジェクトチームについて モビリティサービス開発部のIoT基盤チームへの配属となります。一般的なWebアプリケーションと異なり、IoT特有の「デバイス側の通信断」や「データ到着の順序逆転」といったエッジケースが日常的に発生するため、コードレビューでは「データが重複して届いた際の冪等性が担保されているか」「Kafkaのコンシューマがダウンした際のリバランス処理は適切か」といった、分散システムとしての耐障害性(フォールトトレランス)に関するシビアな議論が行われる技術志向の高いカルチャーです。 求める人物像 ・「とにかく画面にデータが出れば良い」という発想ではなく、秒間数万リクエストを捌く際のスレッドの挙動やメモリの割り当てといった、コンピューティングの根本的な仕組みに知的な興奮を感じる方 ・大量の時系列データを扱う上で、RDBMSの限界を理解し、アクセスパターンに応じたNoSQLの使い分けなど、適材適所な技術選定の議論ができる方 ・「自動車」という人命に関わるハードウェアと連動するシステムにおいて、絶対に止めてはいけないアラート処理などのミッションクリティカルな要件に強い責任感を持てる方 仕事の魅力 世界中で急速に普及する「コネクテッドカー」の頭脳とも言えるクラウド基盤を構築する、非常にスケールと社会的インパクトの大きなポジションです。Javaエンジニアとして最高難易度クラスとなる「超高スループットなストリーム処理」「リアクティブプログラミングの実践」「高度なJVMチューニング」といった最先端のデータエンジニアリング課題に日々向き合うことで、大規模分散システムのスペシャリストとして揺るぎない市場価値を獲得することができます。 働き方 リモート環境 [フルリモート] 基本的にフルリモートで働いていただけます。