【フルリモート/週5/Node.js】数百万の同時接続を捌くライブ配信プラットフォームのリアルタイムチャット基盤開発

案件要件
- 職種
- エンジニア
- 業務内容
- システム開発・運用SES
- 報酬目安
- 5,600 ~ 6,500円/時
- 稼働時間目安
- 週5日 (時間目安 160時間)
- はたらく場所
- フルリモート
- スキル
【フルリモート/週5/Node.js】数百万の同時接続を捌くライブ配信プラットフォームのリアルタイムチャット基盤開発
お任せしたいこと
[役割]バックエンドエンジニアとして、数百万人のユーザーが熱狂する「大規模ライブ配信プラットフォーム」における、Node.js(TypeScript)を用いたリアルタイムチャット基盤および投げ銭(ギフティング)APIの設計・開発をお任せします。
[役割に対して求める成果]有名配信者のイベント時などに発生する「1秒間に数万件のコメント投稿」というスパイクアクセスに対して、サーバーをクラッシュさせることなく、すべての視聴者へミリ秒単位の遅延でメッセージを配信(ブロードキャスト)するスケーラブルなWebSocket基盤を構築すること。また、Node.js特有のシングルスレッドアーキテクチャにおけるイベントループのブロッキングを極限まで排除し、極めて高いスループットを維持し続けること。
具体的な業務内容
・Node.jsおよびTypeScriptを用いた、高並行アクセスに耐えうるWebSocketサーバーおよびREST/GraphQL APIの詳細設計、実装、テスト
・Redis(Pub/Sub)やApache Kafkaを利用した、複数コンテナ(Pod)間にまたがるスケーラブルなメッセージングアーキテクチャの設計
・V8エンジンのプロファイリング(ヒープダンプの解析等)を通じたメモリリークの特定と解消、およびガベージコレクション(GC)の最適化
・Node.jsのイベントループをブロックしうる重い同期処理の特定と、Worker Threads等を活用した別スレッドへの処理の切り出し
・投げ銭(ギフティング)等の決済処理を担うGoやJavaのマイクロサービス群に対する、gRPCを利用した低遅延な内部API連携
・k6やArtillery等の負荷テストツールを利用した、本番同等のC10K/C1M(クライアント1万台/100万台問題)を想定した限界テストの実施
・Fastify等を利用した、オーバーヘッドの少ないルーティングフレームワークへの移行・チューニング
・Datadogを利用したAPM(アプリケーションパフォーマンスモニタリング)の運用と、スロークエリ・レイテンシ悪化の継続的な監視・改善
必須スキル・経験
・Webアプリケーションのバックエンド開発実務経験(3年以上)
・Node.jsおよびTypeScriptを用いた実務開発経験(2年以上)
・RDBMS、またはNoSQL(Redis, MongoDB等)を用いたデータベース設計・チューニング経験
・Git/GitHubを用いたプルリクエストベースでのチーム開発経験
歓迎スキル・経験
・WebSocket、WebRTC等を利用したリアルタイム通信・チャット機能の開発経験
・ライブ配信、オンラインゲーム等の高トラフィックなBtoCサービスの開発・運用経験
・Node.jsの非同期I/O、イベントループの仕組みに関する極めて深い理解
・Redis Pub/Sub、またはメッセージキュー(Kafka, RabbitMQ等)を利用した分散システムの設計経験
・メモリリーク調査やCPUプロファイリングなど、Node.jsの高度なパフォーマンスチューニング経験
・Docker、Kubernetes(EKS, GKE等)を用いたコンテナ環境でのインフラ運用経験
・gRPCを用いたマイクロサービスアーキテクチャでの開発経験
開発・業務環境
開発言語:Node.js, TypeScript
フレームワーク:Fastify (または Express), NestJS
通信・リアルタイム処理:WebSocket (ws / Socket.io), gRPC, GraphQL
データベース・KVS:MySQL (Amazon Aurora), Redis, MongoDB
インフラ:AWS (EKS, ElastiCache, MSK等), Docker, Kubernetes
テスト・負荷テスト:Jest, k6 (または Artillery)
監視・ツール:Datadog, GitHub, Jira, Slack
プロジェクトチームについて
バックエンド基盤開発チームへの配属となります。「イベントループをいかに止めないか」というNode.jsエンジニアとしての矜持を強く持つカルチャーです。コードレビューでは、非同期処理(async/await)の適切なハンドリングや、「この巨大なJSONのパース処理がメインスレッドをブロックしないか」といったパフォーマンスに直結するシビアな議論が日常的に行われます。スパイクアクセスでサーバーが不安定になった際も、それを責めるのではなく「アーキテクチャの限界を押し上げる絶好の機会」と捉えてチーム全員でチューニングに熱狂します。
求める人物像
・単に「JavaScriptでバックエンドが書ける」というレベルにとどまらず、Node.jsの裏側(libuvやV8エンジン)の仕組みにまで踏み込んで技術を探求できる方
・「数百万人が同時に接続する」というC1M問題のような、インフラとアプリケーションの境界線にある極限の技術課題にプレッシャーよりも知的な興奮を感じる方
・パフォーマンス要件とビジネス要件(新機能のリリース速度)のトレードオフを理解し、PdMに対して技術的な観点から建設的な提案ができる方
仕事の魅力
Node.jsの最大の強みである「ノンブロッキングI/Oによる大量の同時接続処理」を、数百万ユーザーが熱狂するライブ配信という最も適したドメインで極めることができるポジションです。メモリ管理やイベントループのチューニング、分散メッセージングの設計など、Node.jsエンジニアとしての最高難易度の課題をクリアしていくことで、世界中の高トラフィックサービスで通用する圧倒的なバックエンド開発スキルを獲得することができます。
働き方
リモート環境
[フルリモート] 基本的にフルリモートで働いていただけます。
株式会社Kaizen Tech Agent
株式会社Kaizen Tech Agentは、「人と技術をつなぐ」ことを企業理念に掲げ、日々向上していく『技術』と『人』を最適な形でむつび付け提供することで、
お客様にとって真にプラスとなる価値でありたいと考えております。
私たちはそれぞれの個性を尊重し、ほっとする和みの社風でありながら、変化する時代に対して受け身にならず、未来への挑戦心を宿しています。
事業領域は、WEBアプリ開発、業務システム開発、スマホアプリ開発、インフラ構築など幅広く展開しており、
フリーランス様に対して最適な案件をご提案させて頂いております。どんな些細な事でも結構ですので是非いつでもお気軽にご相談ください。
