Skip to content

Commit

Permalink
過去の内容のブラッシュアップ(2025年)
Browse files Browse the repository at this point in the history
  • Loading branch information
popon-01 committed Jan 20, 2025
1 parent 85addd2 commit ec0d5d5
Showing 1 changed file with 48 additions and 59 deletions.
107 changes: 48 additions & 59 deletions job-resume.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,10 @@

### 言語

- Go
- 業務で発生する実装にメインで使用しています。
- Python
- 大学のサークル活動・授業などで利用していました。
- 業務でもちょっとした計算処理などに用いています。
- Go / Python
- 業務のバックエンド開発で実用した経験があります。
- JavaScript / TypeScript
- フロントエンドアプリケーションの簡単な改修程度であればこなせます。
- Java
- 大学の授業や開発演習などで使用経験があります。
- C/C++
Expand All @@ -30,14 +29,14 @@

### クラウドサービス

- GCP
- GKE
- Cloud Run
- Cloud Memorystore for Redis
- Cloud SQL
- BigQuery
- PubSub
- Cloud Logging
- Google Cloud
- GKE
- Cloud Run
- Cloud Memorystore for Redis
- Cloud SQL
- BigQuery
- PubSub
- Cloud Logging

### CI

Expand All @@ -51,14 +50,13 @@

## 職務経歴

- 合同会社DMM.com(2020年4月 - 現在)
- 合同会社DMM.com(2020年4月 - 2024年3月)
- 株式会社ニーリー(2024年4月 - 現在)

### 合同会社DMM.com(2020年4月 - 現在
### 合同会社DMM.com(2020年4月 - 2024年3月

動画サービスやECなど様々な事業を展開している会社に勤務しています。

新卒で入社し、その後現在まで会員・決済など事業部横断で利用される機能を管理する部署で勤務しています。
各横断基盤を提供するWeb APIのGatewayサーバーや、そのGatewayサーバーから利用される認可サーバーの保守・運用を担当しています。
会員・決済などの事業部横断で利用されるプラットフォーム機能を管理する部署に所属していました。
各プラットフォーム機能を提供するWeb APIのGatewayサーバーや、そのGatewayサーバーから利用される認可サーバーの保守・運用を担当しました。

#### 新卒研修

Expand All @@ -71,66 +69,57 @@
- 期間:2020年7月 - 2020年10月
- ロール:バックエンドエンジニア

API GatewayではOAuth2をベースとする認可を行っています。チームではそのためのAPIクライアントを管理しています。当時はクライアントの発行やスコープの追加の申請をチケットで管理しており、申請を受けてメンバーが手動で作業を行っていました。

プロジェクトではこの作業の半自動化を行いました。API経由で申請を管理し、メンバーが申請を承認するとクライアント管理のためのジョブが実行されるような仕組みを実装しました。自分は業務フローの設計やAPI設計、バックエンドAPIの実装を担当しました。
API GatewayではOAuth2をベースとする認可を行っており、チームではそのためのAPIクライアントを管理していました。当時はクライアントの発行やスコープの追加の申請をチケットで管理しており、申請を受けてメンバーが手動で作業を行っていました。
これらの作業の半自動化のため、申請を管理するWeb APIを実装し、届いた申請をメンバーが承認するとクライアント管理のためのジョブが実行されるような仕組みをSlackによるChat Opsで用意しました。自分は業務フローの設計やAPI設計、バックエンドAPIの実装を担当しました。

定期的に発生する定型業務の作業量を大幅に減らすことができ、チームの負荷や申請のリードタイムを改善することができました。

#### 認可サーバーのクラウド移行

- 期間:2020年10月 - 2022年12月
- ロール:バックエンドエンジニア
- ロール:バックエンドエンジニア・プロジェクトリーダー

インフラ管理のオペレーションコストを下げることを目的として、オンプレミス環境で稼動しているAPI Gatwayの認可サーバーのクラウド移行を行うプロジェクトを行いました。クラウド版システムの構成や移行計画の設計、移行作業に必要な機能の実装を担当しました。また、プロジェクトが泥沼化してチームの他メンバーの助力を仰いだ際、作業内容の取りまとめやタスク割り振りなども行いました
インフラ管理のオペレーションコストを下げることを目的として、オンプレミス環境で稼動しているAPI Gatwayの認可サーバーのクラウド移行を行うプロジェクトを行いました。クラウド版システムの構成や移行計画の設計、移行作業に必要な機能の実装を担当しました。途中プロジェクトが泥沼化してチームの他メンバーの助力を仰ぐことになりましたが、その際の作業内容の取りまとめやタスク割り振りなども行いました

