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
-
組織横断フロントエンド開発改善
【プロジェクト概要】
横断組織のフロントエンドエンジニアとして、フロントエンド開発の相談窓口やプロジェクトの開発リード
【プロジェクトにおける役割】
・組織横断的な技術選定や開発の方針の策定、開発体制の検討と推進
・プロジェクト特性に合わせた技術選定や開発の推進
・フロントエンド開発について技術相談窓口
・フロントエンドエンジニアの人材育成
【実績・取り組み】
社内にフロントエンドエンジニアが少なく、複雑な画面要件を実現しなければならない時でも、経験が浅いメンバーが担当することが多く、適切な技術の選定と開発運用がされていないことから、技術負債となってしまっているプロジェクトが多くなっていました。
その技術負債の解消と新規立ち上げ時にまた同じことにならないように、組織横断的にフロントエンド開発のリードをしています。
主に、組織横断的に技術選定や開発方法の基本方針を策定し、各プロジェクト毎にカスタマイズしながら、少しずつプロジェクトへ導入するための推進をしています。
レベルが高いエンジニアが揃っているプロジェクトの場合は学習コストが抑えられるためにReactを選定したり、バックボーンが様々なメンバーのプロジェクトの場合は規約を揃えることを目的にNuxt.jsを選定したりしました。
サービスの規模感や解決したい課題によって、ReactやVue.jsなどではリッチ過ぎる場合には、あえて既存のままでjQueryを選択することもありました。
また、社内勉強会を定期的に開催し、自分が持っているノウハウを共有したり、メンバーにも学んだことや難しかったことを発表をしてもらうことで、フロントエンドエンジニアの育成や組織全体の技術力の底上げを図っています。2017-10 - 2018-10
-
旅行事業領域UX統合改善
【プロジェクト概要】
旅行事業領域サービスにおける、旅前〜旅中〜旅後の連続したUX提供のための新サイト開発
【体制】
・PM1人
・アーキテクト1人
・メンバー8人
【プロジェクトにおける役割】
・フロントエンド/バックエンドアーキテクチャの技術選定及び開発方針策定
・プロジェクト初期のプロトタイプ開発
・プロジェクト中期以降の開発に関する技術的な相談役
・課題解消へ向けた技術面での推進役
【実績・取り組み】
新規サービスの立ち上げにアーキテクトとして参画しました。
プロジェクト初期は、アーキテクチャ設計とプロトタイプ開発を担当し、
継続して機能改善が出来ること、様々なレベル感のメンバーでも同じ様に開発が出来ること、拡張しやすいが崩れにくいアーキテクチャであることを意識しながら取り組みました。
フロントエンドは、SPAとSSRを簡単に実現しながら、今後のPWA対応も可能なアーキテクチャを、Nuxt.jsのレールに乗ることで実現し、バックエンドは、既存のAPIの負を吸収し複数のAPIをまとめるためのAPI AggregationをNode.jsで、新規のシンプルなAPIサーバをGolangで実現しました。
さらに、インフラチームと連携し、これらのサービスをKubernetesで管理することで、スケールしやすいマイクロサービスアーキテクチャをGCP上に構築することが出来ました。2017-10 - 2018-9
-
飲食店向け予約管理台帳システム
【プロジェクト概要】
飲食店用予約台帳システムの開発及び運用保守
【体制】
・PM1人
・PMO1人
・アーキテクト1人
・職能リーダー3人
・メンバー24人(フロントエンド7人, バックエンド7人, iOS7人)
【プロジェクトにおける役割】
・他プロダクトと協力して開発する際の開発側調整窓口
・開発/運用に関するディレクターからの相談窓口
・本番障害発生時のシステム面での問題解消へ向けた推進役
・開発チームの品質・生産性の維持向上施策の推進
・開発チームの課題解決の推進
【具体的な実績・取り組み】
プロジェクト参画当初は、フロントエンドチームのリーダーとして、フロントエンド開発の品質担保やアーキテクチャ改善を担当しました。
参画直後はLinterやUTがなく、品質担保に不安があったため、まず現状の可視化から取り組みました。
ESLintやPrettierによる自動フォーマットで表記ゆれを防止し、Codecovによってテストカバレッジレポートを行い、現状状態を定量的に確認出来る状況を作ることが出来ました。
現在はアーキテクトとして、フロントエンド・バックエンド・iOSアプリ開発チームそれぞれの開発プロセスの改善推進を担当しています。
バックエンド・iOSアプリチームではGitのブランチ運用が整理されておらず、ブランチが複雑に絡みあいコンフリクトの解決に常に悩まされていた状況だったため、フロントエンドチームで導入していたgit-flowのブランチ運用モデルを横展開し、Fork PRによるブランチが複雑になりにくい運用で動き始めています。2016-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.js
-
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
103