Skip to content

masayuki14/masayuki14.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 

Repository files navigation

GitHub Pages

Page is here

Self Product

Career

金融系クラウドサービスの開発

  • 概要
    • 法人向け。オープンバンキングサービスの提供。
    • シリーズA~B
  • 期間
    • 2021/4 〜
  • 担当
    • 設計〜開発〜テスト
  • 成果など
    • バッチ処理の仕組みを改善
      • 問題
        • 全体を把握している人が不在
        • 一つの大きなバッチ処理として動いており、長時間実行されていた
        • 途中でエラーが発生するとすべてが止まってしまう状態
        • エラーの発生原因の特定が困難な状況
        • 外部の動き(APIなど)の影響を受けすぎる構造
      • やったこと
        • リバースエンジニアリング
          • バッチ処理全体の状況を解明
          • ドキュメントを作成し、関係者と共有
        • エラーへの対処
          • エラー時に必要なことがわかるようにロギングを整理
          • エラーハンドリングを整理
        • 構造の変更
          • 各種処理を意味のある単位でJob化
          • 依存関係を整理し実行順を整理
          • 必要に応じて排他制御を追加

法務系クラウドサービス開発

  • プロジェクト
    • 法務系クラウドサービス開発
  • 概要
    • 法人向けの法務処理クラウドサービス。契約書の管理や編集が可能で、AIによる英文契約書のレビュー機能などを提供。
  • 期間
    • 2020/04 - 2020/10
  • 担当工程
    • 設計(機能、詳細、DB)
    • 実装
    • テスト(単体、結合)
  • 体制
    • プロジェクトマネージャー:1名、セールス:2名、エンジニア:3名
      • メンバーエンジニアとして参加
  • 利用技術
    • Vue.js
    • Ruby (Ruby on Rails)
    • PostgreSQL
    • Docker
    • Git
  • エピソード
    • ビジネスサイドの要件に合わせてアプリケーションの仕様を決める。 フロントエンド、サーバーサイド、のどちらも開発を行う。 テストの自動化やCI/CD環境を整え、より多くの時間を開発にあてられるような環境整備も行う。

旅行プランニングSNSサービス

  • プロジェクト
    • 旅行プランニングSNSサービス
  • 概要
    • 個人の旅行プランの作成や共有をするためのSNSサービス
  • 期間
    • 2018/02 - 2019/06
  • 担当工程
    • 設計(詳細、DB)
    • 実装
    • テスト(単体、結合)
  • 体制
    • プロダクトオーナー(マネージャー)1名、エンジニア3名、デザイナー1名
      • チーム全員がフルリモートでの参加
      • メンバーエンジニアとして参加 主にDB設計や観光地データ取得基盤を担当し、フロントエンド、バックエンドの開発も行う。
  • 利用技術
    • React
    • Ruby (Ruby on Rails)
    • Python
    • PostgreSQL
    • Docker
    • Git
  • エピソード
    • 観光地のデータを取得するために複数サイトから情報をスクレイピングしデータ統合をして、独立したデータ基盤を作成する部分を主に担当する。 PL/pgSQLを使ってデータ処理をし、作成されたデータをWebサービス側に公開し利用する仕組みを構築した。 DB基盤の開発と並行して、RailsでのAPIやReactでのSPAの開発も行う。

不動産管理会社向けの業務システム

  • プロジェクト
    • 不動産管理会社向けの業務システム
  • 概要
    • クローズドな基幹システムをベースにし、拡張されたWebシステムを構築するプロジェクト。不動産・入居者の管理や、入居者が各種手続きをオンラインで行えるようなシステムを開発する。期間システムとのデータの同期や、入居者向けのクライアントアプリの開発など多様な機能を揃える。
  • 期間
    • 2016/05 - 2020/04
  • 担当工程
    • 詳細設計
    • 設計(機能、詳細、DB)
    • 実装
    • テスト(単体、結合)
  • 体制
    • マネージャー1名、エンジニア4名
    • リードエンジニアとして参加
      • APIのバックエンド、Webのフロントエンド、インフラを担当
    • セルフマネジメント
  • 利用技術
    • Vue.js
    • PHP (Code Igniter)
    • Ruby
    • MySQL
    • Vagrant
    • Ansible
    • Docker
    • Jenkins
    • Git
  • エピソード
    • iOS, Android アプリには専任担当がいるので、先行してAPIの設計や開発用のサーバーの設置などを行いながらバックエンドの実装もう並行して行っていた。 また、Jenkinsを使ってのデプロイ環境を整備し、開発用のAPIサーバーを最新にできるように保ち、またStaging/Productionへのリリース作業からも属人性をなくす。 開発環境はVagrant+Ansibleで始めたが状況の変化に伴い、Dockerの利用へと切り替えていった。 期間システムとのデータ同期についても、MySQLのTriggerやProcedureを使うことでバッチ処理プログラムとの責務を分け、 Viewを使うことでデータ整合性を保ち、パフォーマンスチューニングも行った。

