エンジニアスキルシート

2018年12月現在、フリーランスの常駐案件を探しております。希望ポジションはサーバーサイドRailsエンジニアです。
週5で勤務可能です。稼働日は2019年4月を目安としています。希望勤務地は東京です。(新宿・渋谷周辺ならなお良いです。)
もし案件があればご連絡お願いします。

問い合わせフォームはこちらから

紹介文

東京大学大学院にて自然言語処理の研究に従事。
2014年楽天株式会社に新卒入社しWeb業界の道に進む。
2017年スペースマーケットに転職し現在に至る。

2017年には副業エンジニアとしてパラレルワークの経験もあり。

楽天ではトラベル事業の会計システム開発や予約APIの開発を担当。

スペースマーケットではWeb全般(フロントエンド・サーバーサイド・インフラ)を担当。

居住地・および勤務地は東京。

学歴・職歴

西暦 学歴 備考
2008年 – 2012年 明治大学 電気電子生命学科

電力系統における数値計算の研究

2012年 – 2014年 東京大学大学院 情報理工学系研究科

自然言語処理を利用した概念語の順序付け手法に関する研究

2014年 – 2017年 楽天株式会社 サーバーサイドエンジニア。予約API開発、会計システム開発などに従事。
Java, Oracle, Spring, PL/SQL等を扱う
2017年 – 現在 株式会社スペースマーケット Webアプリケーション開発全般。
サーバーサイドはRails, GraphQL, Node.js, フロントエンドはReact, Reduxを利用。
そのほかAWS, Docker, CircleCI, Capistranoなどの環境整備も担当。

スキルセット

Ruby/Ruby on Rails/React.js/Redux/jQuery/Webpack/GraphQL/Apollo/Node.js/Express/Java/Spring Boot/NLP/Git/GitHub/MySQL/Oracle/Redis/MongoDB/GCP/CircleCI/Fastly/AWS(EC2, ECS, Cloud Front, Route53, AMI, S3, RDS)/nginx/Tomcat/Apache/Capistrano/Docker/docker-compose

得意分野

ボジション サーバーサイドエンジニア
言語 Ruby, React.js
サービス マッチングや検索などのtoC向けWebプラットフォーム

業務経験

主に以下のような機能を実装した経験があります。

業務経験
  • 新規機能のDB設計、API設計
  • Ruby on RailsによるREST API, GraphQL APIの開発
  • RSpecによるREST APIのテストコード作成
  • react-railsを利用したReact/Railsアプリケーション開発
  • kaminari, ransack, doorkeeper, deviseなどを利用したRailsアプリケーション開発
  • Stripe, Google Map, SendGrid, Twitterをはじめとする外部APIを利用したアプリケーション開発
  • Active Adminを利用したRails管理画面の作成
  • React.js, Reduxによるフロントエンド実装
  • Dockerを利用した開発経験
  • EC2, ECS, S3, RDS, Route53, ELB, AMIなどを利用したAWSによるインフラ構築。サーバー増強などの経験もあり。
  • SpringBoot、thymeleafを利用したJavaアプリケーション開発
  • SpringBoot、MongoDB、OracleDBを利用したJavaAPI開発
  • バグ対応、障害対応全般

一部、担当したプロジェクトの紹介をします。

収益シュミレーション機能のあるユーザー登録ページ作成

担当工程 要件定義, 設計, コーディング, テスト, 運用保守
役割 フロントエンド, サーバーサイド
使用技術 React, Redux, Node.js, Express, Ruby on Rails, Docker, ECS
期間 2018年7月 – 2018年10月
雇用形態 正社員
業務内容の詳細(折りたたみとなっています)

ユーザー登録ページの作成を行いました。
フロントはReact, Redux, サーバーサイドはRuby on Railsを利用しています。

副業向けサービスのため、ユーザー登録ページには、収益シュミレーション機能を実装しました。
収益の金額や画面のローディングなどの状態をReduxで管理しています。

