学習方法

メンター情報

料金

対応時間帯

返信スピード

学習方法

メンター情報

料金

対応時間帯

返信スピード

keinuma
メンター
keinuma
100
メンタースコア
-

評価

0

契約中

0

累計

0 フォロワー
本人確認
NDA(機密保持契約)
自己紹介

プロダクトマネージャーになりたいフロントエンドエンジニアです。
モバイルアプリのバックエンド開発からキャリアをスタートしました。
バックエンドからフロントエンドエンジニアに転向し、以降はUI周りを中心に開発しています。
分野にこだわりはなく、必要であればインフラやバックエンドも担当しています。
いずれデザインを学習し、デザインエンジニアを目指したいと思ってます。

もともと教育系の仕事をしていたため、教え合うことに興味があります。
エンジニアとして互いに刺激しあえる関係性を作っていきたいです。

スキル
AWS 〜3年
Python 〜3年
Vue.js 〜3年
TypeScript 〜3年
GCP 〜3年
SCSS 〜1年
GraphQL 〜1年
経歴・実績
2018 年 6月 〜 2018 年 8月
## 概要
ファッションブランドのアプリのリニューアル開発
既存機能はECから商品を検索して、オンラインショッピングを提供すること
上記に加えて、購買に応じてポイントやクーポンを付与する機能を追加
ポイントおよびクーポンの機能は自社のパッケージシステムを使用した

## 登場システム
- EC: 顧客システム
- クーポン基盤: 自社パッケージシステム
- ポイント基盤: 自社パッケージシステム

## 役割
- AWS CognitoやECS(Fargate)などのAWS環境構築
- ポイントページのWebView開発(Vue.js)
- アプリとECやポイント基盤をつなぐBFF開発

## 詳細
既存のアプリにクーポン・ポイント機能を追加した。
案件当初はバックエンドエンジニアとしてAPIサーバーを開発。
フレームワークにDjango REST Frameworkを使用して、アプリとプッシュ通知基盤やポイント基盤をつなぐBFFを構築した。
インフラにはAWSを活用し、ECS(Fargate)とECS CLIを使用したCI/CDを構築して、保守コストが低い構成にした。
アプリからの認証にはCognitoを導入し、機能構築コストを下げた。

## 学んだこと
### フロントエンド開発
ポイントのUIはパッケージ化されていて、同じくパッケージ化されたクーポン機能とのみ連携できる仕組みであった。
要件の中でECのクーポンとポイント基盤を連携した機能を提供する必要があったため、WebViewをカスタマイズしてUIを再構築した。
当時、社内の中ではフロントエンド開発の事例の少ない中、Vue.jsの使用・コンポーネント開発の導入を実施した。
デザイナーさんにデザインおよび静的ファイルの構築を実施していただき、Vue.jsへの組み込み・ロジックの適用を実装した。

## 人数
- アプリ x 2名
- バックエンド x 1名
2018 年 8月 〜 2018 年 9月
## 概要
既存のモバイルアプリケーションのクーポン機能に、クーポン情報とユーザーの紐付けを保持する機能の追加

## 役割
- CloudFunctionsを使ったサーバーレス開発
- フロントエンドの改修のディレクション

## 詳細
既存のクーポン機能に対して、ユーザー情報との紐付けを保持する仕組みを開発。
コストをかけずに開発することが前提であったため、GCPのCloudFunctionsを用いたサーバーレス開発を導入した。また、運用のコストを削減するためにBigQueryを使って、運用者が簡易的にデータを抽出して加工できる仕組みを構築した。

フロントエンドでは既存のjQueryでできたUIの改修であり、エンジニアが新規参画者であったため、ペアプロを行なったりした。

## 人数
- フロントエンド x 1名
- バックエンド x 1名
2018 年 12月 〜 2019 年 2月
## 概要
中小企業向けの公的制度を検索できるWebアプリケーション。
既存システムからのリニューアル案件。
中小企業ごとに適した制度を知ってもらうために、ランキングや新着制度の導入、
および検索条件の保存やブックマーク機能などを追加した。

## 役割
- フロントエンドエンジニア(コア機能の開発)

## 登場システム
- 認証基盤: OpenID Connectをベースとした顧客の認証システム

## 詳細
公的制度を検索できることがメイン機能であり、そこからコンテンツのブックマークや検索条件の保存を持っている。
バックエンドはKotlin + Spring Boot、フロントエンドはNuxt.js/Vue.jsで構築されている。
フロントエンドはVuex(Flux)を導入し、アプリケーションロジックをストアに集約した。
これによってストアが肥大する課題が発生したが、モジュール分割することで解決している。
View側ではコンポーネント指向で開発し、再利用性を考慮して実装している。

## 学んだこと
### スクラム開発
スクラム開発を初めて実践した案件。
プロダクトバックログから1週間に実装する機能を決めて、顧客にフィードバックをもらうサイクルを回して開発を行なっていた。
変更を前提に開発しないといけないため、コンポーネントの差し替えやロジックの修正をしやすい設計を組むことが困難であった。
一方でユーザーテストを実施して、実際にユーザーがどうシステムを使うのかを観察できたことがとても勉強になった。ユーザーがアプリケーションを触るときに考えていることと、エンジニアが開発するときに組むUIとのギャップを強く感じた。

