これまで参加してきた開発プロジェクトと学び
こんにちは。土居です。
今回は自分がこれまでDWSで携わらせていただいた開発プロジェクトを簡単に振り返ってみようと思います。というのも、DWSに最近入社された方々の自己紹介を聞いていた際、自分もこの11月でDWSに6年勤務していることに気づき、どのような仕事をしてきたのかを一度整理してみるのも面白いと感じたためです。
参加してきた開発プロジェクト
卸売業向けの販売促進Webサイトのバックエンド開発・運用保守(継続参画中)
記念すべき初参加プロジェクトであり、ありがたいことに現在もコアではないながら関わり続けております。
当時は採用フローに体験入社フェーズがあり、このプロジェクトのコーディングを通じてDWSでのリモートでの働き方(筆者は初めてのリモートワークでした)や、Githubを中心とした基本的なチーム開発の方法を学びました。AWSクラウドサービスにもここで初めて触れました。
また、パフォーマンスを非常に重視しているサービスとなっており、バックエンドのパフォーマンス改善方法についても学ぶことができました。
学んだこと
- 基本的なリモートワークのコミュニケーション方法
- Spring Framework
- AWSクラウドサービスの基本
- バックエンド・インフラ面の種々の障害の対応方法
- Webアプリケーションのパフォーマンス改善方法
人材能力診断ツールの(継続参画中) 開発・運用保守
継続して参画中のプロジェクトとなります。Ruby on Railsは初めてであったため、Railsチュートリアルを一通り実施してから参加しました。Railsは当社の複数のプロジェクトでも使用されているため、非常に役立っています。また、DWSが運用保守をしているサービスの中では特に多くのエンドユーザー様に利用されているものであるためか定期的に新しいケースの障害が発生しており、その度に良い勉強になっています。
学んだこと
- Ruby on Rails
- 想定していない操作などによる障害の対応方法
英会話のE-learningサービスの管理機能の開発
こちらのプロジェクトでは、自分よりも他チームメンバーの方が技術的に卓越していたことやプロジェクトに遅延が発生していたという状況もあり、当初の機能の実装の役割から、タスク管理とお客様とのやり取りに役割をシフトしました。プロジェクト中であっても問題を認識し、状況によって柔軟に役割を変えることも円滑な進行には大事であることを学びました。
学んだこと
- タスク管理ツールの活用方法
- 顧客とのコミュニケーション
- プロジェクトの問題の把握と柔軟な解決方法の模索
モバイルアプリケーション開発向けの汎用的バックエンドサービスを提供する管理画面のフロントエンドの実装
バックエンドは2018年当時としてはとても挑戦的だったはずのフルサーバレスでの構築となりましたが、私は管理画面のフロントエンド開発を担当しました。SPA(Single Page Application)という概念に触れたのもここが初めてでした。様々なパッケージを組み合わせて環境構築するフロントエンドの複雑さに苦労する一方で、単純にコードが画面の動きに反映されるわかりやすさに面白さを感じました。
学んだこと
- SPA
- フロントエンドのパッケージ管理、自動テストの環境構築方法
- CSSの設計手法(BEM)
自社コーポレートブログの旧システムからWordPressへの移行
社内システムで規模が小さいものながら、システムの移行において注意すべき点を学ぶことができました。また、WordPressのデータベース構造についても学ぶことができ、WordPressの利用の多い運用保守業務においてとても役に立ちました。
学んだこと
- WordPress
- DNS
- 異なるシステムへのデータ移行
自社コーポレートサイトのリニューアル・運用保守
マーケティング・デザイナーの方と協調しながら技術にも触れたコミュニケーションをする必要があり、エンジニア向けの場合とは異なるツールの利用方法や会話の方法を学びました。
学んだこと
- エンジニアではない関係者との協調作業
- Gatsby.js、React
- Synthetics監視
- CI/CD
ミーティングを効率化するAIシステムのワークロードのWell-Architectedレビュー
Well-Architectedレビューを初めて案件として実施しました。Well-Architectedに従って高リスク問題の抽出・改善案を含めたレポートを作成・提供しました。続けて、改善の実装もしていきたいところでしたが、レポート提供までの案件となってしまいました。依頼に対しては十分な成果物を提供できたつもりでしたが、期待値を超えられず、継続的な支援の依頼をいただくには至りませんでした。はっきりと示されている要望以上に、どの様なものを求められているかを考えるきっかけになりました。
学んだこと
- Well-Architectedレビューの改善方法まで踏み込んだ実施
スーパー向けのマルチテナントなシステムのインフラ構築とテスト設計
Terraformを使い、コンテナワークロードのIaCを実装しました。
また、テスト項目書の作成にも関わらせていただき、マルチテナントかつデータを共有するプールモデルの設計であったため、厳密なアクセス権限のテスト設計を経験しました。
学んだこと
- IaC
- マルチテナントのデータモデル
- PostgreSQLの行レベルセキュリティの概念
- テストの設計方法
最後に
上げたもの以外にも大小様々な開発プロジェクトに参加させていただき、全てを記載することはできませんが印象に残り、学びの多かったものをまとめました。また、現在ではSREとして非常に多くのプロジェクトに同時に関わっています。開発とはまた違った側面での学びが多く、今後SREとしての経験も共有できることを楽しみにしています。