【フルリモート/週5/Java】全国の物流網を最適化する巨大サプライチェーンシステムのマイクロサービス化およびバックエンド開発 お任せしたいこと [役割]バックエンドエンジニアとして、毎日数百万個の荷物が動く「大規模サプライチェーン・物流管理システム(WMS/TMS)」のJava(Spring Boot)を用いたコア機能開発、および巨大なモノリスからのマイクロサービス化をお任せします。 [役割に対して求める成果]「入出荷」「在庫引き当て」「配送ルート最適化」といった、物理的なモノの動きと連動する極めて複雑なドメイン知識を整理し、既存の稼働を一切止めることなく新機能を提供すること。また、長年の増改築で密結合となった巨大なレガシーコードに対し、ドメイン駆動設計(DDD)の概念とSpring Cloud等を用いたマイクロサービス・アーキテクチャを導入し、セール時等の急激な物流量増加にも耐えうるスケーラブルな基盤へと刷新すること。 具体的な業務内容 ・Java(Spring Boot)を用いた、物流・在庫管理向けバックエンドAPIおよび重厚なバッチ処理の詳細設計、実装、テスト ・Spring Cloud、またはgRPCを利用したマイクロサービス間のセキュアで高速なAPI連携の設計・実装 ・「ストラングラーフィグ・パターン」を用いた、稼働中の巨大モノリスシステムからマイクロサービスへの段階的かつ安全な切り出し ・数億レコードに及ぶ在庫データや配送トラッキングデータを扱うPostgreSQLにおける、複雑なクエリのチューニングおよびインデックス最適化 ・Apache KafkaやAmazon SQSを利用した、サービス間の非同期メッセージング設計と、結果整合性(Eventual Consistency)を許容する分散トランザクションの制御 ・倉庫内のハンディターミナルやロボット(AGV)から送信される大量のトラフィックを低遅延で処理するためのJVMチューニング ・OpenTelemetryやDatadogを利用した分散トレーシング環境の構築と、複数サービスを跨ぐ複雑な障害のボトルネック特定 ・JUnit、Mockito、Testcontainersを用いた統合テストの自動化による、デグレ(回帰バグ)の徹底的な防止 必須スキル・経験 ・Javaを用いたWebアプリケーション、またはバックエンドシステムの実務開発経験(3年以上) ・Spring Framework(Spring Boot)を用いた開発経験(2年以上) ・RDBMSを用いたデータベース設計、および大量データを扱うSQLのチューニング経験 ・Git/GitHubを用いたプルリクエストベースでのチーム開発経験 歓迎スキル・経験 ・物流(WMS/TMS)、サプライチェーン、または大規模EC等のドメインにおける業務システムの開発経験 ・マイクロサービス・アーキテクチャでの設計、開発、運用経験 ・ドメイン駆動設計(DDD)、またはクリーンアーキテクチャを用いた開発経験 ・gRPCを用いたサービス間通信の設計経験 ・Apache Kafka等のメッセージキューを用いた非同期処理・分散システムの構築経験 ・Docker、Kubernetes(EKS等)を用いたコンテナオーケストレーション環境の基礎知識 ・AWS(ECS/EKS, RDS, SQS, ElastiCache等)を利用したクラウドインフラ環境での開発経験 開発・業務環境 開発言語:Java 21 フレームワーク:Spring Boot, Spring Cloud, Spring Batch データベース・KVS:PostgreSQL (Amazon Aurora), Redis 通信・非同期処理:REST, gRPC, Apache Kafka, Amazon SQS インフラ:AWS (EKS, RDS, MSK, S3等), Docker, Kubernetes テスト・CI/CD:JUnit, Mockito, Testcontainers, GitHub Actions 監視・ツール:Datadog (APM), OpenTelemetry, GitHub, Jira, Confluence, Slack プロジェクトチームについて サプライチェーン開発部のバックエンドチームへの配属となります。「システムのバグが、物流センターのトラックの大渋滞や配達遅延という物理的なインシデントに直結する」という強い危機感と責任感を持つカルチャーです。そのため、コードレビューでは単なる構文の美しさだけでなく、「在庫引き当て処理中にDBがフェイルオーバーしたらどう復旧するか」「ネットワーク瞬断時にハンディターミナルからのリトライはどう処理されるか」といった、エッジケースや分散システム特有の耐障害性に関するシビアな議論が日常的に行われます。 求める人物像 ・「物理的なモノの動き」と「システム上のデータ」を一致させるという泥臭く複雑な業務ロジックの解読に、パズルを解くような知的な面白みを感じる方 ・流行りの技術(マイクロサービス等)を無目的・無計画に導入するのではなく、システムの結合度を下げるための手段として適材適所で活用できるバランス感覚を持った方 ・「日本の物流という社会インフラをソフトウェアの力で止めずに進化させる」というプロダクトのミッションに強く共感し、当事者意識を持てる方 仕事の魅力 現代のECやビジネスの生命線である「物流・サプライチェーン」の心臓部を担う、極めて社会的意義とビジネスインパクトの大きなポジションです。Javaエンジニアとして非常にニーズの高い「巨大モノリスのマイクロサービス化」「DDD(ドメイン駆動設計)の実践」「分散トランザクションの制御」といったエンタープライズ領域における最高難易度の課題に最前線で向き合うことで、大規模システムのスペシャリストとして揺るぎない市場価値を獲得することができます。 働き方 リモート環境 [フルリモート] 基本的にフルリモートで働いていただけます(※倉庫内の業務フロー理解や、現場でのシステム稼働テストを目的として、数ヶ月に1回程度、物流拠点等への出張が発生する場合があります)。