Yuji Yamaguchi


- 株式会社リクルートライフスタイル
- 埼玉県 本庄市
- Joined on 2015/10/27
Self introduction
フロントエンドエンジニアです。
リクルートライフスタイルでは、レストランボードやAirレジなど、いくつかのサービス開発に関わらせてもらっています。
目の前の課題だけでなく、サービス全体を俯瞰して大局を想像しながらビジネスに貢献していきたいと考えています。
Ambition
フロントエンドエンジニアの組織化と育成方法を確立させたいです。
Node.js が生まれて約10年。フロントエンドの技術スタックは進歩を続け、静的なWebサイトを作るだけのものから動的なWebアプリケーションを作ることもできるようになりました。
また、IoTによって多種多様なデバイスがインターネットに繋がるようになり、今後もさらにWebフロントエンド技術は複雑になり重要性も高まっていくのではないかと感じています。
しかし、多くのWebフロントエンド開発はアップデートされないまま運用され続けており、新たに生み出されるものもレガシーな技術のままであることが多いのが現状です。
その原因として、「フロントエンドエンジニアの組織がないこと」と「フロントエンドエンジニアの育成ノウハウがないこと」があげられるのではと考えました。
この現状を打破するため、フロントエンドエンジニアとして身につけてきた今までの経験を生かし、今後は組織横断でのフロントエンド開発のリードや、勉強会やモブプロなどを通じた後進の育成をしていきたいと思っています。
また、フロントエンドエンジニアというと、クライアントサイドのイメージがまだまだ強いので、SSRやAPI Aggregationなど、サーバサイドにも染み出しながらビジネスに価値貢献できることも合わせて示し、フロントエンドの第一線でメンバーを牽引しながら、今以上に大きなミッションに取り組んでいきたいです。
Work experience
-
株式会社リクルートライフスタイル
2016-10 -
-
株式会社サイバーエージェント
2016-01 - 2016-09
-
ソフトバンクモバイル株式会社
2011-04 - 2015-12
Projects
-
飲食店向け予約管理台帳システムの機能統合開発(フロントエンドチームリーダー)
【プロジェクト概要】
飲食店向け予約管理台帳システムの機能統合開発
【体制】
・PM1人
・PMO6人
・フロントエンド25人
・その他チーム(バックエンド・iOS・QA)
【プロジェクトにおける役割】
・担当チームの開発品質管理/スケジュール管理
・担当チーム内及び関連他チームを跨ぐ各課題のシューティング
・PMへの大玉課題の上位報告
【具体的な実績・取り組み】
2つのシステム上に存在する在庫管理機能と予約台帳機能を、1つのシステムに統合移管するプロジェクトの、フロントエンドチームのリーダーとして、フロントエンド開発の品質管理と実行推進を担当しました。
最大25名まで増えたフロントエンドチームは、大規模ウォーターフォール開発の知識や経験が乏しく工程理解が足りないメンバーも多く、メンバー間のレベル差が大きいチームを安定的にリード・マネジメントするために、成果物作成のための方式設計書を作成し、工程着手前後で成果物作成のための勉強会を実施しました。
製造工程では、レジ開発でも実施したテスト方針を踏襲し、ファンクション単位のユニットテスト、コンポーネント単位のユニットテスト、コンポーネントを結合したインテグレーションテストの実施を推進し、品質担保に貢献しました。
【使用技術】
・Vue.js, Vuex, Vue Test Utils, Vue Testing Library
・Gulp, Webpack
・AWS, Amazon Linux2019-6 - 2021-1
-
レジWebアプリの開発運用(フロントエンドチームリーダー)
【プロジェクト概要】
レジWebアプリの開発運用
【体制】
・PM1人
・PL1人
・メンバー24人(フロントエンド9人, バックエンド10人, iOS3人)
【プロジェクトにおける役割】
・本番障害発生時のシステム面での問題解消へ向けた推進役
・フロントエンドチームの品質・生産性の維持向上施策の推進
・フロントエンドチームの課題解決の推進
【具体的な実績・取り組み】
本番障害対応のサポートとしてプロジェクトに参画し、暫定対応後はフロントエンドのアーキテクトとして、開発プロセスの整備やチーム体制の強化を担当しました。
参画直後はインテグレーションテストはありましたが、ユニットテストがなく、品質担保に不安があったため、テスティングピラミッドやテスティングトロフィーの図を用いて、それぞれのテスト粒度と確認すべき項目の整備を行いました。
その後は、フロントエンドチームのリーダー兼アーキテクトとして、フロントエンド開発レビューとチームビルディングを担当しました。
【使用技術】
・JSX, Styled-Components, ECMAScript
・React, react-redux, redux-thunk
・Jest, react-testing-library2018-9 - 2019-5
-
プロダクト横断フロントエンド開発支援
【プロジェクト概要】
フロントエンド開発の相談窓口やプロジェクトの開発リード
【プロジェクトにおける役割】
・組織横断的な技術選定や開発の方針の策定、開発体制の検討と推進
・プロダクト特性/プロジェクト特性に合わせた技術選定や開発の推進
・フロントエンド開発について技術相談窓口
・フロントエンドエンジニアの人材育成
【実績・取り組み】
社内にフロントエンドエンジニアが少ないため、複雑な画面要件を実現しなければならない時でも、経験が浅いメンバーが担当することが多く、不適切な技術の選定や開発運用となっているプロジェクトが多くなっていました。
その技術負債の解消と、同じ悲劇を繰り返さないようにするため、プロダクト横断的にフロントエンド開発のリードをしています。
主に、プロダクト横断で技術選定や開発方法の基本方針を策定し、各プロダクト開発毎にカスタマイズしながら導入するための推進をしています。
レベルが高いエンジニアが揃っているプロダクト場合は学習コストが抑えられるためにReactを選定したり、経験やレベルが様々なメンバーのプロジェクトの場合は規約を揃えることを目的にNuxt.jsを選定したりしました。
サービスの規模感や解決したい課題によって、ReactやVue.jsなどではリッチ過ぎる場合には、あえてjQueryを選択することもありました。
また、社内勉強会を定期的に開催し、自分が持っているノウハウを共有したり、メンバーにも学んだことや難しかったことを発表をしてもらうことで、フロントエンドエンジニアの育成や組織全体の技術力の底上げを図っています。2017-10 - 2021-1
-
旅行事業領域UX改善(フロントエンドアーキテクト)
【プロジェクト概要】
旅行事業領域サービスにおける、旅前〜旅中〜旅後の連続したUX提供のための新サイト開発
【体制】
・PM1人
・アーキテクト1人
・メンバー8人
【プロジェクトにおける役割】
・フロントエンド/バックエンドアーキテクチャの技術選定及び開発方針策定
・プロジェクト初期のプロトタイプ開発
・プロジェクト中期以降の開発に関する技術的な相談役
・課題解消へ向けた技術面での推進役
【実績・取り組み】
新規サービスの立ち上げにアーキテクトとして参画しました。
プロジェクト初期は、アーキテクチャ設計とプロトタイプ開発を担当し、
継続して機能改善が出来ること、様々なレベル感のメンバーでも同じ様に開発が出来ること、拡張しやすいが崩れにくいアーキテクチャであることを意識しながら取り組みました。
フロントエンドは、SPAとSSRを簡単に実現しながら、今後のPWA対応も可能なアーキテクチャを、Nuxt.jsのレールに乗ることで実現し、バックエンドは、既存のAPIの負を吸収し複数のAPIをまとめるためのAPI AggregationをNode.jsで、新規のシンプルなAPIサーバをGolangで実現しました。
さらに、インフラチームと連携し、これらのサービスをKubernetesで管理することで、スケールしやすいマイクロサービスアーキテクチャをGCP上に構築することが出来ました。
【使用技術】
・Pug, Scss, ECMAScript
・Vue.js, Nuxt.js, Vuex, Express
・GCP, Node.js, Docker, Kubernetes2017-10 - 2018-9
-
飲食店向け予約管理台帳システムの開発運用(フロントエンドチームリーダー)
【プロジェクト概要】
飲食店用予約台帳システムの開発及び運用保守
【体制】
・PM1人
・PMO1人
・アーキテクト1人
・職能リーダー3人
・メンバー24人(フロントエンド7人, バックエンド7人, iOS7人)
【プロジェクトにおける役割】
・他プロダクトと協力して開発する際の開発側調整窓口
・開発/運用に関するディレクターからの相談窓口
・本番障害発生時のシステム面での問題解消へ向けた推進役
・開発チームの品質・生産性の維持向上施策の推進
・開発チームの課題解決の推進
【具体的な実績・取り組み】
プロジェクト参画当初は、フロントエンドチームのリーダーとして、フロントエンド開発の品質担保やアーキテクチャ改善を担当しました。
参画直後はLinterやUTがなく、品質担保に不安があったため、まず現状の可視化から取り組みました。
ESLintやPrettierによる自動フォーマットで表記ゆれを防止し、Codecovによってテストカバレッジレポートを行い、現状状態を定量的に確認出来る状況を作ることが出来ました。
またフロントエンドだけでなく、バックエンド・iOSアプリ開発チームそれぞれの開発プロセスの改善推進も担当しました。
バックエンド・iOSアプリチームではGitのブランチ運用が整理されておらず、ブランチが複雑に絡みあいコンフリクトの解決に常に悩まされていた状況だったため、フロントエンドチームで導入していたgit-flowのブランチ運用モデルを横展開し、Fork PRによる運用を装着しました。
【使用技術】
・EJS, Less, ECMASCript
・Vue.js, AVA, Nightmare
・Nginx, Node.js, Jenkins, Gulp, Webpack
・AWS, Amazon Linux2016-10 - 2018-10
-
広告管理配信システムの開発運用
【実績・取り組み】
- 広告代理店向け広告管理画面の中で、CSVアップロードからの一括登録及び結果のCSVダウンロード機能の開発を担当
- 広告管理配信システム全体のAWS環境の保守運用及び改善を担当
【担当フェーズ】
- 基本設計、詳細設計、開発、テスト、運用
【業務内容】
- フロントエンドの開発改善
- AWSでの環境構築及び改善
- Jenkinsを用いた負荷試験環境及びシナリオの作成
【使用技術】
- OS: AWS Amazon Linux
- 言語: HTML5, CSS3, TypeScript, ES2015
- フレームワーク: AngularJS, PostCSS
- DB: MySQL, Redis
- その他ミドルウェア等: AWS, Nginx, Node.js, Git2016-1 - 2016-9
-
電子書籍サービスの開発・運用
【プロジェクト概要】
- コンシューマ向け電子書籍閲覧システムの開発及び運用
- 法人向け電子書籍原稿入稿システムの開発及び運用
【実績・取り組み】
- ベンダーから納品されるプログラムの検収及び本番環境への適用
- 軽微な改修やデータ抽出、キャンペーンページの作成や修正
- 開発や運用の効率化のために、Redmine, GitBucket, Mackerel, fluentd, hubot を連携させた ChatOps環境の構築及び導入推進を担当
【担当フェーズ】
- 詳細設計、開発、テスト
【業務内容】
- ベンダーコントロール
- キャンペーン告知ページなどの静的ページの開発
- ChatOps環境の構築、管理
- jMeter, AB, Vegeta等での負荷テスト
- PhantomJSでのクライアントサイドUIテスト
【使用技術】
- OS: Linux(CentOS)
- 言語: HTML5, CSS3, ECMAScript, PHP
- フレームワーク: Jade, Stylus, CoffeeScript, Babel.js, Smarty, PhantomJS
- DB: MySQL
- その他ミドルウェア等: Apache, Nginx, Git, GitBucket, Gulp, Browserify, Redmine, Fluentd, jMeter, ab, Vegeta2015-5 - 2015-12
-
位置情報を利用した車両管理システムの開発
【プロジェクト概要】
- 位置情報を汎用的に扱うためのプラットフォームの開発
- 位置情報プラットフォームを用いたリアルタイム車両管理システムの開発
【実績・取り組み】
- PJはNativeアプリ、Webアプリケーション、インフラの3チームからなっており、Webアプリケーションのチームで、コンテンツホルダー企業向けの業務Webアプリ開発を担当
- 位置情報を汎用的に扱うためのプラットフォームを構築し、それを用いたリアルタイム車両管理システムの開発を実施
- タスクやコード管理のため、GitBucket環境を構築し、Pull Requestベースの開発手法をチーム内へ推進
【担当フェーズ】
- 要件定義、基本設計、詳細設計、開発、テスト、運用
【業務内容】
- 業務Webアプリケーションの設計、開発、テスト、運用
- 動作試験仕様書の作成
- オフショアメンバーとの進捗共有、確認
- チームリーダーとして、スケジュール設定、進捗管理、作業割振り
【使用技術】
- OS: Linux(CentOS)
- 言語: HTML5, CSS3, JavaScript
- フレームワーク: Jade, Stylus, CoffeeScript, jQuery, Bootstrap, Primus.IO, Google Maps API, Vue.js, Mocha
- DB: MongoDB, Redis, MySQL
- その他ミドルウェア等: Nginx, Node.js, ImageMagick, Git, GitBucket, Gulp, Browserify, jMeter2013-10 - 2015-4
-
位置情報を利用したクーポン配信システムの開発運用
【実績・取り組み】
PJはNativeアプリ、Webアプリケーション、インフラの3チームからなっており、Webアプリケーションのチームで、コンテンツホルダー企業向けの業務Webアプリケーションの開発を担当。
【担当フェーズ】
- 要件定義、基本設計、詳細設計、開発、テスト、運用
【業務内容】
- 業務Webアプリケーションの設計、開発、テスト、運用
- テスト仕様書の作成
- オフショアメンバーとの進捗共有、確認
【使用技術】
- OS: Linux(CentOS)
- 言語: HTML5, CSS3, JavaScript
- フレームワーク等: jQuery, Socket.IO, Google Maps API, YOLP
- DB: MongoDB, Redis
- その他ミドルウェア等: Nginx, Node.js, ImageMagick, Git, GitBucket2011-10 - 2013-10
What I'm good at
-
0React
-
0Git
-
0JavaScript
-
0Emacs
-
0ECMAScript
-
0Node.js
-
0HTML5
-
0CSS3
-
0TypeScript
-
0Vue.js
-
0AngularJS
-
0nginx
-
0jQuery
Education
-
早稲田大学人間科学部
2011
-
早稲田大学本庄高等学院
2007
Recommendations
No recommendations

- Connections on Wantedly 20
No connections

No connections

No recommendations

Wanted Score
100