Resume
略歴
青山学院大学卒業後、SI企業でシステムエンジニアを三年間務めた後、自身の技術力を試すべく単身カナダに渡る。語学学校で英語のスピーキングスキルを磨いた後に、完全英語環境のカナダ企業にて約半年間Webエンジニアとしての経験を積み、2014年6月、日本に帰国。同年7月株式会社Gunosyへ入社、社内の各種管理画面の開発、Gunosy Web版の開発、新規Webメディア立ち上げ、広告事業部の開発・マネジメント業務に携わる。2019年8月より現職。テックリードとしてMedPeer Channelの立ち上げを行った後に、基盤開発グループのリーダーに就任、中長期的なアーキテクチャ戦略の策定や技術的負債の返済を行う。
スキル
| 分類 | |
|---|---|
| プログラミング言語 | Ruby, Go, JavaScript, Python, PHP, Rust, Java, C# |
| Webフレームワーク | Ruby on Rails, Sinatra, Django, CodeIgniter, CakePHP |
| フロントエンドライブラリ | React.js, Vue.js, TypeScript, Vite |
| 非同期ジョブ実行 | Sidekiq, Resque |
| テストフレームワーク | RSpec, jest, minitest, testify, PHPUnit, JUnit |
| Database | MySQL, SQL Server |
| IaaS/SasS | AWS, GitHub, CircleCI, Sentry, Datadog, NewRelic, Cloudflare |
[!NOTE] 太字部分が得意領域
職務経歴
技術的負債解消プロジェクト(2022年-現在)
技術: PHP, Ruby on Rails, GitHub Actions, AWS, Autify
- 10年放置されたPHPアプリケーションのRailsに移植・PHP Upgradeを実施 (10年モノのレガシーPHPアプリケーションを移植しきるまでの泥臭くも長い軌跡)
- リポジトリ単体で立ち上がるコンテナ環境の整備
- テスト・デプロイ環境を整え、CI/CDの自動化
- QAチームと連携し、Autifyを用いた自動テストを整備
- レビュー速度の向上施策を実施 (Faster Pull Request Reviews 〜ハイパフォーマンスチームへの道〜)
- フィーチャートグルを用いてコードベースのみ先行リリースし、リスクを最小化
- 移植の結果、レスポンス速度が2〜10倍高速化し、組織としてメンテナンス可能なコードベースに
基盤開発グループ・リーダー(2022年-2024年)
- 中長期的なアーキテクチャ戦略の策定
- 開発部のOKR導入をリード (OKR基本のキ, 小さくはじめる OKR - メドピア開発者ブログ)
- グループリーダーとしてビジネスサイドへ基盤開発の意義・技術的負債返済の必要性について説明し理解を求める
- 自らの1on1スタイルを明示しメンバーと1on1を実施 (例: management/1on1.md)
- チームが気持ちよく働けるようにグループミッションおよびワーキングアグリーメントを策定 (例: management/WorkingAgreement.md)
- 技術顧問・Matz氏との勉強会を企画・運営
- Goで書かれたサービス群のコードレビュー
- フィードバックアンケートを実施しメンバーからフィードバックをもらう
FinTechスタートアップのCRE開発(2023年-現在)
技術: Ruby on Rails, OpenAPI, React.js, yarn, Vite, GitHub Actions, Jenkins, Apache Airflow
- 副業で業務委託としてFinTechのスタートアップのCREチームに加入し開発のサポート
- Ruby on Rails を用いたWeb API開発
- react-admin を用いた管理画面開発
医師向けコミュニティサービスの開発(2019年-2021年)
技術: Ruby on Rails, OpenAPI, Vue.js, GitHub Actions, CircleCI, sidekiq, MySQL(Aurora)
- MedPeer Channel開発チームのテックリードを担当
- アプリケーション設計およびDB設計を主導
- リードエンジニアとしてジュニアレベルエンジニアを指導・育成
- 社内ドキュメント公開のためにPrivate GitHub Pagesを活用(Private GitHub Pagesで社内ドキュメントを公開しよう! - メドピア開発者ブログ)
- メモリ使用の効率化のためjemallocを導入(Ruby × jemallocのすすめ - メドピア開発者ブログ)
- スポンサーイベントにて企業代表としてスポンサーLT登壇
- AuroraリードレプリカとBIツールを繋ぎ込み、社員がカジュアルに触れるデータ分析基盤を構築
- GitHub Actionsを使ったワークフロー改善
- コスト削減のためのCircleCI設定チューニング
広告技術部マネージャー(2018年-2019年)
- Kaizen Day制度
- チームが継続的な改善を行えるための制度を設計し実施
- 記事: チームの継続的改善を支える制度: Kaizen Day - Gunosy Tech Blog
- CI/CDフロー整備
- チームのDX(開発体験)を向上させるためにやった施策
- 記事: CircleCI 2.0/2.1の機能をフル活用してCI/CDワークフローを改善してみた - Gunosy Tech Blog
- 1on1の実施
- 1on1をうまく回すために本を読んで勉強したときの記事: ヤフーの1on1とシリコンバレー式1on1の本を読んだ ~1on1の目的、進め方、何を話すべきか~ | toshimaru/blog
- スクラムの基礎はCSM研修で学ぶ
- HRTの精神を持ったチームづくりを心がける
広告配信システムのAPI/batch/管理画面開発(2017年-2019年)
技術: Ruby on Rails, RuboCop, MySQL(Aurora), Python, Go, AWS, Redis, Fluentd, ElasticSearch, Kibana, Redshift, Redash, Datadog, Akamai WAF
- Go言語を用いた広告配信サーバー開発
- Ruby on Railsを用いた広告配信システムの管理画面
- switch_pointを用いたR/W Splitting
- Pythonを用いた広告配信のバッチ開発
- AWSインフラの各種設定
- 機能開発とともに保守性向上のためのコード・リファクタリング
女性向けWebメディア開発(2016年)
技術: Ruby on Rails, RuboCop, React.js, NewRelic, MySQL, ES6, CircleCI, Sentry, CloudFront, terraform
- 当時Beta版だったRuby on Railsを利用
- 既存のDB(MySQL 5.5)をRails WayなDB(MySQL 5.7 on RDS)へマイグレーションおよびアップグレード
- browserify-rails を利用してES6(ES2015)でJavaScriptを記述
- React.js を用いたシングルページのエディタを開発
- MySQL memcached pluginを用いたページ高速化にトライ
- MySQL 5.7の利用(JSON型を使用)
- インフラストラクチャ構築の一部分でterraformを採用
Gunosy Web版の開発(2015年)
技術: Ruby on Rails, Redis, CircleCI, Akamai CDN, AirBrake, Datadog, GoogleAnalytics, GoogleSearchConsole, GoogleTagManager, GoogleOptimize
- パフォーマンス向上のためのRailsアプリケーションの改修・リファクタリング
- Chefを用いたプロビジョニングおよびデプロイ
- CircleCIによるCI、自動デプロイ
- S3 + Akamai CDNを用いたAssets配信
- Redis によるキャッシュ機構、ランキング機能
- Airbrakeによるエラートラッキング
- NewRelicによるメトリクス計測、監視設定
- Datadogによるサーバー監視
- テックリードを担当(技術選定、設計レビュー、コードレビュー、インターン生の指導)
- iOS Universal Linkの導入
- SEOノウハウを学習
その他
以下、古いプロジェクトなので詳細は割愛しますが、過去の仕事の中で印象深かったプロジェクトのみ列挙します。
- [PHP]社内Webフレームワーク開発
- [C#]ECサイトの構築
- [Java]LIVE配信エンコーダーの制御バッチ開発
アウトプット
[!TIP] https://toshima.ru/ にもまとめています。
Blog
- TIL: til.toshimaru.net
- 🇯🇵 Japanese: blog.toshimaru.net
- 🌐 English: blog.toshima.ru
OSS
- 😺 Colored
catin Go: toshimaru/nyan - 🦀
mkdir+touchin Rust: toshimaru/torch - 📄 Yet another RailsDoc: railsdoc/railsdoc.github.io
- 🛤 For Rails learning: toshimaru/RailsTwitterClone
- ✏️ Jekyll-realated Project: jekyll-toc, jekyll-tagging-related_posts, jekyll-include_sass, kramdown-amp, jekyll-theme-classless-simple
- GitHub Actions: backlog-pr-link-action, auto-author-assign, delete-action-cache
- GitHub CLI extension: toshimaru/gh-workflow-log-cleaner