400万人が利用する会社訪問アプリ
合同会社DMM.com / エンジニア
ログインユーザーのみに公開
- 自分が立ち上げたサービスで収益を上げること 自分が書いたプログラムで人を喜ばせる、楽にできることがエンジニアの本望だと思うから。 - 大学で情報科学/計算機科学を学ぶこと プログラミングが楽しくてもっと詳しくなりたいから。
# プロジェクトの目的 - サイトの重要指標を向上する # 行ったこと 私がいたチームはサイトのCVを上昇させるための施策を立案、企画、開発、分析する業務を行っています。チームには企画/デザイナー/エンジニアがおり、施策の立案は全職種が行っています。エンジニアは主に開発と分析(のための集計等)を行っています。 エンジニアチームの中で私は中期施策と言われるものを開発しています。中期施策とは「コストは高くすぐには効果が出ないが、将来的には必要となる施策」のことです。 具体的な施策としては、非ログインユーザがお気に入り登録できる、重要ページのデザインリニューアル、クローリングデータをもとにしたページ作成、SEO対策のために新規ページを作成することなどがあります。 # 得られた成果 これらの施策を行ったことで、CVの増加はそこまで大きくはありませんが、これから機能の磨き込みを別のチームが行っていく予定です。 既存機能の磨き込みはいずれサチュレーションを起こすので、先手で磨き込むことで大きな改善を見込める場所を作ることができたのはチームにとって大きな成果です。 # その他 設計/実装は主に一人で行いました。 使用した技術はサーバサイドにRuby/Ruby on Rails、フロントエンドにTypeScript/Reactです。 このプロジェクト中にReactコンポーネントの再利用性を考えた設計、実装をチーム内に示せたのも1つの成果です。
# プロジェクトの目的 私が担当するサービスはElasticBeanstalk(以下EB)でホストされていましたが、当時いくつか問題がありました。 - EBで管理するEC2にAmazon Linux2を入れることが相当大変であった - 当時あと3ヶ月でAmazon LinuxがEoLになると言われていたが、EBがRubyプラットフォームでAmazon Linux2に対応する気配がなかった。 - コードベースの肥大化に伴い、EBによるデプロイにとても時間がかかるようになった - Rubyのバージョンを上げるコストが高い これらの問題を解決するために、インフラ構成を見直すのが当プロジェクトの目的でした。 # 行ったこと まず、EBから切り替えるサービスを何にするか決定しました。 結果、上記の課題を解決するため、また個人的な技術的興味からAmazon ECS Fargate(以下Fargate)を使うことにしました。 Fargateを採用した理由は以下のとおりです。 - 社内のいくつかの事業部で採用実績があり、ノウハウを獲得しやすいと判断したから - 以下の点からサーバのプロビジョニングがしやすいと判断したから - 仮想サーバを管理する必要がない - Docker Imageで簡単にプロビジョニングができる - 個人的にコンテナ技術に興味があったから 次にFargateに切り替えていくためのロードマップ策定、Fargateを使ったときの構成図作成、デプロイフローの策定などを行い、実装を開始しました。 実装する中で当初の設計では解決できない点などがあったので、都度設計を修正しながら進めました。 # 得られた成果 得られた成果は以下のとおりです。 - デプロイ速度の向上 - 切り替え前は23分ほど掛かっていましたが、Fargateに切り替えてチューニングした結果、5分30秒ほどで終わるようになりました - Rubyのバージョンアップのコスト削減 - 切り替え前はRubyのバージョンアップデートに1週間ぐらい掛かるのではないかと言われていましたが、切り替え後は1日もあれば切り替え作業が終わるようになりました - インフラリソースの管理をチームでできるようにした - 今までインフラリソースはAWSのコンソール画面から手動で管理されていましたが、これを機にTerraformを導入し、誰もがTerraformファイルを見ればどのリソースを使っているのか、いつリソースに変更が加えられたのか分かるようにしました - これにより管理されないAWSリソースを減らし、安全な運用ができる土壌を作れたと思っています # その他 - プロジェクトは私と元先輩社員のアルバイトと行いました。先輩に設計や実装のアドバイスを貰いながら進めていきました。
# プロジェクトの目的 - 20新卒を以下の状態まで引き上げること - 自走できる - 現場で最低限の活躍を見込める # 行ったこと エンジニア研修の目的の設定、目的から逆算したロードマップの策定、カリキュラム作成、毎週のレビューなどを行いました。 エンジニア研修は新卒が「自走できるエンジニア」「現場で最低限の活躍ができるエンジニア」になってもらうのが目的です。 まず、この目的についてプロジェクトメンバー(私と同期のエンジニア)でとことこん話し合い、細かいところまで話し合いました。 この二つの状態像を定義した後に状態像に至るまでのマイルストーンを設定しました。 そして、マイルストーンに合わせたカリキュラム作成、質問事項の用意を行い研修を実施しました。 カリキュラムは毎年ほとんど同じものが使われているのですが、今年は大きな変更を加えています。 その理由は前年度までの研修はマイルストーンが大きくなりすぎており、マイルストーン間で学ぶことが多くなりすぎていると感じていたからです。 学ぶことが多くなりすぎると、研修生は学びづらくなり研修の進度に影響が出ること、余計なことで迷ってしまいこちらが想定したマイルストーンを達成できないことなどがあったので、改善しようと思いました。 結果として、改善は良い方向に進み、研修の進度は例年よりもスムーズになり、研修生の余計な迷いを予め潰せておけたのではないかと思っています。 # 得られた成果 20新卒のエンジニアはふたりとも重要なプロジェクトで一定の成果を出せており、事業部の成長に間接的ながら貢献できました。 私自身もこのプロジェクトではじめてプロジェクトマネジメントを経験して、目的の設定、そこから逆算したロードマップの策定を行うことの大切さを学びました。
Web Engineer(Ruby/Rails/JS/React/Elixir/Phoenix/Git/Github)
山口 航平さん
のプロフィールをすべて閲覧
Wantedlyユーザー もしくは つながりユーザーのみ閲覧できる項目があります
過去の投稿を確認する
共通の知り合いを確認する
山口 航平さんのプロフィールをすべて見る