Masayuki Izumi

ウォンテッドリー株式会社 / Backend Chapter Lead, Profile Domain

Tokyo, Japan

Masayuki Izumi

ウォンテッドリー株式会社 / Backend Chapter Lead, Profile Domain

Tokyo, Japan

Masayuki Izumi

ウォンテッドリー株式会社 / Backend Chapter Lead, Profile Domain

Why not create your own Wantedly profile?

Showcase yourself and your experiences to bring your professional story to life.

Join

ʕ◔ϖ◔ʔ < I'm Rubyist

Wantedly のソフトウェアエンジニア。 Profile 領域の Backend および Web Frontend の Chapter Lead(テックリード)としてプロダクト開発や開発基盤の整備をしています。 フレームワークを抽出したりレールを敷いたりするのが得意。 使える言語は得意な順に CSS, Go, Ruby, JavaScript(TypeScript), 関西弁 です。

In the future

Ambition

In the future

- ソフトウェア開発にパラダイムシフトを起こす何かを生み出す - 隣接しあう技術領域の間をなめらかに接続し、今までに無いような価値を提供する - 人々の文化・生活・価値観をアップデートするようなプロダクトを作る

July 2020
-
Present

Backend Chapter Lead, Profile Domain
Present

July 2020 -

Present

組織の開発能力に非線形な成長をもたらすアーキテクチャ・基盤を生み出す

マイクロサービス共通ライブラリで “Governance through code” を実現する

Feb 2021

マイクロサービス共通ライブラリで “Governance through code” を実現する

Feb 2021

React でデザインシステムを正しく実装する - コンポーネントカタログを超えて

Jan 2021

React でデザインシステムを正しく実装する - コンポーネントカタログを超えて

Jan 2021

Apollo Client と SSR の罠 その1 - パフォーマンス改善編

Dec 2020

Apollo Client と SSR の罠 その1 - パフォーマンス改善編

Dec 2020

Go 製 CLI にプラグイン機構を作る方法n選

Dec 2020

Go 製 CLI にプラグイン機構を作る方法n選

Dec 2020

GoCon '20 in Autumn SENDAI

Oct 2020

GoCon '20 in Autumn SENDAI

Oct 2020

July 2019

Backend Chapter Lead, People Tribe

July 2019

5年後の Wantedly プラットフォームを支えるアーキテクチャを作る

pb-serializer: Serialize Ruby objects to Protocol Buffers

Ruby で gRPC などで Protocol Buffers を扱う際に、ActiveRecord インスタンスなどの Ruby オブジェクトを Protobuf のオブジェクトにマッピングするロジックを書く場所に困る問題を解決するために実装したライブラリ。 JSON であれば ActiveModel::Serializer や jsonapi-serializer などのライブラリが存在するが、Protocol Buffers は予めスキーマが定義されていることが保証できるので、それを活かした API となっている

Mar 2020 -

pb-serializer: Serialize Ruby objects to Protocol Buffers

Ruby で gRPC などで Protocol Buffers を扱う際に、ActiveRecord インスタンスなどの Ruby オブジェクトを Protobuf のオブジェクトにマッピングするロジックを書く場所に困る問題を解決するために実装したライブラリ。 JSON であれば ActiveModel::Serializer や jsonapi-serializer などのライブラリが存在するが、Protocol Buffers は予めスキーマが定義されていることが保証できるので、それを活かした API となっている

Wantedly People "Profile" Renewal

Wantedly People アプリで、よりつながりを深めるために Profile 機能のリニューアルを行いました。 主に Backend の設計・実装を担当しました。 サービス間通信ではすべて gRPC を利用し、モバイルアプリに返す直前に grpc-gateway を挟み JSON over HTTP/1.1 に変換するような構成をとっています。

Dec 2019 - Mar 2020

Wantedly People "Profile" Renewal

Wantedly People アプリで、よりつながりを深めるために Profile 機能のリニューアルを行いました。 主に Backend の設計・実装を担当しました。 サービス間通信ではすべて gRPC を利用し、モバイルアプリに返す直前に grpc-gateway を挟み JSON over HTTP/1.1 に変換するような構成をとっています。