スマートホン向けソーシャルゲームアプリ

  • プロジェクト
    • スマートホン向けソーシャルゲームアプリ
  • 概要
    • 歴史漫画を元にしたシミュレーションRPG。2015/03リリース、2019/09クローズ ベースになるゲームシステムをForkして、新ゲームとして衣替えしリリースしたゲーム開発。150万DL超えの大規模ゲーム。Webベース。
  • 期間
    • 2014/11 - 2018/06
  • 担当工程
    • 設計(機能、詳細、DB)
    • 実装
    • テスト(単体、結合、負荷)
  • 体制
    • マネージャー1名、エンジニア3〜6名
    • リードエンジニアとして参加
      • Webベースのゲームのためフロントエンド、バックエンドの難易度の高い部分や高負荷(高アクセス)を考慮した機能を担当
  • 利用技術
    • Perl
    • MySQL
    • Vagrant
    • Ansible
    • Git
    • Backlog
  • エピソード
    • 当初は開発体制の管理なども不十分で開発自体も思うように進んでいなかった。危機感を感じたため、スケジュールやタスク管理などの基本的なことの改善を積極的に行う。 また、日々の朝会や週1の改善・振り返りミーティングを実施し、チームのコミュニケーションを向上させる。 既存のコードが膨大であり、もとの作りを把握している人間がいないため、ソースコードを読んで仕様を知ることも多かった。 そういった知識を共有するためのドキュメント作りや勉強会など、ゲーム開発以外の部分での貢献も多く行ったプロジェクトだった。

メール自動配信パッケージ

  • プロジェクト
    • メール自動配信パッケージ
  • 概要
    • 登録した内容でメールの自動配信を行うパッケージシステム。ユーザーはバックヤードのシステムでメール配信における設定を行い、メールの配信を行う
  • 期間
    • 2015/10 - 2016/08
  • 担当工程
    • 要件定義
    • 設計(機能、詳細、DB)
    • 実装
    • 運用・保守
  • 体制
    • 受託開発のため一人
    • セルフマネジメント
  • 利用技術
    • React (ver0.13)
    • Ruby (Sinatora)
    • MySQL
    • Chef
    • Vagrant
    • Git
  • エピソード
    • 受託開発でもあり自由に技術選定ができる状況だったため、当時の新しい技術を使って開発を行った。 パッケージ販売だったためサーバー構築を自動化するためのChefの導入や、UIの向上が期待できるReactを使用した。

キッチンメーカー向け見積もりシステム開発

  • プロジェクト
    • キッチンメーカー向け見積もりシステム開発
  • 概要
    • キッチンメーカーのショールームで使うカタログ見積もりシステムの開発。
  • 期間
    • 2013/09 - 2014/09
  • 担当工程
    • 詳細設計
    • 実装
    • テスト(単体、結合)
  • 体制
    • 20名程度
    • フロントエンド
  • 利用技術
    • JavaScript (prototype.js)
    • SVN
    • Redmine
  • エピソード
    • SIer案件のためプロジェクト規模も多くプログラマとして従事。 既存の独自フレームワーク、ライブラリによる古いフロントエンドアプリケーションのリプレイスをリードプログラマとして行う。 既存コードを読み解きリバースエンジニアリングによる仕様の洗い出しを行いながら、新仕様での実装を行った。 新規コードについては、phantom.jsを使っての自動テストを一部導入し、品質の工場を図る。 また、独自にプロファイラを利用してのパフォーマンスチューニングを行った。

動画配信サービスの保守

  • プロジェクト
    • 動画配信サービスパッケージの保守
  • 概要
    • リリース済の動画配信サービスの保守を担当する。途中からの担当なため、開発者不在で仕様も不明な部分が多い中での保守を行った。
  • 期間
    • 2013/01 - 2016/04
  • 担当工程
    • 要件定義
    • 設計(機能、詳細、DB)
    • 実装
    • テスト(単体、結合)
    • 運用
    • 保守
  • 体制
    • 営業担当者と自分の2名
    • セルフマネジメント
  • 利用技術
    • PHP
    • Ruby
    • MySQL
    • Git
  • エピソード
    • 開発者不在および低スキルの状態で作られてシステムであり、レガシーなコードが多いシステムだった。 そんな中で保守と新規開発を行う必要があったため、既存の仕様を知るためにコードを読み込むことが大変であったが、 テストの追加やリファクタリングを少しずつ行い、保守しやすい状態へと改善していった。 また、毎週発生する1〜2時間かかる手作業のデータ登録・更新処理を、スクリプトを使った自動処理へ切り替えるなど、作業の効率化もすすめた。

モバイル向け(ガラケー、スマホ)アドネットワーク

  • プロジェクト
    • モバイル向け(ガラケー、スマホ)アドネットワーク
  • 概要
    • モバイルメディア向けの広告配信を行うアドネットワークシステムの開発。媒体及び広告を管理し、最適な広告を配信する。合わせて、成果、請求などの集計処理なども行う。
  • 期間
    • 2010/07 - 2013/04
  • 担当工程
    • 要件定義
    • 設計(機能、詳細、DB)
    • 実装
    • テスト(単体、結合)
    • 運用
  • 体制
    • リーダー兼営業1名、営業1名、エンジニア2名
    • リードエンジニアとして参加
      • フロントエンド、バックエンド、インフラ、など全般を担当
      • セルフマネジメント
  • 利用技術
    • PHP
    • Ruby
    • MySQL
    • AWS
    • Git
  • エピソード
    • エンジニアリーダーとして、ビジネスサイドの要件をシステムに落とし込み設計から開発、運用までを一気通貫で行う。 AWSを使い自動のスケーリングなどを自前のスクリプトで行ったり、最大で200req/secのトラフィックを100ms/resで処理できるようにシステムのチューニングや処理の最適化を行うのが大変だった。 MySQL-Spiderというストレージエンジンを利用するなどチャレンジングなことを行ったり、複数台サーバーの運用や監視など技術を身につける。

About

github pages's repository

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published