# 職務経歴書

## 基本情報

| 項目            | 内容                          |
| --------------- | ----------------------------- |
| 氏名            | Abiko Naohiro |
| 生年月日        | 1993.7.17                     |
| 居住地 | 東京都               |
| 最終学歴        | 早稲田大学 (法)             |

## 会社経歴

| 年月日    | 経歴                    | 部署 / 職種             |
| --------- | ----------------------- | ----------- |
| 2018.4.1  | 富士ソフト株式会社 入社 | ソリューション事業本部 / 産業システム部 / システムエンジニア |
| 2021.6.31 | 富士ソフト株式会社 退社 |  |
| 2023.12.22 | ウリドキ株式会社 入社(在籍中) | 開発部 / Webエンジニア |

## プロジェクト経歴

###### 2023.12~

### リユース品の買取オークションサイト(Ruby on Rails)

###### 課題と解決のための行動

* Ruby on Railsの開発経験がなかったため、まずはRuby on Railsの学習を行い、開発に取り組んだ。
* 既存のコードを読み、RailsのMVCモデルに則ったコードの書き方を理解し、必要な機能の追加や修正を行った。
* システムのリアーキテクチャ、再設計に伴い、既存のコードをリファクタリングし、パフォーマンスの向上や可読性の向上を図った。
* サブスク契約を再設計するため、営業部門にヒアリングし要件定義、テーブル設計、画面設計を行い、実装を進めた。
* ジャーニーテストを導入し、横断的にテストをすることができるようシステムの仕様を理解し、実装。システムの品質向上を図った。

<!-- ###### 2021.5~2021.6

### 大手機械メーカーの生産管理システムの保守(C#)

###### 課題と私の行動

* 利用者が全検索をした際、検索が終わるまでに30秒~1分かかっていた。検索速度が遅いため、保守でパフォーマンスを上げる必要があった。
* 保守でパフォーマンスを上げるため、SQLのクエリを見直し、ページングを導入し、検索結果を表示する際に全検索をしないようにした。
* 検索中の待ち時間が長いと利用者が不便を感じるため、検索中の待ち時間中は非同期でローディング画面を表示するようにした。
* BootstrapでUIを整え、利用者が使いやすいように工夫した。

###### 2021.4~2021.5

### ふるさと納税のWebサイト更改プロジェクト(Java)

###### 実績・工夫した点

* ソースコードの関数と関数のネストを洗い出す作業。
* 特定の関数や変数をさらに洗い出し、ファイルに書き出す作業。
  * 人の手で作業をする前提で進んでいましたが、私は自動化をした方が良いと考え、シェルスクリプトで文字列検索、操作の処理をし、ファイルに書き出すバッチを作成した。
  * また、Excelでは関数を活用し、該当の箇所は色を付けたり、フィルターを付けたりして視覚的に分かりやすくなるようにしたり、作業者の負担を減らす工夫をした。

###### 2021.3~2021.4

### 外務省のビザ関連サイトとモバイルアプリの連携プロジェクト(Java)

###### 私がやったこと

* 主に画像ファイルを処理するプログラム、画像ファイルをDB、ファイルサーバ両方に保存し、APIでアプリと連携させるための処理追加とテーブルを追加する工程で発生したバグをテストし、改修。
  * 画像処理プログラムで使用していたソフトウェアの使用方法についてシステムを開発した他部署の担当者と連携を取り、使用方法を担当者に伝達した。
  * API連携用にテーブルを追加したため、追加したテーブルに合わせてPOSTされたデータを挿入するコーディングをした。 -->

###### 2020.5.1~2021.3

### 基幹システムERP開発プロジェクト

開発プロジェクトリーダーとともにチケット、メンバーを管理
構成管理チームのCI/CD、データベースのバックアップを自動化

###### 課題と私の行動

* 1日に2回、検証環境へのビルド・リリースをする際、担当者が手作業で行っていたため、ヒューマンエラーが発生していた。
  * CI/CDをBashで構築し、ビルド・リリースを自動化した。