共通機能全ての認可処理を扱うサーバーということもあって、ゼロダウンタイムでの移行が求められました。ゼロダウンタイムで移行する上では特にDBのデータを同期して移行させる部分が課題でした。許容できるダウンタイムが短く、また稼動しているDBのソフトウェアバージョンも古かったのでサードパーティの仕組みを使うことができませんでした。そのため、DBの移行に関しては自前の実装による工夫が必要でした。この点には非常に苦戦して数回の計画変更を行うこととなりました。これらの計画変更以外にも移行を進めるなかで様々な課題点がみつかり、なかなか収束しなかったためプロジェクトが長期化することとなりました。
プラッフォフォーム機能全ての認可処理を扱うサーバーということもあって、ゼロダウンタイムでの移行が求められました。ゼロダウンタイムで移行する上では特にDBのデータを同期して移行させる部分が課題でした。許容できるダウンタイムが短く、また稼動しているDBのソフトウェアバージョンも古かったのでサードパーティの仕組みを使うことができませんでした。そのため、DBの移行に関しては自前の実装による工夫が必要でした。この点には非常に苦戦して数回の計画変更を行うこととなりました。これらの計画変更以外にも移行を進めるなかで様々な課題点がみつかり、なかなか収束しなかったためプロジェクトが長期化することとなりました。

作業者としては2022年12月ごろまでこのプロジェクトに携わっていました。しかし、パフォーマンスのチューニングがうまく進まず目標性能を達成できなかったため2023年4月ごろチームリーダーとしてプロジェクトを凍結する判断をしました。計画の重要性と難しさを痛感した案件となりました。
作業者としては2022年12月ごろまでこのプロジェクトに携わっていましたが、チームリーダーとしてのタスクに専念することになりプロジェクトを離れました。その後、パフォーマンスのチューニングがうまく進まず目標性能を達成できなかったため2023年4月ごろプロジェクトを凍結する判断をしました。計画の重要性と難しさを痛感した案件となりました。

#### チームリーダー業務

- 期間:2022年4月 - 現在

2022年4月からチームリーダーを担当しています。チームで動いているプロジェクトについて、メンバーからの相談を受けたり進め方のレビューを実施したりしています。また、タスク管理やルール整備などのチームの仕組み作りも行っています。

2023年1月以降はプロジェクトの作業者としての業務よりリーダー業務の方がメインになりました。リーダー業務に専念しつつ、その傍らで細かな保守や開発を担当するようになりました。2023年1月以降チームで進めていたプロジェクトには以下のものがあります。

##### API Gateway の障害インパクト軽減 (2023年2月 - 2023年8月)
決済APIの不具合の影響に巻き込まれてGateway全体がダウンしてしまうという障害がありました。これを受けてバックエンドのAPIの障害影響を抑えるための対策を行いました。

まず、オンプレミス環境への踏み台プロキシについて認可サーバーが経由するサーバーを分離・独立させる対応を行いました。Gatewayが利用している認可サーバーについて影響の波及を抑えることで、障害の発生がGateway全体のダウンに繋がってしまう事態を回避できるようになりました。
- 期間:2022年4月 - 2024年3月

また、Gatewayの全エンドポイントに対して横断的にサーキットブレーカーを導入しました。障害のあったエンドポイントへのアクセスを止めることでGatewayやその周辺システムへの障害影響を早期に遮断できるようになりました。
2022年4月からチームリーダーを担当し、チームのプロジェクトに関する相談・レビューや、タスク管理やルール整備などのチームの仕組み作りなどを行いました。
2023年1月以降はプロジェクトを持たずリーダー業務に専念し、細かな保守や開発のみを担当するようになりました。

##### API Gateway キャッシュサーバー負荷障害対策(2023年5月 - 2023年8月)
2023年1月以降チームで進めていたプロジェクトには以下のものがあります。これらのプロジェクトでは直接作業を担当せず、プロジェクト管理やレビューなどを通じてプロジェクトに関与しました。

Gatewayのトラフィック増加に伴い、深夜ピーク帯にパフォーマンスが落ちてレイテンシが上がってしまう問題が発生するようになりました。原因はGatewayがキャッシュサーバーとして利用しているRedisサーバーの性能不足でした。影響を抑えるための暫定対応を行いつつ、Redisバージョンアップによるthreaded I/Oの有効化やリードレプリカの導入など性能向上のための対応を急ぎ実施しました。
- API Gateway の障害インパクト軽減 (2023年2月 - 2023年8月)
- Gatewayの全エンドポイントに対してサーキットブレーカーを横断的に導入したり、オンプレミス環境への踏み台サーバーを接続先サーバーごとに分割する対応を実施しました。
- API Gateway キャッシュサーバー負荷障害対策(2023年5月 - 2023年8月)
- Redisサーバー起因で散発的にトラフィックが悪化してしまう問題に対し、影響を抑えるための暫定対応を行いつつRedisバージョンアップによるthreaded I/Oの有効化やリードレプリカの導入などの対策を実施しました。
- API Gatewayのエンドポイント設定管理委譲(2023年7月 - 2024年3月離脱)
- チームで行っていたGatewayのエンドポイント設定の管理・運用を、プロキシしているAPIを運用する各チームへ移譲するための仕組みづくりを進めました。
- フロントアプリケーション用Gatewayの用意(2023年7月 - 2024年2月)
- バックエンドアプリケーション向けのAPI Gatewayとは別に、フロントエンドアプリケーションの外部エンドポイントを提供するサーバーを新規で用意しました。
- API Gateway の性能検証・チューニング(2023年6月 - 2024年3月離脱)
- 新規プラットフォーム機能の追加に伴う大幅なトラフィック増加に備えるための負荷対策や、今後に向けたトラフィックキャパシティの把握などを進めました。