DoorkeeperとDeviseを利用して認証とログインの実装を行なっています。

また、既存ページのリニューアル案件であるため、AWSのALBを活用しリダイレクト処理などを行いました。

集客用動的ランディングページ作成

担当工程 要件定義, 設計, コーディング, テスト, 運用保守
役割 フロントエンド, サーバーサイド
使用技術 Ruby on Rails, GraphQL, WebAPI, React.js, Redux, Node.js, Express, Docker, docer-compose
期間 2018年4月 – 2018年7月
雇用形態 正社員
業務内容の詳細(折りたたみとなっています)

集客用動的ランディングページ作成を作成しました。
編集者が管理画面で文言を作成し、管理画面上から好きなようにデザイン、文言の位置を並び替えできるようになっています。

サーバーサイドとフロントエンドを担当し、テーブル設計、コーディング、APIテスト、リリースを行いました。

開発は1人で行いました。

システム構成はサーバーサイドはRuby on Rails, フロントエンドはNode, Reactを利用したマイクロサービスアーキテクチャとなっています。サーバーサイドのテストはRspecを利用しています。APIは更新処理はREST API, 取得に関してはGraphQLを利用しています。
管理画面はRuby on RailsのActive Adminで実装しています。
インフラはAWSを利用しています。リリースはcapistranoを利用したデプロイになっています。

実装した機能は以下の機能です。

  • 管理画面の実装
  • ランディングページの作成
  • API(REST, GraphQL) の実装

技術のアピール点は以下になります。

  • GraphQLという比較的利用したモダンなAPIで実装した点です。
  • ランディングページの仕様として並び替えやデザインを管理画面で柔軟に行えるようにする、という項目がありました。仕様を満たすために必要なモデルとモデルのフィールド、フロントのロジックなどを全て担当しました。

お気に入りリスト作成

担当工程 要件定義, 設計, コーディング, テスト, 運用保守
役割 フロントエンド, サーバーサイド
使用技術 Ruby on Rails, AWS, MySQL, React,js, WebAPI
期間 2017年6月 – 2017年10月
雇用形態 正社員
業務内容の詳細(折りたたみとなっています)

マッチングプラットフォームのお気に入りリスト機能の作成をしました。
Airbnbのお気に入りリストのようなイメージです。

サーバーサイドとフロントエンドを担当し、テーブル設計、コーディング、APIテスト、リリースを行いました。

開発は1人で行いました。

システム構成はサーバーサイドはRuby on Rails, フロントエンドはReactを利用したマイクロサービスアーキテクチャとなっています。サーバーサイドのテストはRspecを利用しています。インフラはAWSを利用しています。リリースはcapistranoを利用したデプロイになっています。

実装した機能は以下の機能です。

  • お気に入りリストメモ機能
  • お気に入りリストCRUD画面、APIの実装
  • お気に入りリストに関する動的アクション(お気に入り追加時に色が変わる、サムネイル画像が変わる、モーダルがポップアップで表示される、など)

技術のアピール点は以下になります。

  • 画面ごとにどのようなデータが必要なのかを洗い出し、無駄のないAPI設計を行いました。
  • Reactでフロントは実装したのですが、お気に入りをクリック、お気に入りリストに追加した時の挙動などデータのライフサイクルを意識する必要がある部分が多くありました。そのため、実装を通じてライフサイクルについて学びました。
  • リリース時ですが、すでにお気に入りという概念がサービスには存在していました。お気に入りリストは機能拡張だったのですが、既存のユーザーのお気に入りデータをそのまま移行されるようにリリースだけでなくデータ更新用のSQL, データ更新が問題なくできているか確認するSQLの作成も行いました。

金融商品口コミサイト開発

担当工程 要件定義, 設計, コーディング
役割 サーバーサイド
使用技術 Ruby on Rails, JavaScript, MySQL, jQuery, Docker, docker-compose
期間 2017年6月 – 2017年9月
雇用形態 業務委託
業務内容の詳細(折りたたみとなっています)