rails runner と NoMethodError - 使い回すスクリプトは rake task にしよう

Dec 2019

rails runner と NoMethodError - 使い回すスクリプトは rake task にしよう

Dec 2019

`*sql.DB` を観察する #golang

Dec 2019

`*sql.DB` を観察する #golang

Dec 2019

subee - #golang で快適に Pub/Sub するためのフレームワーク

Dec 2019

subee - #golang で快適に Pub/Sub するためのフレームワーク

Dec 2019

hx: Extensible HTTP Client in Go

現実世界のアプリケーションにおける "正しい" HTTP リクエスト送信の難しさを解消するため、 ”Easy to use", "Hard to misuse", "Easy to extend'" の3点を意識した Go 製の HTTP クライアントライブラリを作成・公開しました。 ただ、社内のマイクロサービス間通信で gRPC を本格利用できるようになっていたために Wantedly の Production での利用は限定的となりました。

Nov 2019

hx: Extensible HTTP Client in Go

現実世界のアプリケーションにおける "正しい" HTTP リクエスト送信の難しさを解消するため、 ”Easy to use", "Hard to misuse", "Easy to extend'" の3点を意識した Go 製の HTTP クライアントライブラリを作成・公開しました。 ただ、社内のマイクロサービス間通信で gRPC を本格利用できるようになっていたために Wantedly の Production での利用は限定的となりました。

Apr 2018

People 開発チーム バックエンドエンジニア

Apr 2018

マイクロサービスのツラミと向き合い、開発を加速させる

golang.tokyo #25

June 2019

golang.tokyo #25

June 2019

pubee: Pluggable Pub/Sub Publisher

subee の兄弟分として実装した、 Pub/Sub の Publisher ライブラリ。現実世界で使うために interceptor を挟めるようになっているなど拡張性が高い API になっている。

May 2019 -

pubee: Pluggable Pub/Sub Publisher

subee の兄弟分として実装した、 Pub/Sub の Publisher ライブラリ。現実世界で使うために interceptor を挟めるようになっているなど拡張性が高い API になっている。

golang.tokyo #24

May 2019

golang.tokyo #24

May 2019

Go Conference 2019 Spring

May 2019

Go Conference 2019 Spring

May 2019

golang.tokyo #24

May 2019

golang.tokyo #24

May 2019

subee - Pub/Sub worker framework in Go

Nov 2018 - Apr 2019

subee - Pub/Sub worker framework in Go

Nov 2018 - Apr 2019

Wantedly People "Updates"

Wantedly People アプリでつながった相手の情報が知れる新機能「Updates」のバックエンドの設計・実装を担当しました。 コンテンツの拡張性を強く意識し、柔軟性・生産性の高い Ruby on Rails と並列処理が得意な Go、それぞれの特性をうまく活かすようなアーキテクチャになっています。 ドメインモデルの深い考察や Protobuf IDL 中心とした開発など、これまでの People Backend の集大成と言える開発でした。多分。

Dec 2018 - Mar 2019

Wantedly People "Updates"

Wantedly People アプリでつながった相手の情報が知れる新機能「Updates」のバックエンドの設計・実装を担当しました。 コンテンツの拡張性を強く意識し、柔軟性・生産性の高い Ruby on Rails と並列処理が得意な Go、それぞれの特性をうまく活かすようなアーキテクチャになっています。 ドメインモデルの深い考察や Protobuf IDL 中心とした開発など、これまでの People Backend の集大成と言える開発でした。多分。

`Wrap(err)` in our production #golang

Dec 2018

`Wrap(err)` in our production #golang

Dec 2018

技術選択編 - #golang で CLI 作るときにいつもつかうやつ - Qiita

Dec 2018

技術選択編 - #golang で CLI 作るときにいつもつかうやつ - Qiita

Dec 2018

Findy 年間コントリビューション数

2018

6

Findy 年間コントリビューション数

2018

6

GoCon 2018 Autumn に登壇します & スカラシップやります!! #golang #gocon

Nov 2018