##### API Gatewayのエンドポイント設定管理委譲(2023年7月 - 現在)
#### チームの指針検討

Gatewayのエンドポイント設定はGitHubで管理しており、設定変更は各チームがPRの形で依頼することで行っています。このPRのレビューをチームで行っているのですが、設定のレビューの際にバックエンドチームとのコミュニケーションが必要な部分が多くチームの負担になっています。コミュニケーションコストやリードタイムを削減するため、エンドポイント設定の管理を各バックエンドチームに委譲するプロジェクトを進めています。プロジェクトではエンドポイント設定の権限管理や設定バリデーションを行う仕組みの構築を進めています。
- 期間:2023年5月 - 2024年3月
- ロール:チームリーダー

##### フロントアプリケーション用Gatewayの用意(2023年7月 - 現在)
チームのミッション・ビジョンをメンバーと議論しながら策定しました。
チームの担当領域やその領域において価値を出せている状態を言語化することで、メンバー間で目指す先の認識を合わせつつロードマップを検討できる状態を目指しました。
また、策定したミッション・ビジョンを軸としてロードマップを継続的に更新していくためのルールの設計をしました。

部署ではバックエンドアプリケーションの共用稼動環境としてkubernetesクラスタが運用されています。API Gatewayはこのクラスタで稼動するアプリケーションの外部エンドポイントを提供する役割も担っています。このクラスタで新たにフロントエンドアプリケーションもサポートすることになったため、フロントエンドアプリケーションの外部エンドポイントを提供するサーバーの実装を進めています。
チーム内でミッション・ビジョンの定義やその目的に関する認識があいまいだったので、まずは策定するものの定義や目的をはっきり決めるところからスタートしました。
また、決めたものが自分の独りよがりにならないよう、内容に関するメンバーの意見や用意した草案に対するレビュー・FBを収集する時間を設けて丁寧に議論を進めました。

##### API Gateway の性能検証・チューニング(2023年6月 - 現在)

共通基盤の新機能を開発するにあたり、バックエンドのAPIへのトラフィックが大幅に増えることとなりました。Gatewayの負荷もそれに伴って上がるため、性能の検証を行うことになりました。新機能実現に向けた性能試験の実施と負荷対策は完了しましたが、今後に向けて限界性能とそのボトルネックの調査を引き続き進めています。

#### チームの指針検討(2023年5月 - 現在)

チームやプロダクトの将来を決めるための活動を行っています。将来の方向性を検討する中でチームの役割や目的についての認識を揃えなければならないと感じ、チームのミッション・ビジョンをメンバーと話しながら決定していきました。現在はロードマップ管理の仕組みづくりを進めていて、ロードマップを更新する仕組みの設計や新規案件検討のための利用者アンケートの準備を行っています。

#### API Gateway・認可サーバーの保守開発(2020年7月 - 現在)

上記のプロジェクトと並行してAPI Gatewayや認可サーバーの保守業務を行っています。問い合わせ対応や不具合・障害の対応、機能追加のための開発などを行っています。

## 自己PR

キャッチアップやトラブルシュートのための調査力には自信があります。API Gatewayも認可サーバーも自分が配属される前からあったシステムですが、様々な業務で理解を深めていった結果今ではどちらについても社内トップレベルで熟知しているという自負があります。コードベースやドキュメントを調査して情報を整理するのは得意だと思います。

不具合調査や障害調査についても多く経験しています。API Gatewayというプロダクトの性質上、複数のアプリケーションにまたがった処理を追う機会も数多くありました。これらの調査を通じて問題の切り分けを行う力も身に付いていると感じています。

チームリーダー業務を通じて自分の意志で決定を行う経験も積んでいます。チームのアクションを決めたりメンバーの相談に乗ったりする際は課題への対応を都度自分で検討していました。共通基盤の全APIの入り口という影響力の大きいプロダクトを運用する中で課題に対するベストな対応は何なのか状況も踏まえて決断しなければならないこともありました。
キャッチアップやトラブルシュートのための調査力には自信があります。コードベースやドキュメントを調査して情報を整理したり、業務を通して既存のコードベースに対する理解を深めることを得意としています。
チームリーダー業務を通じて自分の意志で決定を行う経験も積んでいます。チームのロードマップや課題に対するアクションの方針など、情報を揃えて決断を行う業務を多く経験しています。
またチーム横断な部署に所属していた経歴も多く、チーム外のメンバーとのコミュニケーションも得意です。必要な協力を仰いだり、ステークホルダーの意見を取りまとめたりしながらチーム横断でプロジェクトを進めていくことができます。

0 comments on commit ec0d5d5

Please sign in to comment.