金融商品を扱う口コミサイトの構築をしました。

サーバーサイドとフロントエンドを担当し、テーブル設計、コーディング、テストを担当しました。

開発人数は受託依頼会社のエンジニア2人、受託会社2人(自分を含む)の4人でした。
開発体制はチケットでタスク管理をし、チケットベースにプルリクを作成していくリモート体制でした。

システム構成はサーバーサイドはRuby on Rails, フロントエンドはerbを利用したモノリシックなアーキテクチャとなっています。
開発環境としてdockerを利用していました。

実装した機能は以下の機能です。

  • 金融商品をクローリングし、DBに保存するためのスクレイピングスクリプト作成
  • スクレイピングを定期実行するためのタスク作成
  • deviseを利用したログイン周りの実装
  • ユーザー登録フォームの作成
  • フォームの入力エラー等、バリデーションエラーの文言を表示
  • Facebook認証ログインの作成
  • 金融商品の一覧、詳細ページの作成
  • 金融商品に紐づく口コミデータの表示

技術のアピール点は以下になります。

  • スクレイピングは金融商品の細かいデータが必要だったため、各商品の詳細ページを巡回し、クローリングするようにしました。ページによってDOMの構成が若干異なっていたため、HTMLが違いを吸収できるような実装をしました。
  • ログイン機能、SNS認証に関してはゼロから作成しました。gemやAPIのドキュメントを参考にしながら未経験の分野でも開発ができます。

Web診断テストシステムの構築

担当工程 要件定義, 設計, コーディング, テスト, 運用保守
役割 フロントエンド, サーバーサイド
使用技術 Ruby on Rails, JavaScript, jQuery, MySQL, Docker, docker-compose
期間 2017年01月 – 2017年5月
雇用形態 業務委託
業務内容の詳細(折りたたみとなっています)

受託でのWeb診断テストシステムの構築をしました。
選択式の質問がいくつか用意されており、全てに回答するとユーザーの思考、傾向等の結果がわかるシステムです。

システムの概要ですが、テストを受けるユーザーとテストを作成するアドミンが存在しております。アドミンから送られたパスコードを利用してサービスにログインし、専用のテストを受けるというものになっています。

サーバーサイドとフロントエンドを担当し、テーブル設計、コーディングを行いました。

開発人数は自分を含む2人で受託開発をしていました。
開発体制は依頼会社から仕様が渡され、開発は受託側で一任されていました。タスクのアサインをもう一人の開発者が行い、自分はタスクベースで開発をしました。

システム構成はサーバーサイドはRuby on Rails, フロントエンドはerbを利用したモノリシックなアーキテクチャとなっています。

実装した機能は以下の機能です。

  • テーブル設計
  • 保存された質問項目をページングで画面に表示させる

技術のアピール点は以下になります。

  • システムに関係するテーブル設計を自分一人で担当しました。必要になるドメインの洗い出しをし、テーブル設計に落とし込むまでを担当した点に関しては良い経験になったと思います。
  • ページングやクッキーを利用した質問項目の表示を実装しました。「前の質問に戻る」を押した時に先ほどクリックしたデータをそのまま残しておく、ページングで表示する質問数を分割するなど画面表示の実装にこだわりました。

会計システム運用・開発

担当工程 コーディング, テスト, 運用保守
役割 サーバーサイド
使用技術 Java, Oracle, PL/SQL
期間 2016年1月 – 2016年12月
雇用形態 正社員
業務内容の詳細(折りたたみとなっています)