GoCon 2018 Autumn に登壇します & スカラシップやります!! #golang #gocon

Nov 2018

Go Conference 2018 Autumn

Nov 2018

Go Conference 2018 Autumn

Nov 2018

srvc/wraperr: Check that error return value are wrapped

Go の静的解析ツールへの熱が高まっていた流れで、Go のエラーハンドリング漏れを見つけて警告を出す linter を実装しました。 リリース後、準標準パッケージの golang.org/x/tools/go/analysis および analysistest が登場したのでそれを利用するようにリライトしています。

Sept 2018 -

srvc/wraperr: Check that error return value are wrapped

Go の静的解析ツールへの熱が高まっていた流れで、Go のエラーハンドリング漏れを見つけて警告を出す linter を実装しました。 リリース後、準標準パッケージの golang.org/x/tools/go/analysis および analysistest が登場したのでそれを利用するようにリライトしています。

Go 1.11 の modules・vgo を試す - 実際に使っていく上で考えないといけないこと #golang

Aug 2018

Go 1.11 の modules・vgo を試す - 実際に使っていく上で考えないといけないこと #golang

Aug 2018

gex: The implementation of "clarify best practice for tool dependencies".

Go 1.11 で Modules が Go に取り込まれた際に、実行ツールの依存管理をうまくやる手法が標準でサポートされてないことから実装した CLI 。本家の Issue で提案されていた手法をそのまま実装に落とした形になる。Go 1.11 リリースの次の日にぱぱっと実装してリリースした。

Aug 2018 -

gex: The implementation of "clarify best practice for tool dependencies".

Go 1.11 で Modules が Go に取り込まれた際に、実行ツールの依存管理をうまくやる手法が標準でサポートされてないことから実装した CLI 。本家の Issue で提案されていた手法をそのまま実装に落とした形になる。Go 1.11 リリースの次の日にぱぱっと実装してリリースした。

builderscon tokyo 2018

Aug 2018

builderscon tokyo 2018

Aug 2018

Go(Un)Conference 3kg

July 2018

Go(Un)Conference 3kg

July 2018

microservices の共通基盤ライブラリの設計・実装

社内のマイクロサービスに求められるドメインロジック外の振る舞いを共通化したライブラリを設計し、 Ruby および Go 向けに実装しました

July 2018 -

microservices の共通基盤ライブラリの設計・実装

社内のマイクロサービスに求められるドメインロジック外の振る舞いを共通化したライブラリを設計し、 Ruby および Go 向けに実装しました

RejectKaigi2018

May 2018 -

RejectKaigi2018

May 2018 -

「Go + grpc-gateway で作る JSON API サーバ速習会」を開催しました

Apr 2018

「Go + grpc-gateway で作る JSON API サーバ速習会」を開催しました

Apr 2018

Go Conference 2018 Spring

Apr 2018

Go Conference 2018 Spring

Apr 2018

Jan 2017

Engineer(Intern)

Jan 2017

* Wantedly People の WEB 版 SPA の技術選定 ~ 設計 ~ 開発 * Ruby・Go を用いた Wantedly People のマイクロサービス開発

grapi: A surprisingly easy API server and generator in gRPC and Go

Mar 2018 -

grapi: A surprisingly easy API server and generator in gRPC and Go

Mar 2018 -

gRPC + grpc-gateway の導入

Go 製 Web API サーバの開発生産性向上と gRPC の技術検証のために、gRPC + grpc-gateway 構成のマイクロサービスを実装・本番投入しました。 また、そのサービスをもとに同様の構成のマイクロサービスを実装するためのマイクロフレームワークである grapi を設計・実装しました。 ここでの開発の成果は OSS になっているほか、Go Conference 2018 Spring で発表もしています

Nov 2017 - Mar 2018

gRPC + grpc-gateway の導入

Go 製 Web API サーバの開発生産性向上と gRPC の技術検証のために、gRPC + grpc-gateway 構成のマイクロサービスを実装・本番投入しました。 また、そのサービスをもとに同様の構成のマイクロサービスを実装するためのマイクロフレームワークである grapi を設計・実装しました。 ここでの開発の成果は OSS になっているほか、Go Conference 2018 Spring で発表もしています

