【フルリモート/週5/Java】数億件の「旅」のインベントリを瞬時に検索・予約する、グローバルOTAプラットフォームのコアバックエンドエンジニア お任せしたいこと [役割]バックエンドエンジニアとして、世界中のホテル、航空券、アクティビティなどの膨大なインベントリ(在庫)を統合し、国内外の数千万人のユーザーに最高の旅行体験を提供するグローバルOTA(Online Travel Agent)プラットフォームのコアバックエンド開発をお任せします。 [役割に対して求める成果]連休前や大型セール時に発生する劇的なトラフィックスパイクを耐え抜き、外部システム(航空会社やホテルの予約システム)の遅延や障害に一切引きずられることなく、数億通りの組み合わせからミリ秒単位で最適な検索結果を返し、ダブルブッキング(売り越し)を絶対に防ぐ強固な予約エンジンをJavaとSpring Bootで構築すること。 具体的な業務内容 ・Java(Java 21)およびSpring Boot 3を用いた、高スループットな検索・予約・決済API(RESTful / gRPC)の詳細設計、実装、テスト ・Elasticsearch(またはOpenSearch)と連携した、数億件に及ぶ動的な価格・在庫データに対する複雑な検索クエリの最適化およびサブミリ秒でのレスポンスチューニング ・Resilience4jを活用した、数十以上の外部GDS(Global Distribution System)やホテルAPI連携におけるサーキットブレーカー、リトライ、フォールバックなどの高度な耐障害性(レジリエンス)設計 ・Apache Kafka等を利用した、予約完了時の非同期メッセージング処理(メール送信、ポイント付与、外部連携)と、Sagaパターンによるマイクロサービス間の分散トランザクション管理 ・Amazon Aurora(MySQL)やRedisを用いた、突発的なセール時の予約リクエストに対する厳密な排他制御(悲観的/楽観的ロック)と在庫引き当てロジックの実装 ・JUnit 5やWireMockを用いた、外部システムの不安定な挙動(タイムアウトやエラー)をモックした網羅的なテスト駆動開発(TDD)の徹底と、Gatling等を用いた負荷テストの実施 必須スキル・経験 ・Javaを用いたWebアプリケーションのサーバーサイド開発経験(3年以上) ・Spring Framework(Spring Boot)を用いた実務経験(2年以上) ・RDBMSを用いた複雑なデータベース設計、厳密なトランザクション管理、およびSQLチューニングの経験 ・Git/GitHubを用いたチーム開発およびPull Requestベースのコードレビュー経験 歓迎スキル・経験 ・OTA(旅行手配)、ホテル予約、航空券システム、または大規模なECサイトの開発経験 ・Elasticsearch、Solr等の検索エンジンを利用した複雑な検索機能の実装およびクエリチューニング経験 ・マイクロサービスアーキテクチャの設計、および分散システムにおける耐障害性(Circuit Breakerパターン等)の実装経験 ・Apache Kafka等のメッセージキューを利用したイベント駆動型アーキテクチャの構築経験 ・高トラフィック環境下でのデータベースの排他制御(ロック機構)やキャッシュ戦略(Redis等)の実務経験 ・AWS環境(EKS, ECS, Aurora, OpenSearch等)でのコンテナ技術(Docker/Kubernetes)を利用したインフラ運用経験 開発環境 言語・フレームワーク:Java 21, Spring Boot 3, Resilience4j, JUnit 5, Gatling インフラ・ミドルウェア:AWS (EKS, Aurora MySQL, OpenSearch, ElastiCache, MSK), Docker, Kubernetes, Apache Kafka, Redis, Elasticsearch CI/CD・ツール:GitHub, GitHub Actions, Datadog (APM), Terraform, Jira, Confluence, Slack 開発チームについて プロダクトマネージャー1名、テックリード1名、バックエンドエンジニア7名(今回募集枠含む)、フロントエンドエンジニア5名、SRE3名の体制です。「外部のAPIが落ちても、我々のシステムは絶対に落とさない」という強い防衛的プログラミングの思想を持ち、サードパーティの不安定さをいかに吸収し、ユーザーにシームレスな体験として届けるかについて、チーム全員でアーキテクチャの議論を白熱させるカルチャーです。 求める人物像 ・「システムは必ずどこかで失敗する」という前提(Design for Failure)に立ち、エラーハンドリングやタイムアウト設計といった泥臭いエッジケースの網羅に知的な喜びを感じる方 ・アルゴリズムやデータ構造の知識を駆使し、複雑に絡み合う検索条件(日付、人数、部屋割り、フライト時刻等)を美しく高速なコードに落とし込める方 ・フルリモート環境下において、他職種(フロントエンドエンジニアやSRE)とも自発的かつ円滑にテキストや通話でコミュニケーションが取れる方 仕事の魅力 世界中を移動する人々の「旅」という特別な体験を、見えない裏側から確実なテクノロジーで支える非常に社会的意義の大きなプロダクトです。数億件のインベントリ検索という「パフォーマンス要件」と、不確実な外部API連携という「レジリエンス要件」の最高難易度の課題に挑むことで、エンタープライズJava開発におけるトップクラスのシステム設計能力と、圧倒的な市場価値を獲得することができます。 働き方 リモート環境 [フルリモート] フルリモートで働いていただけます。