400万人が利用する会社訪問アプリ
株式会社AbemaTV / 開発事業本部
【自己紹介】 株式会社サイバーエージェントにバックエンドエンジニアとして内定承諾後、内定者バイトを4つの会社で合計6ヶ月間、Golangを用いた新規、保守開発プロジェクトにてWebアプリケーション開発を経験しました。
プロダクトの成長に貢献し大きな利益を生み出せるPdMになる
株式会社サイバーエージェントにバックエンドエンジニアとして内定承諾後、内定者バイトを4つの会社で合計6ヶ月間、Golangを用いた新規、保守開発プロジェクトにてWebアプリケーション開発を経験しました。 その後株式会社サイバーエージェントに22新卒として入社しAbemaTV株式会社にBackendエ
<概要> ・Global API Rate Limitのmiddlewareの構築・全てのAPIにRateLimitを導入 ・CloudFlare Workers・KVの導入によるCDNレイヤーでのフォールバック実装 ・Cloud Armorに事前構成 WAF ルールの適用・障害試験 <業務内容> ・技術選定(主にインフラ) ・システムの要件定義 ・設計方針の選択肢検討・メリデメ出し ・Goによるバックエンドのmiddlewareの実装・テスト ・TerraformでGCP・CloudFlareインフラリソース構築 ・障害テストによる動作確認
<概要> ・他PFのコンテンツが視聴できるプランを販売できるようにする施策 ・旧決済基盤を刷新しより汎用性の高い決済基盤の構築 <担当業務> ・バックエンドのエンジニアリードとしてのメンバーのタスク管理やサポート ・新規マイクロサービス構築(インフラ・middlewareを含め) ・API IF・DBモデリング ・各クライアント(Andoroid, IOS, Web)とPMとの仕様策定 ・タスク設計、タスクの進捗管理・各分掌との日程調整(QA、負荷試験等) ・ToC, ToBのAPI設計・実装 ・負荷試験後のボトルネック特定・パフォーマンス改善 <実績> ・バックエンドのエンジニアリードとして3人のチームメンバーをマネジメントした。 <取り組み> ・決済ドメインは初めてだったので各決済PFの公式ドキュメントや決済に関わる既存コードを徹底的に読み込んだり、クライアントのAPIをコールする処理のコードや設計を読み込むことで全体仕様を把握した。 ・クライアントロジックまでキャッチアップしたためクライアント・バックエンドの視点を盛り込んだ上での案を他のクライアントリード・PMに提案できスピーディに仕様や要件を決めることに貢献できた。 ・reconcile workerを導入することで決済プラットフォームのDBとサービスのDBの整合性にズレが発生した場合検知して修正する実装を追加することでシステムの整合性を向上させた。 ・API処理やイベントハンドリングの処理を冪等に実装しクライアントやバックエンドでretryしてもデータ整合性に問題が発生しないように実装することでサービスの信頼性を高めた。
<担当業務> ・コンテンツ配信を責務とする大規模なマイクロサービス(約30万行ほどの規模)を新規作成しリプレイスを行った。 <業務内容> ・新規マイクロサービスの技術選定(インフラを含む) ・各クライアント(アプリ・Web)とのIFの仕様策定・要件定義 ・Goの新規マイクロサービスの設計・実装 ・API IF設計 ・DB設計 ・古いミドルウェアの最新・最適化 ・キャッシュ戦略構築 ・Terraform, K8sインフラ設計・構築 ・QA ・負荷試験の実施 <取り組み> ・大規模なマイクロサービス(約30万行ほどの規模)のリプレイスを実行。 ・マスタデータ取得部分をrestrettoという高速のオンメモリキャッシュとRedisを導入 ・拡張性・保守性の高くデータサイズの小さいAPIレスポンスのモデリングを行った。 ・既存のコードや仕様がかなり複雑で動作確認も非常に大変だったが実際のユースケースをログから調査して本番ではどのような使われ方をしているのかを洗い出し、開発環境のテストデータの入稿も本番と同じようなデータを使って検証することで旧マイクロサービスとの機能差分に差が出ないように工夫した。入稿もやったことがなかったがビジネスやクライアントのメンバーに協力してもらいやり遂げた。 ・usecase層にビジネスロジックを集約していたためusecaseの実装が極めて複雑になってしまう構造になっておりメンテナンスコストが高い課題があったのでentity(model)層にロジックを集約することでテスタブルかつ保守性、可読性の高いコードに変更した。
【役割】 新規プロジェクトのPMとバックエンド、インフラのリードエンジニアを兼任。フロントエンドもメンバーとして実装を行なった。 【業務内容】