職務経歴

株式会社ビデオマーケット(2017/07 ~ 現職)

概要

都度課金型、定期購読型のビデオオンデマンドサービスを提供している会社で自社サービスに関わるバックエンドシステムの設計や開発を担当。

プロジェクト

期間 名称 内容 担当技術 組織 / 役割
2022/10~2022/11
(1ヶ月)
Amazon決済接続システムリニューアル FireTV版アプリリニューアルに伴い、Amazon決済接続システムを刷新。
Amazonのリアルタイム通知による継続課金バッチ作成を担当。
  • Kotlin(Server-Side)
  • SpringBoot
  • gRPC
  • GoogleKubernetesEngine
  • GoogleCloudFunctions
  • AmazonRTN
  • AmazonSNS
  • MySQL
  • CircleCI
1人

テックリード
2022/09~2022/10
(1ヶ月)
サイト運用システム構築 自社サービスリニューアル後のサイト運用のため、PRしたい動画コンテンツを設定できるCMSを作成。

マイクロサービスにある登録APIを利用するためにフロントエンドからgRPCを呼び出すための仕組みを導入。(gRPC-Web)

マテリアルデザインフレームワークのVuetifyを導入することでCMS作成にかかる稼働コストを減らし、2~3週間程度の開発期間で4つの機能を本番リリース。
  • Vue
  • Vuetify
  • gRPC-Web
  • TypeScript
  • GoogleCloudRun
  • CircleCI
1人

テックリード
2022/07~2022/09
(2ヶ月)
携帯キャリア決済接続システムリニューアル 携帯主要3キャリア(docomo, au, SoftBank)の決済接続システムとクレジットカード決済接続システムの再設計と実装を担当。

  • Kotlin(Server-Side)
  • SpringBoot
  • gRPC
  • GoogleKubernetesEngine
  • MySQL
  • CircleCI
1人

テックリード
2021/12~2022/09
(10ヶ月)
Webリニューアル PCとスマートフォンでデザインが異なっていたサービスをレスポンシブデザインへと刷新し、バックエンドとフロントエンドをフルリニューアル。

サービス開発のテックリードとして主に設計を中心に開発を担当し、海外のフロントエンドメンバーとの間のブリッジも担当。
  • Kotlin(Server-Side)
  • SpringBoot
  • gRPC
  • GraphQL
  • GoogleKubernetesEngine
  • MySQL
  • CircleCI
チーム5人/
全体15人

テックリード
2021/10~2021/11
(1ヶ月)
GooglePlay決済導入 Androidアプリのリニューアルに伴い、GooglePlay決済を導入し、アプリ内課金後のレシート検証システムと継続課金バッチの設計・開発を担当。

Pub/SubメッセージングサービスとFaaSのCloudFunctionsを組み合わせたバッチを作成。
  • Kotlin(Server-Side)
  • SpringBoot
  • gRPC
  • GoogleKubernetesEngine
  • GoogleCloudFunctions
  • GoogleCloudPub/Sub
  • GoogleCloudScheduler
  • MySQL
  • CircleCI
1人

テックリード
2021/01~2021/11
(10ヶ月)
Android/AndroidTVアプリリニューアル Android/AndroidTV版videomarketアプリの大型リニューアルプロジェクトにおけるサーバーサイドのテックリードとして技術選定と設計・開発を担当。

マイクロサービス間通信にgRPCを選定し、APIの再設計を行うことでバックエンドの高速化を図った。
  • Kotlin(Server-Side)
  • SpringBoot
  • gRPC
  • GraphQL
  • GoogleKubernetesEngine
  • MySQL
  • CircleCI
チーム5人/
全体15人

テックリード
2019/12~2020/12
(1年)
動画メタ情報のサービス共通取得システムの構築 各サービスで仕様が共通している動画のメタ情報を参照するためのシステムを構築し、技術選定と設計・開発を担当。

サービスのリニューアルを控えていたため、より細かくスケーリングや負荷分散を設定できるGKEで環境を構築。
  • Kotlin(Server-Side)
  • SpringBoot
  • GraphQL
  • GoogleKubernetesEngine
  • CloudSQL(MySQL)
  • CircleCI
3人

テックリード
2019/05~2019/06
(1ヶ月)
アプリ内検索エンジンのデータ投入バッチシステム iOSアプリ内の作品検索のユーザー体験向上を目的とした検索エンジン(AppSearch)のデータ投入部分を担当。

RDBからデータを取り出し、データを非正規化し日次で投入する仕組みを構築。

情報設計とバッチ内部における並列処理、リトライなどの設計や実装まで一貫して開発。実装期間は2週間。
  • Kotlin(Server-Side)
  • SpringBoot
  • GoogleComputeEngine
  • GoogleCloudScheduler
  • CloudSQL(MySQL)
  • Elastic AppSearch
  • CircleCI
1人

テックリード
2018/07~2019/09
(1年2ヶ月)
iOSアプリリニューアル iOSアプリvideomarketの大型リニューアルプロジェクトにおけるサーバーサイドのチームリーダーとして技術選定と設計・開発を担当。

マイクロサービスアーキテクチャの導入とサーバーサイドKotlinの導入、API GatewayとしてGraphQLサーバーを構築。

スケーラブルで耐障害性のあるシステムを作成するため、GAE上にサービスを構築。

リーダーとしてはメンバーへの技術フォロー、プルリクエストを通じてリファクタリング案の提案、作業効率化のためのライブラリの選定などを行なっている。
  • Kotlin(Server-Side)
  • SpringBoot
  • GraphQL
  • GoogleAppEngine
  • GoogleComputeEngine
  • CloudSQL(MySQL)
  • Elastic AppSearch
  • CircleCI