### リモートワーク
全員がフルリモートかつ稼働時間が人によって異なる環境であった。
そのため、コミュニケーションコストが高く、思うようにベロシティが出ていなかったが、ふりかえりを繰り返すうちに開発フローの改善を実感できた。

### SSR
Nuxt.jsはSSRモードで開発した。しかし、認証基盤はOpenID Connectによるクッキー認証を行い、かつバックエンド側がブラウザクッキーのみ許容していたため、SSRから認証できなかった。
そのため、SSRそのものの仕組みを通してブラウザのみレンダリングするコンポーネントやプラグインの実装を学ぶことができた。

## 人数
- フロントエンド x 4名
- バックエンド x 2名
- デザイナー x 1名
2018 年 11月 〜 2019 年 4月
## 概要
小売業の消費者向けのアプリ開発リニューアル案件。
既存のクーポンに加えて、マネーやスタンプラリーなど様々な機能が追加されている。

## 登場システム
- 会員基盤: 顧客の会員基盤システム(新規開発)
- ポイント・クーポン基盤: 顧客のポイント基盤システム(新規開発)

## 役割
- AppSync + amplifyによるAWS基盤の実装
- 管理画面のフロントエンド開発
- 新規フロントエンドチームのマネジメント

## 詳細
規模が大きいアプリのため、複数のベンダーが開発していた。
自身の会社ではアプリ本体とアプリ内のスタンプラリー機能を開発。
スタンプラリー機能はエンドユーザーのアプリ内での動作(商品購入、アプリ起動など)に応じてイベントを解析し、管理者が指定した閾値を超えたタイミングでユーザーにインセンティブを付与する。
フロントエンドチームでは管理者が指定する閾値を設定できる管理画面を開発した。
対象のアプリ内動作や連携するデータが多かったため、APIにAppSync/GraphQLしている。
フロントエンド部分ではNuxt.js/Vue.jsによるSPAを採用した。

## 工夫した所
### フロントエンド
管理画面は複雑なUIを求められていたため、Atomic Designを使ったコンポーネントのレイヤーを明確に区別する実装を行なった。
コンポーネント管理のためのStoryBookの導入や、reg-suitを使ってリグレッションテストを導入した。

### マネジメント
フロントエンドチームを拡大するにつれて、マネージャーとしての役割に従事してきた。
主に新規参画者への負担を減らすために、スプリント開発からふりかえりやドラッガー風エクササイズを使って心理的安全性を高める働きを行なった。
スケジュールについても責任を持ち、チームによる見積もりとベロシティの計測を導入して、進捗の見える化を行なった。

### GraphQL
AppSyncを使った開発の導入事例が少なかったため、自身で調査して開発した。
amplifyによるリソースの管理やGraphQLライブラリの自動生成などを実施。
モバイルアプリチームにも展開し、技術のハシゴとなる役割も担っていた。

## 人数
- アプリ x 4名
- フロントエンド x 5名
- バックエンド x 4名
2019 年 6月 〜 2019 年 7月
## 概要
人事サーベイWebアプリケーション。
企業内での上司、部下の関係性を捉え直し、組織改善をサポートするアプリケーション。
すでにMVPが開発されていて、課金機能を含めた二次開発を担当。

## 役割
- フロントエンドエンジニア(コア機能の開発)


## 詳細
課金機能の実装がメインであり、ユーザー数やオプションの有無に応じて課金額を計算。
ミスが許されないため、フロントエンドの中でも課金機能の設計に時間を割いた。
具体的にはフロントエンドの中でドメインロジックを持たせて、一意性を担保した。
全体的にテストの少ないシステムであったが、課金機能については単体テストを網羅した。

## 学んだこと
### イテレーション開発
機能をスプリントごとに開発していたが、順調に進んだため、フィードバックを取り込みながら
機能改善に集中できた。
期間的に余白ができることでUIや機能のあるべき姿を捉え直すことができることを学んだ。

## 人数
- フロントエンド x 2名
- バックエンド x 3名
- マネージャー x 1名
2019 年 5月 〜 2019 年 8月
## 概要
プロダクト管理ツール。
仮説検証からタスク管理までをサポートし、学びを管理できるツール。
リリース間近にジョインし、機能のブラッシュアップ・リリース作業を担当。

## 役割
- フロントエンドエンジニア(コア機能の開発)
- チームリード

## 詳細
リリース間近であったため、バグや違和感のあるUIをブラッシュアップしていった。
技術としてはReact, Railsであったため、学習しながらバックログを倒していく状態であった。
自社プロダクトの位置付けで、正解がない中自分からプロダクトオーナーシップをもち
あるべきを考え、提案しながら開発することができた。

## 学んだこと
### 副業・フルリモート開発
全員が副業・フルリモートの中でコミュニケーションを取りながら開発をすすめていくことを体験した。
副業のため、稼働時間がずれるので、会話が不足しがちになることを、お願いするタスクや
合宿などの非同期イベントを追加することで実施した。
## 人数
- フロントエンド x 3名
- バックエンド x 1名
- インフラエンジニア x 1名
- マネージャー x 1名