
はじめに
皆さん、こんにちは!EXNOAのプラットフォーム基幹システム開発部の青島です。 新卒で入社した会社に2年ほど勤め、2024年の3月にEXNOAに転職し、まもなく1年が経ちます。 今回は月ごとに振り返りながら、私が行った業務と試行錯誤したことを書こうと思います。 この記事がEXNOAへの転職を考えている人の参考になれば幸いです。
配属チームと業務内容について
私は会員/商品/認証認可チームに配属され、DMM GAMESの会員情報、商品(ゲームの情報)、認証認可のAPIの開発・運用を担当しています。 この1年では新規機能開発、既存システムの改善、そしてインターンや新卒の教育など幅広い業務に携わることができました。

3月:環境構築
3月はAWSやGitHubなど開発に必要なアカウントの準備や環境構築をしました。 アカウント発行の待ち時間では、ドキュメントを読んでDMM GAMESの仕様についてキャッチアップをしました。
4月~6月:開発業務とメンター
開発業務が始まり、管理画面向けのAPI開発をしました。 この案件はサービスインがかなり先であり、開発したAPIを本番リリースしてもサービスへの影響がありません。そのため、入社したばかりの人間にはちょうどよい案件でした。
この案件では、設計・開発・本番リリースまで担当しました。単純な機能でしたが、Go、クリーンアーキテクチャ、マイクロサービス、DDDなど初めて触れる技術や思想も多く苦戦しました。 このときは業務時間以外も下記のような本を読んだり、チームメンバーに対して分からないところがあればすぐに質問していました。
- スターティングGo言語
- Web API: The Good Parts
- Clean Architecture 達人に学ぶソフトウェアの構造と設計
- ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基本
結果的に期日内に本番リリースできましたが、リリース後にバグが見つかりました。 初仕事をミスしたので落ち込みましたが、チームメンバーの方は私に期待をして多くのことを親切に教えてくれていたので、その期待に応えたく自宅でも必死に勉強していました。
また、この頃からメンター制度が始まり、年齢が近いという理由で新卒社員の指導も担当することになりました。定期的に新卒社員と1on1をすることになりました。あらかじめ会社からメンターのやり方について勉強する場が用意されていたので、初めてのことでしたが問題なくできました。
7月:画像サーバー移行プロジェクト
7月は画像サーバーをオンプレミス環境からAWS S3に移行する案件に参画しました。
S3への移行はDMM GAMES全体で同時に行う必要があり、切り替え後に不具合があれば全ての反映をロールバックする必要があったので、慎重な作業が求められました。 期日が迫り、私達のチームの管轄サービスにも対応が必要だと判明したので、急遽対応することになりました。
移行をするために、オンプレミスの画像サーバーにアクセスする処理をS3にアクセスするように処理を書き換える必要がありましたが、下記の要因でかなり難航しました。
- 既存の画像アクセスの処理が複雑なので難易度が高かった。
- S3を使ってローカル環境構築をしているサービスが他に無いので、環境構築をする方法から考える必要があった。(最終的にlocalstackを導入して環境構築をした)
- ステージング環境などからS3へアクセスできなかった。(インフラチームと協力して解決)
時間との戦いでしたし、前回の管理画面向けのAPI開発ではバグを出していたので、今回は絶対に自分のタスクを完遂したいと考えていました。 そのため、今まで学習したことをフルに活用して集中的に取り組みました。
移行の前日にステージング環境までリリースできましたが、パフォーマンス検証を実施したところ、想定以上に処理時間がかかっていることが判明しました。 このAPIはバッチでも利用されていたため、このままではタイムアウトエラーとなる恐れがありました。
そこで、バッチの管轄チームへ実行間隔の調整を相談し、Datadogでボトルネックを特定・解消したことで、この問題を解決しました。 そして、ついに本番リリースを迎えましたが、リリース後も大きな問題は発生しませんでした。
私にとって非常にチャレンジングな案件でしたが、この案件を絶対に成功させたいと考えて取り組んでいたので非常に嬉しかったです。

8〜10月:開発業務と新メンバーの受け入れ
8月は新卒メンバーがチームにアサインされ、教育担当としてOJTを行いました。
また、インターン生の受け入れや、他チームから依頼された機能の設計・実装など、様々な業務に携わりました。 このときには、最初に苦戦したGoやクリーンアーキテクチャなどにも慣れてきており、仕事に余裕が出てきました。
11月~2月:技術的負債の解消
11月からは、技術的負債を抱えた旧システムの改善に挑戦しました。
このプロジェクトは、旧システムの監視体制を改善し、エンジニアの負担を軽減することを目的としたもので、私が主体的に計画立案・設計・スケジュールとタスク管理までを担当することになりました。マネジメント系のキャリアに興味がある私にとって、非常にやりがいのある挑戦でした。 この期間では「問題点の整理」と「解決方針の策定」を行いました。
問題点の整理
まず、旧システムの問題を明確にするために、旧システムの仕様を把握することにしました。
しかし、20年ほどモノリシックに開発され続けてきたためコードが膨大な量になっており全体像を把握することが難しい状態でした。 そこで、チームメンバーと担当領域を決め、定期的に進捗や課題を共有することで、効率的にコードリーディングを進めました。
また、旧システムに詳しい方に対してインタビューをして、各機能の仕様が誕生した経緯や、現在はどのように旧システムが運用されているのかなどコードから読み取れない部分の理解を深めました。 約1ヶ月かけて、システムの全体像を把握しました。その結果、様々な問題を発見することが出来ました。
解決方針の策定
調査の結果、様々な問題点を把握することが出来ましたが、どの問題に対して焦点を当てていくべきか決めかねていました。
そこで、問題点同士の比較やグルーピングを行って問題を深堀りしたり、障害を起こした場合の影響度の重み付けを行い優先的に対応すべきものを整理していきました。 また、問題点の整理の過程では自分の考えがおかしな方向に向かわないように、定期的に自部署・他部署のメンバー・部長にレビューをお願いしました。
様々な方にレビューをしていただく過程で、私自身の論理的思考能力が足りないなと感じる場面があったので下記の本を読みました。 この本では、論理的思考の方法だけでなく、未知のものに対して調査をする方法も書かれており、今回のプロジェクトにピッタリでした。 この本を読んでからレビュー前の段階でどのような指摘が来るか予想がついたり、レビュー内容の理解も早くなったように感じています。
最終的に旧システムをリプレイスすることになったため、現在は設計をしています。このプロジェクトはまだ進行中ですが、技術的負債の解消ができれば会社に大きな貢献ができるという点や、自分自身の能力を限界まで使うことで成長を感じられたりと非常にやりがいを感じています。
まとめ
この一年は技術的なスキルだけでなく、問題解決能力、コミュニケーション能力など、様々な面で成長できたと感じています。 もちろん、まだまだ未熟な部分も多く、課題も山積みなので解消できるように努力を継続していきたいです。
また、入社したころは非常に緊張していましたが、メンバーの方は親切で、質問にも分かりやすく答えていただけるので仕事がやりやすかったです。 このブログを通して、DMM GAMESを支えるエンジニアとしてのキャリアに興味を持っていただけたら幸いです。
最後まで読んでいただき、ありがとうございました!