ISUCON 7 本戦10位

Nov 2017

ISUCON 7 本戦10位

Nov 2017

Rails アプリの RDB の垂直分割

Wantedly で「プロフィール」というモデルが重要になってくることを見据え、その周辺のデータをメインのデータベースから切り出すための技術検証・実態調査および分割のための実装を行いました。 ActiveRecord にパッチを当てて実際に発行されているクエリをすべて収集し、テーブルをまたいだ join がないかなどの調査をしています。 正社員として入社後、その過程をRejectKaigi 2018 にて発表しています https://www.wantedly.com/id/izumin/items/7e085921-72da-4397-8311-ae561f403d0a

Oct 2017 - Nov 2017

Rails アプリの RDB の垂直分割

Wantedly で「プロフィール」というモデルが重要になってくることを見据え、その周辺のデータをメインのデータベースから切り出すための技術検証・実態調査および分割のための実装を行いました。 ActiveRecord にパッチを当てて実際に発行されているクエリをすべて収集し、テーブルをまたいだ join がないかなどの調査をしています。 正社員として入社後、その過程をRejectKaigi 2018 にて発表しています https://www.wantedly.com/id/izumin/items/7e085921-72da-4397-8311-ae561f403d0a

ISUCON7予選に学生チームで参加して1日目3位枠で突破しました!

Oct 2017

ISUCON7予選に学生チームで参加して1日目3位枠で突破しました!

Oct 2017

React反省会

May 2017

React反省会

May 2017

OHP

May 2017

OHP

May 2017

Wantedly People Web版 の開発

Wantedly People アプリで登録した連絡先の管理がおこなえる Web 版のアプリケーションを技術選定 ~ 実装までやりました。 当時は Wantedly 初の React 製なフル Single Page Application でした。

Jan 2017 - Apr 2017

Wantedly People Web版 の開発

Wantedly People アプリで登録した連絡先の管理がおこなえる Web 版のアプリケーションを技術選定 ~ 実装までやりました。 当時は Wantedly 初の React 製なフル Single Page Application でした。

tomatone

tomatone

scaffold

scaffold

Nov 2015
-
July 2016

Engineer(Intern)

Nov 2015 - July 2016

BLEを利用するAndroidアプリの開発

DroidKaigi 2016: Speaker

Feb 2016

DroidKaigi 2016: Speaker

Feb 2016

Droidux

Dec 2015

Droidux

Dec 2015

Bletia - Promisified BLE library for Android

Android が標準ライブラリとして提供する BLE まわりの API が使いづらかったため、抽象化し Promise の皮をかぶせたライブラリを実装しました。 後に RxJava の時代になったため、 Rx のインタフェースでも利用できるような改修を加えています。

Sept 2015 - Nov 2015

Bletia - Promisified BLE library for Android

Android が標準ライブラリとして提供する BLE まわりの API が使いづらかったため、抽象化し Promise の皮をかぶせたライブラリを実装しました。 後に RxJava の時代になったため、 Rx のインタフェースでも利用できるような改修を加えています。

Mar 2015
-
Oct 2015

Engineer(Intern)

Mar 2015 - Oct 2015

Ruby on Rails, AngularJSを用いた開発

関西 Ruby 会議 06

July 2015

関西 Ruby 会議 06

July 2015

konashi SDK for Android

フィジカルコンピューティングボード「konashi」のAndroid向けSDKを実装しました. バックエンドに自作のAndroid BLE APIのPromise wrapper library「Bletia」を使用しています.

konashi SDK for Android

フィジカルコンピューティングボード「konashi」のAndroid向けSDKを実装しました. バックエンドに自作のAndroid BLE APIのPromise wrapper library「Bletia」を使用しています.

Apr 2013
-
Mar 2015

明石工業高等専門学校

7 years

機械・電子システム工学専攻

Apr 2013 - Mar 2015

情報工学系(佐村研究室) スマートフォン上での文字入力やロック解除時の癖から本人認証を行う研究