* ビルド・リリースの際、ビルド成果物をGitBucketにプッシュしていたが、GitBucketのブランチを手動で切り替えていたため、間違ったブランチにプッシュしてしまうヒューマンエラーが発生していた。
  * 受入環境用のリリースブランチとバージョンタグを作成し、リリースをするタイミングを確認してもらうための予約・確認用チケットの仕組みを作った。
* 検証環境用のデータベースを定期的にバックアップする必要があった。
  * 検証環境用のデータベースをバックアップするためのシェルスクリプトを作成し、定期的にバックアップできるようにcronで設定した。
  * バックアップしたデータベースを検証環境にインポートするためのシェルスクリプトを作成し、定期的にインポートできるようにcronで設定した。
* 開発チームでチケットが乱立していた。
  * テスターが外部の経験が浅い新人だったため、そもそもテストをする観点が上手くできておらず、PLがイライラして当たっていたが、私は開発者としての視点やテスターの視点も自分の経験を元に、新人に優しく指導した。
  * 煩雑になっていたチケットの管理、整備をした。開発チームが解散する間際でもチケットが大量にあり、整備しきれていなかったため、PLや開発者と話し合い一つずつ解決した。
* プロジェクト内でのドキュメントが整理されていない。
  * ドキュメントの内容をMarkdownで書き、GitHub上で管理することで、ドキュメントのバージョン管理を行い、誰でも簡単にドキュメントを更新できるようにした。
* 定期券購入者の電車、バス経路情報をデータベースから反映させる処理を開発。
  * 定期券購入者の電車、バス経路情報をデータベースから取得し、定期券購入者の情報を更新する処理を開発。定期券購入者の情報を更新するためのAPIを作成し、フロントエンドと連携させた。

<div style="page-break-before:always"></div>
<!-- 
###### 2020.5.1~

### 新人の教育担当

* 担当プロジェクトと並行してオンラインで10人程度の部署の新人を教育
* C#の開発教育を担当

###### 課題と私の行動

* 教育リーダーは開発経験がなかったため、テキスト選定やフレームワークの選定が現場と乖離してしまう可能性があった。
  * 教育リーダーと話し合い、現場とのズレがないようテキストとフレームワークの選定を行った。
* コロナ下でオンラインでの教育になったため、新人がマンネリする可能性があった。
  * 教育はプロジェクトに配属されるまではテキストを読みながら全員に掲示板の作成をしてもらっていたが、途中で私個人の趣向でCLIのプログラムでじゃんけんゲームを作成するというようなちょっとした課題や
アルゴリズムについて調べて書いてもらうような課題も出してみた。
* ミーティングがただの進捗度報告会のようになっていた。
  * ただ報告会をしただけでは新人のためにはならないと考え、1人1人の進捗を聞いて報告をしてもらうだけのミーティングを辞め、自発的に質問をしてもらうよう、挙手制にし
発言が少ない新人に関してはこちらから聞いて疑問点や発見点等を聞きだすようにした。
  * 新人教育の後、出社するようになった際、新人からは親切な教育で親近感が湧いていたと言われた。 -->
<!-- 
###### 2019~2020.3.31

### レガシーシステムのVBからVB.NETへの更改プロジェクト(VB.NET)

10人(パートナー社員を含む)のプロパー要員として

###### 私がやったこと

* 機械メーカーのVB6.0で開発されたレガシーシステムをVB.NETに移植
* 詳細設計書をVB.NET用に刷新
* IDE(VS2008)による自動マイグレーションでは互換性がない関数が上手く移植されていなかったので、ソースコードを追って開発者で修正していた。
  * 私はif文の論理演算子がエラーは発生していないが、全く違う条件処理になっていたことに気づいたり、文字列操作の処理結果が違うものになっているような関数の処理内容を注意深くデバッグし、発見したことをミーティングで提示して、横展開した。 -->

###### 2018.6.1~2019

### メーカー企業の生産管理ERP開発プロジェクト

オンプレテストサーバー、メールサーバーのインフラ構築。
C#での開発、単体テスト、結合テスト、リリース。

###### どういうシステムか

* 機械部品を検索して画面に表示する生産管理システムを開発。
* 来賓・来客の駐車場の予約、宿泊施設の指定、訪問する建物、滞在日数の登録等、または社内承認フローのシステムを開発。
* 人事管理用のメール送信機能を開発。