施設へ発行される精算データに関する運用・開発をおこなっていました。サービス拡大に伴う、精算ロジックの拡張やデータの整合性が取れていない場合の調査や定常運用の削減などを担当しました。
例えば、宿泊用の新しいクーポンが発行される場合は、お客様に対して新しい精算項目が増えます。そのようなビジネスの拡張に伴い生産システムの機能拡張を行いました。
会計システムは古いソースがそのまま使われているので障害対応のときなど原因調査をするのが大変でした。特に数百行にわたるSQLを眺め、一意制約違反などでバッチがエラーしている際はその原因をつきとめるのに苦労をしました。しかし、その過程で問題を切り分けるスキルやSQL自体の理解についても身についたと思っています。
それ以外にもDBのテーブル作成のフェーズからプロジェクトに関わっているのでER図やモデリングなどの知識を身につけることができました。DBの設計に関しては仕事を通じて学んだことや技術書で学んだことをまとめたQiitaの記事がはてなブックマークのホットエントリーに入った経験があります。
また、契約社員と同じチームであったため、タスクのアサインなどのマネジメント経験もつむことができました。
使用言語はPL/SQL, Java、フレームワークはJavaはstrutsを利用しています。DBはOracleを利用しています。
二週間単位でスプリントを作成し、チケット駆動での開発となっております。会計のシステム開発チームは全員で5人おり、正社員は私を含めて2人で構成されておりました。ですので、本番環境の作業(リリースやログの確認など)はほとんど担当しておりました。

データセンター移行プロジェクト

担当工程 設計, コーディング, テスト
役割 サーバーサイド
使用技術 Tomcat, oracle, MongoDB, Java, Jenkins, Apache
期間 2015年6月 – 2015年12月
雇用形態 正社員
業務内容の詳細(折りたたみとなっています)

部署単位でのプロジェクトです。データセンターを移行するという大規模なプロジェクトが行われました。
担当は自分が当時担当していた予約通知システムで利用しているアプリケーションサーバーのデータ移行およびアプリ移行です。
インフラチームによって用意された新規のサーバーに、現在利用しているアプリを新しく配置、挙動を確認するという部分を担当しました。
サーバー移行した後に現在利用されているアプリケーションが正しく動いているか確認を行うためまずはリグレッションテストのケースを洗い出す(現在のアプリの機能を全て洗い出す)というところから始めました。
また、新しいサーバーはディレクトリ構造が違っていたりしたのでそのあたりの構造変更も担当しました。またJenkinsサーバーも新しくなったため、一からJobを作成する経験も行いました。
難しかった点は他のアプリとの連携です。APIによって連携している部分はうまく連携がとれていない場合どちらのアプリに問題があるのかを調べる必要がありました。そのためにアプリログなどをみて問題解決をしていきました。
またcron登録されているバッチについてもテストケースを洗い出す必要があったため、ソースコードからケースを洗い出すスキルも身につけることができました。
予約通知システムのサーバー移行に関しては私を含めて2人がメインで作業をしていました。

予約通知システムの開発

担当工程 設計, コーディング, テスト, 運用保守
役割 サーバーサイド
使用技術 Spring,Java, ShellScript, Oracle, MongoDB
期間 2014年6月 – 2015年6月
雇用形態 正社員
業務内容の詳細(折りたたみとなっています)

施設用予約通知データの拡張を担当しました。Oracle上の予約データをMongoDBへデータ転送させるプラットフォームの開発をメインで担当しておりました。
サービスを拡張すると通知する情報が増えるため、それに伴い機能開発を進めていきました。主にWebAPIの開発がメインとなります。
旅行のサービスには国内宿泊やインバウンド宿泊などさまざまなサービスがありサービス固有のロジックなども存在するためそのようにクラス設計に苦労しました。
使用技術についてですが、言語はJava、フレームワークはSpring、CIにはJenkinsを利用しました。インフラ環境に関してはオンプレミスとなっており、担当するアプリケーションサーバーの構築やログ調査などの経験があります。
二週間単位でスプリントを作成し、チケット駆動での開発となっております。予約通知システムのチーム自体は3人で構成されており、各プロジェクトに対して1人づつ開発担当が任されます。
プレジェクト自体は他のチーム(プロジェクトマネージャーや予約ステップチームなど)と協力して行うことになるので、10人前後の規模感となっております。

関連リンク

ソーシャルアカウント

問い合わせ

お問い合わせ・お仕事のご依頼はこちらから