優秀賞,U-23賞(Mashup Awards 10)

Dec 2014

優秀賞,U-23賞(Mashup Awards 10)

Dec 2014

ヤングリサーチャー賞(DICOMO2014)

July 2014

ヤングリサーチャー賞(DICOMO2014)

July 2014

明石高専 Web サイトリニューアル

2013

明石高専 Web サイトリニューアル

U-23賞(Mashup Awards 9)

June 2013

U-23賞(Mashup Awards 9)

June 2013

フリック入力による日本語非定型文のキーストローク認証

Sept 2013

フリック入力による日本語非定型文のキーストローク認証

Sept 2013

スマートフォンにおけるPIN入力タッチスクリーンバイオメトリクスの実装

Mar 2014

スマートフォンにおけるPIN入力タッチスクリーンバイオメトリクスの実装

Mar 2014

スマートフォンにおける日本語非定型文でのフリック入力認証

Nov 2013

スマートフォンにおける日本語非定型文でのフリック入力認証

Nov 2013

PIN入力のタッチスクリーンダイナミクスにおける認証閾値決定法

May 2014

PIN入力のタッチスクリーンダイナミクスにおける認証閾値決定法

May 2014

スマートフォンでのキーストロークダイナミクスにおける特徴量抽出の検討

Sept 2013

スマートフォンでのキーストロークダイナミクスにおける特徴量抽出の検討

Sept 2013

PIN入力タッチスクリーンバイオメトリクスにおける識別手法の影響

July 2014

PIN入力タッチスクリーンバイオメトリクスにおける識別手法の影響

July 2014

T☆L Perc!!

T☆L Perc!!

actif - 高専祭をてのひらに

actif - 高専祭をてのひらに

Apr 2008

電気情報工学科

Apr 2008

情報工学コース(佐村研究室) / ソフトテニス部 / Web製作研究部 / 高専祭実行委員会

Sept 2014
-
Feb 2015

エンジニア(Intern)

Sept 2014 - Feb 2015

ソーシャルファンコマースサイト「Label」開発チーム バックエンド(Ruby on Rails)及び Web フロントエンド(AngularJS)を担当

Mar 2014
-
Apr 2014

エンジニア(Intern)

Mar 2014 - Apr 2014

Python,JavaScriptを用いた開発

Sept 2013

エンジニア(Intern)

Sept 2013

Ruby on Rails,JavaScript(Backbone.js)を用いた受託開発

Aug 2013

インターンシップ

Aug 2013

Ruby on Railsを用いた受託開発


Skills and qualities

うさみみ

Recommended by Helene Koyama and 22 more
23

Ruby on Rails

Recommended by Arata Sato and 11 more
12

Go

Recommended by Arata Sato and 8 more
9

gRPC

Recommended by Masakazu Nishimura and 3 more
4

React

Recommended by Masakazu Nishimura and 2 more
3

Publications

マイクロサービス共通ライブラリで “Governance through code” を実現する

Feb 2021

React でデザインシステムを正しく実装する - コンポーネントカタログを超えて

Jan 2021

Apollo Client と SSR の罠 その1 - パフォーマンス改善編

Dec 2020

Go 製 CLI にプラグイン機構を作る方法n選

Dec 2020

rails runner と NoMethodError - 使い回すスクリプトは rake task にしよう

Dec 2019

Show more

Accomplishments/Portfolio

GoCon '20 in Autumn SENDAI

Oct 2020

pb-serializer: Serialize Ruby objects to Protocol Buffers

Mar 2020 -

Wantedly People "Profile" Renewal

Dec 2019 - Mar 2020

hx: Extensible HTTP Client in Go

Nov 2019

golang.tokyo #25

June 2019

Show more

Awards and Certifications

ISUCON 7 本戦10位

Nov 2017

優秀賞,U-23賞(Mashup Awards 10)

Dec 2014

ヤングリサーチャー賞(DICOMO2014)

July 2014

U-23賞(Mashup Awards 9)

June 2013

応用情報技術者試験

Aug 2011

Show more


Languages

Japanese - Native