###### やったこと

* 単体、結合テスト、本番用に環境変数の整備、ビルド、リリース
  * 本番リリースは失敗できない緊張下でconfigファイルを充分に区別したうえで私の手でビルド成果物、configファイルをリリースした。
* Webサーバー、DBサーバー、メールサーバーのインフラを構築
* C#での開発
  * 生産管理システムの機能追加、修正を行い、単体テストを実施。
  * 生産管理システムの画面設計書を元に、メール送信機能の追加仕様を実装
* 詳細・基本設計書の仕様追加時の修正
* 単体テスト、結合テストの実施
  * テストケースを作成し、テストを実施。バグが発生した場合は、バグを修正し、再度テストを実施。
* システムの使用方法をPDF化

## 個人制作物

<!-- ### [Ocha🌿](<http://ocha.onrender.com>) -->
### <a href="<http://ocha.onrender.com>" target="_blank" rel="noopener noreferrer">Ocha🌿</a> (プロフィールジェネレーターサイト)
<!-- 
<a href="<http://ocha.onrender.com/u/nao>" target="_blank" rel="noopener noreferrer">わたしのプロフィールはこちら</a> -->
<!-- ![ocha_profile](<https://user-images.githubusercontent.com/46675984/270082722-84c31972-b542-4eff-9c39-b8fe0e848f07.png>) -->

###### 使用した技術

PHP / PostgreSQL / Apache / Bootstrap / Docker / MySQL

### イラスト用ポートフォリオサイト

##### <a href="<https://demohouse-react.netlify.app/>" target="_blank" rel="noopener noreferrer">デモ版URL</a>
<!-- ![demo](<https://github.com/naonao0001777/egg-react-demo/assets/46675984/bd624375-a10f-4b84-a1cb-343098433cae>) -->
イラストを投稿できるポートフォリオサイトです。Reactの学習を兼ねて作成しました。

###### 使用した技術

React / Bulma / Node.js

### ポートフォリオサイト

##### <a href="<http://naopem.com/>" target="_blank" rel="noopener noreferrer"><http://naopem.com/></a>
<!-- ![demo](<https://github.com/naonao0001777/egg-react-demo/assets/46675984/bd624375-a10f-4b84-a1cb-343098433cae>) -->

<div style="page-break-before:always"></div>

### 動画コメントを取得するツールサイト

YoutubeAPIを使用した何かを作りたいと思い、コメントを取得してくるサイトを作ってみました。
<!-- ![YouTubeAPIを使用した代表作](<https://user-images.githubusercontent.com/46675984/124333733-13650480-dbd0-11eb-8a29-b30718afd31f.gif>)   -->

###### 使用した技術

C# / Azure / jQuery / Bootstrap / YouTube API  

### 英和和英同時翻訳LINEボット

すぐに翻訳できるサイトかアプリが欲しいと思い、LINEボットを構築。

###### 使用した技術

GAS / LINE messaging API

## スキル

#### プログラミング

* C#
  * データベースと連携したWebアプリの一部機能を開発することができます。
  * 個人開発でもAPIを用いてWebアプリを開発することができます。
* Java
  * ソースコードを修正することができます。
  * 機能追加までは実務上やっていませんが、やることはできます。
* PHP
  * データベースを用いてWebアプリを個人開発することができます。
* Ruby
  * Ruby on Railsを用いてWebアプリを開発、修正することができます。

#### データベース

* MySQL
  * データベースを構築し、CRUD処理を行うことができます。
* SQLServer
  * データベースを構築し、CRUD処理を行うことができます。
* PostgreSQL
  * データベースを構築し、CRUD処理を行うことができます。z

#### その他

* Docker
  * Dockerfile、yamlを書いて個人開発用の環境を構築、DockerHubにプッシュすることができます。
* Bash
  * シェルスクリプトを用いて、Gitブランチを統合、ビルド、リリースまでのインフラを自動化することができます。
* AWS
  * EC2、S3、RDSを用いてWebアプリのインフラを構築することができます。

<div style="page-break-before:always"></div>

## これからやりたいこと

言語はGo/Python/Ruby/C#でのバックエンド開発。  
分散型アーキテクチャを用いた開発。