Mirrativ Tech Blog

株式会社ミラティブの開発者(バックエンド,iOS,Android,Unity,機械学習,インフラ, etc.)によるブログです

AtCoderで ミラティブ プログラミングコンテスト2025 を開催します

こんにちは、バックエンドエンジニアの makino です!

この度、ミラティブは 2025年7月12日(土) にAtCoderにおいて ミラティブ プログラミングコンテスト2025 を開催します。

atcoder.jp

私自身、数年前まで競技プログラミングに熱心に取り組んでおり、夜な夜なコンテストに参加してはレートの増減に一喜一憂する日々を過ごしていました。 今では競技プログラミングから少し離れていますが、あのとき培ったスキルや知識は、日々の業務に確実に活かされていると感じています。

そんな自身の経験から、「AtCoderユーザーにもっとミラティブを知ってもらいたい」「一緒に働く仲間になってほしい」という想いをずっと持っており、この度ついに AtCoder での公式コンテスト主催が実現しました。

この記事では、AtCoderでのコンテストをきっかけにミラティブのことを知っていただいた方に向けて、

  • なぜミラティブが競技プログラマーを求めているのか

  • 競プロで培ったスキルが開発現場で役立ったエピソード

をご紹介しようと思います!

ミラティブが競技プログラマーを求めている理由

高トラフィック×リアルタイム性が求められる環境

ミラティブが運営する「Mirrativ」は、スマホ1台で誰でも気軽にゲーム実況配信ができるプラットフォームです。おかげさまで、「スマホゲーム配信者数国内No.1」(※自社調べ)というポジションを確立しています。

Mirrativでは、同時に多くのユーザーが配信・視聴・コメントなどをリアルタイムに行うため、非常に高トラフィックかつ低レイテンシなシステム設計が求められます。

このようなシステムでは、設計段階から計算量やデータ増加の見積りをシビアに行う必要があります。そのためミラティブの開発においては、機能開発の企画や仕様を決める段階からエンジニアも議論に加わり、機能仕様を決定していきます。

AtCoderユーザーであれば、時間・空間計算量を意識し、制約内で最適解を導く力が自然と身についていると思います。この素養は、Mirrativのようなリアルタイム性が高く大規模なサービスの開発との親和性が高いと考えています。

スピード感ある開発が求められるスタートアップ

ミラティブはスタートアップとしての機動力を大切にしており、素早く仮説検証を行い、ユーザーの反応を見ながらリリースサイクルを高速で回す開発体制をとっています。そのため、不確実性の高い環境や短い開発スパンの中でも高い品質を担保できるエンジニアが求められています。

競技プログラミングで磨かれる、制限時間内に複雑な要件を咀嚼し最適な解法を導く力は、私たちのような開発体制においては力強い武器になります。

競技プログラミングの経験が役立ったエピソード

競技プログラミングで得た知識が実際に業務に役立った事例として、私が経験したMirrativ開発業務のエピソードをご紹介します。

トポロジカルソートを用いたマスターデータのロード

Mirrativでは、エモモと呼ばれるアバターの設定やギフトの設定など、アプリの挙動に関わる様々な「マスタデータ」をデータベースに保持しています。 このマスタデータは、定期的に本番環境のデータベースに一括で登録・更新されます。

Mirrativのマスタデータは数十種類のテーブルに分かれており、本番のデータにロードする際には1つのトランザクションでは処理しきれないほどの量があります。そのため、複数のトランザクションに分割して反映する必要があります。

ここで問題になるのがデータ間の依存関係です。

例えば、「ランキング報酬テーブル」は「アイテムテーブル」に存在するアイテムIDを参照しているといったように、あるテーブルのデータが別のテーブルのデータに依存していることがあります。 このときに「アイテムテーブル」より先に「ランキング報酬テーブル」がロードされてしまうと、「ランキング報酬テーブル」が参照しているデータが存在しない状態となってしまい、エラーや想定外の挙動に繋がるリスクがあります。

ここまで来ると、察しの良い競プロerの方はピンと来るかもしれません。 この「依存関係を考慮して、順番にデータを処理する」という問題は、 トポロジカルソート で解決できます。 依存関係をノード(=マスタテーブル)とエッジ(=依存)で表すと、この構造はDAG(有向非巡回グラフ)になります。

下図のようにマスタテーブル間に依存関係があるとすると、

依存先を先に反映させたいので、エッジの向きを反転させ、

トポロジカルソートを行うことで、安全なマスタデータのロード順を決めることができます。

このように、競技プログラミングで一度は解いたことのある「典型問題」が、現場の課題解決にズバッと刺さる瞬間が訪れることがあります。

まとめ

ミラティブが競技プログラマーを求めている理由、競技プログラミングの経験が役立ったエピソードをご紹介しました。 ミラティブでは、私を含めてAtCoderユーザーが現在5名ほど在籍しており、それぞれのメンバーが現場で競プロスキルを活かし、日々の開発を楽しんでいます!

We are hiring!!

ミラティブでは一緒に開発してくれるエンジニアを募集しています! 今回のコンテストをきっかけにミラティブに興味を持った方、アルゴリズム改善・パフォーマンスチューニング・スケーラブルなシステム設計などに興味のある方、ぜひご応募ください!

また、学生向け長期インターンの募集もスタートしました!こちらもエントリーお待ちしています!!

hrmos.co

ミラティブの技術関連の情報は公式Xアカウント(@mirrativ_tech)にて随時発信していますので、ぜひフォローいただけると嬉しいです。

hrmos.co

www.mirrativ.co.jp

mirrativ.notion.site

speakerdeck.com