[業務委託での指名が受けられるようになりました!](https://job-draft.jp/release)

ID:19871さん

自己推薦一覧

自己推薦はありません

3年後の目標や野望


技術選定や教育、仕組みづくりなどのカイゼンを通じた開発チームの士気を底上げできるエンジニアでありたい

カイゼンの余地が豊富なのに、過去の経験に固執して前進できていない現場を多く見てきたため。

年収評価シート

2018年/半年以内

[Rails] 法人向けクラウドサービスのAPIリニューアル

【プロジェクト概要】 運用中の法人向けクラウドサービスの、WebアプリリニューアルにおけるAPIサーバの一新プロジェクト。既存のAPIv1を元に、新たに必要になるAPIv2の洗い出しや、実装、既存APIのドキュメント化及びリファクタリングなどを担当。 リニューアルプロジェクトの人数は十数人、うち自身が担当しているAPI開発チームは3~5人で、それぞれがドキュメントの作成から実装、テスト作成までを一貫して担当している。 【ドキュメントの作成】 APIBluePrintに基づいたMarkdownによるAPIドキュメントを初めに作成する。作成したドキュメントは、Aglioを用いてドキュメントサーバとしてチーム内で閲覧できるようにし、それを見るだけで実装及びAPIの利用ができる状態を作る。 【実装】 Ruby on Rails5によるAPIの実装。各モデルの読み書きに関するRubyコードを、徹底的にDRYになるようにモジュールを切り出したり、サービス層を積極的に導入するなど、詳細設計にも拘り、レガシーコードが抱えてきた可読性が低い問題を根本から解決する。実装作業は後述のテストコードを書きながら、半テスト駆動開発になることが多い。 【テスト作成】 RSpecによるAPIテストを作成する。前述の実装と順番が前後したり並行して行うことも多い。テストはカバレッジには特に拘らず、実装の難易度や変更可能性などを考慮してブラックボックスに書いたりホワイトボックスに書いたり、様々なテストケースを検証する。いくつかのAPIでは外部サービスに依存するロジックがあったりするので、その場合は必要に応じてドライバ、スタブを用意し、テストの範囲を明確にすることもある。 【プルリクエスト及びレビュー】 実装が完了後は、Githubのコードレビュー機能を用いてプルリクエスト(プルリク)を作成する。プルリクエストでは、どこを何故どのように変更したかのコードの説明を客観的に書くことでセルフレビューを徹底するようにしている。他のメンバーが作成したプルリクに対してのレビューも積極的に行い、そのコード書いた意図や背景をレビューしながら確認することで、自身が理解している範囲を広げるように心がけている。

2017年/半年以内

[Laravel / Vue] 介護記録の作成を電子化するシステムのプロトタイプ開発

【プロジェクトの概要】 介護スタッフがタブレットを用いて、介護活動後にその報告を作成するWebシステム。受託案件によるプロトタイプ開発で、0ベースから要件を元に9割ほどの実装を一人で担当。 【vue.jsを用いたSPA開発】 本案件では、PC、タブレット端末の両方から利用することから、Webアプリでもタブレットからタッチ操作で快適に利用できるように、SPAで開発することにした。SPA開発に使用するフレームワークには、少なからず経験のあったvue.jsを採用。プロトタイプレベルでそこまで大規模な状態管理は起こりえないので、vuejsなどの利用は見送った。 vue.jsでは、受託元から受け取ったデザインサンプルをベースに、vueコンポーネントを構築し、それを組み合わせて画面を機能単位で作るボトムアップな手順を採用した。基本的には同じだが細部が異なるUIが複数あるというケースが多かったため、この手法が最適だった。 【Laravel5によるAPIサーバの実装】 フロントエンドがSPAになっているので、サーバはRestFulなAPIサーバとして実装することにした。リソースを単純に読み書きするケースがほとんどだったので、比較的シンプルなCRUDを提供するRestFulAPIにすることが出来た。一部、入力情報の集計周りをどのようなURLで表現するかなどで悩む場面もあったが、RestFulに拘りすぎずにフロントエンド的に利用しやすいケースを用意するようにした。 【PHPUnitを用いたAPIテストの作成】 本案件ではシンプルなAPIが多かったので、ほとんどをホワイトボックスにテストし、カバレッジを90%を超える網羅を行った。その結果、些細な仕様変更やリファクタリングによるデグレをいち早く確認することができるようになり、高品質なコードを容易に改修できるようになった

2016年/3ヶ月以内

[機械学習] BtoBのマッチングサイトにおける機械学習による提案システムの開発

【プロジェクトの概要】 WordPress上で動作する、BtoBのマッチングサイトの内で稼働するマイクロサービスの設計、実装、保守運用。担当したマイクロサービスでは、ユーザの特性やシステム内での利用ログを元に機械学習を実施し、ユーザへのマッチング候補の提案を行うサーバの設計、実装、保守運用を行った。 【機械学習サーバの構築】 機械学習のサーバは、AWS上ES2インスタンスを立ち上げ、そこにNginxをリバースプロキシに、Python + Bottleで簡易WebAPIを実装。後述の機械学習ロジックを実行するインフラの設計、整備、保守運用を行った。クライアントからのリクエストは1時間に1回と決まっているので、即時性が必要ないので比較的簡易的で保守しやすい構成にすることで、引き継ぎも容易に行うことができた。また、機械学習に関するログをチャットワークに自動ポストするような仕組みを作り、想定以上に時間がかかったり、不都合なデータが含まれていた場合にアラートを飛ばすようにし、安全性の高い運用ができるような仕組みづくりを行った。 【機械学習の実施】 自身のとっては、Pythonも含めて初めての機械学習となったので、始めの2週間ほどしっかり時間をかけてPythonの基本及び機械学習のノウハウを仕入れた。比較的学習コストの低いscikit-leanを用いて、教師あり学習に絞って技術を身につけることで、付け焼き刃なものの、少なからず成果の出る学習モデルの構築までたどり着いた。機械学習の精度向上や、運用に応じた調整作業などは他の人に引き継ぐ形となったが、機械学習の基礎を身につけることが出来たので良い経験になったと思う。

2016年/半年以内

[Rails / React] クラウドファンディング系SPAの開発

【プロジェクトの概要】 クラウドファンディング系SPAの受託開発で、サーバ、フロント問わず実装の7割ほどを担当。自身にとってはRailsもReactも初めてばかりの経験で、個人的には最も成長の糧担ったプロジェクトと言える。 【React/Reduxによるフロントエンド実装】 フロントエンドは、React+Reduxを用いたSPAで実装した。Reduxはもちろん、Reactも初めて、さらに言えば(実務では)フロントエンドフレームワークを使うことも初めてだったので、本当に何もわからない状態からのスタートだった。受託元にある程度ベースとなるコードを最初に実装していただいたので、それを見本として勉強しながらの実装作業となった。初めは、Reactによるコンポーネントの分割の感覚や、Reduxを用いる意味もわからないままだったが、少しずつトライアンドエラーを重ねて、コンポーネント指向の考え方や、Reduxによる状態管理のメリットなどを理解して、数カ月後には受託元の力を一切借りずとも一通りの実装を行えるようになった。 【RailsによるAPIサーバの実装】 フロントエンド同様、サーバサイドのRailsも初めての経験だった。Ruby自体はそれなりに使っていて、Sinatraによる軽量Webアプリケーションの開発経験もあったので、そこから発展させながらRailsの概念を学んだ。一つ一つのコードについて、何故そうするべきなのか、これはどうやって動いてるのかを考え、必要に応じてRails本体のソースコードも読むようにすることで、少しずつ理解を深めた。今では最も得意なWebフレームワークになっているが、この経験が非常に大きかったことは確かと言える。 【Payjpによるクレジットカード決済機能を実装】 クレジットカード決済代行サービスのPayjpのAPIを用いて、システム内からクレジット払いができるような仕組みづくりを行った。ここは特にミッションクリティカルな部分で、些細なバグがシステム全体の信頼を落としかねない部分なので、徹底的にトランザクション管理をしたり、テストを細かく書いたり、コードレビューを小まめにお願いしたりした。そのおかげか、システムがローンチされた現在も、今のところは問題なく動作しているようだ。

2016年/半年以内

[Swift/PHP/Vue] 写真共有系サービスの開発

【プロジェクト概要】 自社サービス予定の、写真共有系サービスのプロトタイプ開発で、サーバサイド、フロントエンド、及びiOSで利用するためのネイティブアプリの開発のほとんどを一人で行った。 【SwiftによるiOSカメラアプリの実装】 少しではあるが、当時社内で唯一ネイティブアプリの開発経験を持っていたので、iOSによるカメラ制御系アプリの基礎部分の実装を行い、社内にネイティブアプリ開発の基礎を広めた。アプリでは、デフォルトのカメラをベースに、背景に画像を透過するなどの独自の機能を追加し、それをサーバにアップロードする仕組みを実装した。自身もObjective-cの経験はあってもSwiftは殆ど無かったので、Swiftを学びつつ、社内ブログにノウハウをまとめることで、自身のスキルも高めることができた。 【LaravelによるWebアプリケーションの実装】 アプリを用いて撮影、アップロードされた写真は、Laravelで実装されたWebアプリを用いて閲覧、共有できるようになっている。(所謂ガワネイティブ) サーバサイドではユーザの管理や投稿された写真の管理、集計など基本的な仕組みを実装した。プロトタイプ段階だったので本格的な実装は引き継いだ先に任せたが、0ベースからの充分な土台作りは出来たと言える。

2015年/2年以内

[Perl] LMSの設計、開発、保守

【プロジェクト概要】 Perl+自社製フレームワークによって実装された、リリースから10年以上の、大学(ないし教育機関)向けのLMSの開発保守運用。新卒採用後に配属された自身にとって初めてのプロジェクト。 【既存システムへの新機能の実装】 新機能案をベースに、要件定義を行い、実際にお客様の元でヒアリングやプレゼンテーションを行って仕様を詰める段階から、設計、実装までの一連の作業を経験。新卒特権として全ての工程で先輩社員に様々なことを教わり、システム開発の上流工程から下流工程までの一通りの基本中の基本を抑えることができた。 【マイクロサービスの設計、実装】 特定機能をレガシーコードから分離するために、マイクロサービスとして別途サーバを建ててその機能専用のWebアプリケーションを実装することになった。メインのシステムはPerl+自社製フレームワークで書かれているので、マイクロサービスではモダンに実装できるようにRuby+Sinatraを採用。VagrantやDockerを使ったサーバの構築や保守の基礎も学んだ。 【外部機器と連携するiOSアプリの開発】 iOS端末を用いて、他社製品とBluetoothで連携させるアプリの開発を行った。自身にとっては初めてのスマートフォンアプリで、Objective-Cの難解差に苦しんだ。元々ネイティブアプリは外注していたのもあって、社内でObjective-Cを使える人が居なかったので、自身がそれを引き継げるように積極的に勉強しながら実装を行った。実装したアプリは、某アイドルを起用したPVの撮影まで行われ、プレスリリースされた。 【システム内の情報を社内全体で共有できる社内ツールの開発】 本システムは、自社サーバ内にSaaSの形式で配置されているので、お客様ごとにサーバがどのように使われているかは、サーバに実際にアクセスしないとわからない。そのため、開発部以外の社員(営業など)がそれを把握することができず、営業活動の足枷にもなっていた。そこで、SSHで対象サーバ内にアクセスし、目的のデータを解析、整理し、それをCSVでグループウェアに投稿するツールをシェルスクリプトを用いて開発した。本ツールを実装する上で最も気にしたことは、稼働中の本番環境にアクセスするので、そのサービスを妨げないことだった。仮に重い処理を回してサービス全体が重くなってしまっては大惨事だ。新卒1年目にはとても荷が重い仕事ではあったが、1つ1つの処理を入念に動作確認し、それらを組み合わせることで確実に動くものを仕上げてから本番環境に適用することで、大きな問題が起こること無く社内で情報共有ができるようになった。

マネージメント能力

アピール項目


アウトプット

GitHub アカウント
あり
Qiita アカウント
あり
Speaker Deck アカウント
未入力です
SlideShare アカウント
未入力です
特にアピールしたいアウトプット
未入力です

今後、身につけなければいけないと思っている技術は何ですか?

- Docker - サーバレス - GraphQL - WebAssembly

エンジニアとして影響を受けた本を教えてください

- リーダブルコード - プリンシプルオブプログラミング - 明解C言語

あなたが一番パフォーマンスを出せるのはどんな環境ですか?

- MacBook - Unix - Vim

キャラクター

直近で一番やりたいこと
技術を極めたい
好きなスタイル
好きな規模
水とプログラミングどっちが大事?
自信を持って人より秀でていると言える点
学習能力 / 調整力 / 問題解決力
スキルのタイプ
得意なフェーズ
会社を選ぶ一番の基準
プライベートとの両立
やりたくない分野
未入力です
その他の特徴
使用言語にはこだわらない / レガシーな環境を改善できる / 新しい技術はとりあえず試す / 趣味は仕事
その他のやりたいこと・やりたくないこと
未入力です

やりたい事

手を動かして設計してコードを書きたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
価値あるプロダクトを作り成長させたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
学び続けて技術力でプロダクトに貢献したい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
意義があることや社会に貢献できる仕事がしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
人や計画の調整・マネジメントをしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
レガシーなシステムの保守・運用・改善をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
企画や仕様を考えるところから関わりたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
業務効率を改善して一緒に働く人のためになりたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
全社横断的な共通基盤作りや強化をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい
組織や文化を作る・成長させる仕事をしたい
絶対やりたくない
あまりやりたくない
別に普通
やりたい
絶対やりたい

基本プロフィール

年齢
今年で20代中盤
好きな Text Editor
vim
希望勤務地
東京都 / リモート勤務
家庭の事情や体調など、都合に合わせてリモート出来れば問題ない
希望年収
600万円
ただいまの期間
ドラフト参加受付中

  • この期間に審査合格した方は次回ドラフト参加になります
  • ドラフト初参加以外の方は次回のドラフト参加 / 不参加を選択してください
  • レジュメは更新できます
  • 審査は随時行っています
ご意見箱

要望、不具合報告、使いづらい点や感想など、なんでもお気軽にご連絡ください。

  • {{error}}
※個別回答は行っていません。ご回答が必要なお問い合わせにつきましては「CONTACT US」よりご連絡をお願いいたします。
ID:19871さん
今年で20代中盤
vim
参加ステータス
不参加
転職意欲
参加回数
1回
累計平均提示年収
587 万円
SIGN UP
SIGN IN


このサービスを友人に薦めたいですか?