## プロダクト概要
不動産管理会社向けの精算管理SaaSのバックエンドを2022年から担当。
請求・入金・集金代行のドメイン全般を、モデル設計から実装・運用まで一貫して担当している。
入金データ約224万件・相殺データ約622万件を扱う規模。
主な技術スタックは Ruby on Rails / MySQL / Docker / GitHub Actions。
## 概要
2022年の参画以降、他のプロジェクトとして切り出していない日常的な開発・運用業務を継続的に担当。
本番環境で発生する障害・重大な不具合の調査から恒久対応・再発防止までを、ログ・SQL・認可処理・
データ生成ロジックを横断して担ってきた。
- 期間:2022年〜継続中
- チーム構成:エンジニア6名
- 自分の役割:障害調査・原因特定・恒久対応、既存ドメインの改修
- 使用技術:Ruby on Rails, MySQL, Docker, GitHub Actions
## 課題
請求・入金・集金代行という性質上、既存ロジックへの機能追加や改修は影響範囲の見極めが難しく、
一つの不具合が請求金額や送金項目、報告書データの整合性に波及するリスクが常にあった。
障害発生時は、まず影響を止める初動対応と、根本原因を潰す恒久対応を切り分け、
スピード感を持って対応する必要があった。
## 打ち手・代表事例
一次情報(GitHub PR・ログ)で内容と対応まで確認できた障害・重大不具合対応の中から、代表例を記載する。
**送金項目一覧CSVの504タイムアウト解消**
明細ごとに関連オブジェクトを都度読み込む大規模なN+1クエリが原因と特定。必要な関連データを
事前ロードする形に修正し、本番相当データで性能検証を実施した。
→ DBクエリ回数 57,606回 → 31回(約99.9%削減)、DB処理時間 94秒 → 19秒に短縮。
**会計日変更処理の本番障害対応**
本番環境で500エラーが発生した障害を調査し、OOM後のスケールアップで旧イメージのタスク定義を
指定したことにより、削除済みテーブルを参照するトリガーが再適用されていたことを特定。
該当トリガーを削除して復旧させた上で、スケールアップ時の確認手順を整理し、ポストモーテムを作成した。
→ 検知から復旧まで約20分。
**CSV取込・データ整合性まわりの恒久対応(複数件)**
- 取引先支払CSV一括取込時、想定される業務エラーが例外捕捉の対象外となりシステムエラー
(HTTP 500)として扱われていた問題を修正し、利用者が原因を理解できる形(HTTP 400・
説明的なエラーメッセージ)で返却するよう変更
- 送金依頼更新時、一部契約のみを編集すると対象外契約の手数料まで重複作成される不具合を調査し、
削除対象と再生成対象のスコープのずれを特定してガード処理を追加
- 支店を横断した一括発行で報告書の送金項目が欠落する不具合を調査し、認可判定の参照先に
誤りがあることを特定して修正(認可の仕組み自体は維持したまま、正しいデータを取得できるよう対応)
## 成果
- 原因・修正内容まで一次情報で確認できた障害・重大不具合対応は少なくとも5件
- 代表例として、送金項目一覧CSVのN+1クエリ解消でDBクエリを約99.9%削減
- 本番障害の会計日変更処理では、約20分で復旧するとともに運用手順の見直しとポストモーテム作成まで実施
- 直近1週間(2026/6/29〜7/5)では、作成PR11件のうち品質改善目的のPRが4件、再発防止策の実施が4件、
PRのリードタイムは平均4.5日