チーム7人/
全体20人

テックリード
2018/04~2018/06
(2ヶ月)
COCORO VIDEOのアプリリニューアル SHARP製TVに内蔵されているVODサービスCOCORO VIDEOアプリの大幅リニューアルプロジェクトにてサーバーサイド開発リーダーとして、設計とチームマネジメントを担当。

  • PHP
  • Laravel
チーム2人/
全体10人

チームリーダー
2018/01~2018/06
(6ヶ月)
Apple UniversalSearchのフィード作成バッチシステム Appleが提供しているデバイスでSpotlight検索やSiri検索に販売中の作品情報を提供するためのフィード情報を作成するバッチを実装。

  • Golang
1人

担当
2017/09~2017/12
(6ヶ月)
商品販売促進・UX改善プロジェクト 同作品において吹替と字幕でそれぞれ別売りとして販売していた商品を、まとめて売ることで商品をより買いやすくするためのプロジェクトを遂行。

  • PHP
  • Laravel
5人

担当

株式会社アクセスネット(2015/04 ~ 2017/05)

概要

お客様先に常駐し、システムインテグレーションを行う業務を担当。

プロジェクト

期間 名称 内容 担当技術 組織 / 役割
2017/01~2017/05
(5ヶ月)
大手携帯通信企業の顧客管理システム 長年稼働している携帯通信企業の顧客管理システムのマルチデバイス対応プロジェクトの開発、テストを担当。
  • Java
  • Oracle 11g
  • JUnit
約15人

担当
2016/11~2016/12
(1ヶ月)
社内グループウェア開発 自社内で使用している日報機能などを備えたグループウェアに新規機能を追加する目的でOSSを利用してリニューアルを遂行。
  • Java
  • Struts2
  • H2 Database
  • AWS EC2
1人

担当
2016/07~2016/11
(4ヶ月)
OA機器契約サービス OA機器を販売する事業者の販売員や販売担当組織の情報を定期的にデータ補正するバッチの作成と社内システムの構築。
  • Java
  • SpringFramework
  • JUnit
  • Ruby
  • Ruby on Rails
  • RSpec
  • PL/SQL
  • Oracle 11g
20人

サブリーダー
2016/05~2016/07
(2ヶ月)
医療保険者等中間サーバシステム 医療保険者(保険料徴収、保険給付を行う団体)が扱うユーザー情報の管理をするWebサービスの実装、単体テストを担当。
  • Java
  • Oracle 11g
  • JUnit
10人

担当
2016/01~2016/05
(5ヶ月)
決済代行サービス 公共料金などの請求書に印字されているお客様情報や請求情報などを処理するバッチ開発を担当。
  • Java
  • SpringFramework
  • Mybatis
  • Oracle 11g
10人

担当
2015/06~2015/12
(6ヶ月)
レンタル・リセール商品検索システム PCやタブレットなどをレンタル、リセールするためのECサイトの実装とテストを担当。
  • Java
  • Struts2
  • Hibernate
  • Oracle 11g
  • HTML
  • JavaScript
  • jQuery
5人

担当

スキル

  • Kotlin(Server-Side)

    About 3 year

  • Golang

    About 6 months

  • PHP

    About 2 years

  • Java

    About 3 years

  • Ruby

    About 3 months

  • GraphQL

    About 3 year

自己PR

アーキテクチャの選定

バグが多く障害が頻発していたモノリシックなサービスから、マイクロサービスアーキテクチャへの移行を行なった。
それぞれのサービスが明確な役割とドメインを持つようになり、GCPなどのマイクロサービスのためにデザインされているプラットフォームを使用することでそれぞれの負荷に合わせたスケールが可能になった。

クラウドプラットフォームの積極的利用

当時社内で実績がなかったGoogleクラウドプラットフォームサービスのAppEngineやKubernetesEngine、CloudFunctions、Pub/Subなどを利用し、多くのサービスをリリースした。
マイクロサービスの通信速度を上げるためにそれらの環境でgRPC通信を導入したりパフォーマンス改善なども行なっている。

新言語・フレームワークの採用

アプリリニューアルに際してリファクタリング性能が高く、バグを生み出しづらく、よりリーダブルな言語を採用したかったためサーバーサイドKotlinを導入した。
候補としてKotlin, Golang, PHP(社内のベース言語)などがあったがJavaの資産を活用できることやSpringなどフレームワークとしての機能が多いものを選べることなど様々な観点から社内のニーズに一番フィットしていると思い、サンプルプロジェクトをチームに共有して相談の上決定した。
また、API GatewayとしてGraphQLを導入したことによりフロントエンドエンジニアの開発効率を向上させることができた。

社内エンジニアの技術力向上の取り組み

技術のレガシー化が採用活動の停滞や無駄でバグの多いコードを生み出して続けていた環境を改善すべく、一人一人の技術力の向上のための活動を行なってきた。
具体的には、勉強会に行って社内に技術発信したり、社内で技術に対する不安を抱えている人を相互に助け合うための技術共有会を毎週開催するなどの取り組みを行なった。

プルリクエストの取り組み

コードの品質向上のためにプルリクエスト・マージリクエストの際、ただ承認と指摘するだけではなく、可能な限りリファクタリング案を添えてコメントを残している。
1Commit = 1PullRequestの元で直近のレビュー件数は半年で600件ほど。自分がレビュイーとなった件数は半年で約250件。

育成

新卒の育成に力を入れており、新卒のトレーナーとして1年間技術やメンタル面などのフォローを行なった。
また、テックリードとしては日々メンバーからの技術相談に対するアドバイスを継続的に行なっている。

業務外活動