# 求人検索システムの改善・運用保守
## 概要
障害者向け求人検索サイトの運用保守と要望対応、改善
## 担当
フロントエンド・バックエンド問わず基本設計から〜リリースまで一貫して1人で担当
## プロジェクト規模
全2名(PM1名,SE1名)
## 使用技術
PHP, MySQL, HTML, CSS, jQuery, AWS
## 参画経緯
1人の方が社内の他業務と兼務して運用保守されており、追加開発はほぼ行わず不具合には対応する程度だった。
フロントエンド / バックエンドの開発経験があり指示がなくても自ら効率化・改善を提案実施できると
弊社社長からの推薦によって参画が決定し、開発を一手に担うこととなった。
## 実績
運用スタッフからの掲載文や画像の変更に対して、対応箇所の精査から改修そしてリリースまで1人で担当している。
定期作業として、複数の外部システムからのデータ取り込みとその反映を実施している。
## 課題
```
1. 外部システムから求職者情報は連携できているが、求人情報の連携が実装できておらず手動登録をしている状態だった。
外部システムの求人情報を当システムの求人情報として取り込みたい。"
```
### 取り組み
当システムの求職者登録API呼び出し処理と外部システムのAPIドキュメントをもとに、求人情報取得APIの呼び出しからデータ登録までを実装した。
### 工夫点
まず必須パラメータのみで実データを数件取得してレスポンス形式を把握し、当システムのどのテーブル・どのカラムに当てはめるべきかマッピング表を作成した。
足りない要素についてはカスタマイズ項目があるかなどを外部システム運用者に確認、当システムでの表示フォーマットの要望なども合わせてヒアリングした。
外部システムのユニークIDを保持するカラムを新設し、照合して新規登録 / 更新 / 削除の処理を分岐した。
SQL負荷軽減のため1件ずつSQLを発行するのではなく、それぞれの対象リストを形成し一括SQLを作成した。
新規登録 / 更新 / 削除の一括操作について、テーブルや対象カラムを変更し他処理でも利用できる共通メソッドとして実装した。
SQLの最大文字数超過を防止するため、各カラムの最大文字数をもとに一括操作可能件数を定義、制御を追加した。
取り込み実行完了後、取り込み総数、新規登録 / 更新 / 削除それぞれの実行件数を画面に表示した。"
### 成果
平均約1500件の求人情報について、1分弱で取り込みが完了できるようになった。
```
2. GitHubへのマージ後に自動デプロイを構築していたが、現在エラーが発生してしまいデプロイが実行されない。
エラー原因の特定・解消 または 新規の自動デプロイを構築して欲しい。
```
### 取り組み
将来を考えた上で専門外が安易に構築するのは危ういと考えインフラエンジニアを参画させたいという提案し、自社の技術に信頼がおけるインフラエンジニアを斡旋、参画につなげた。
### 工夫点
依頼があった際、まずはEC2など調べながら自分で対応できるかを確認した。
今後企業として拡大の計画がありシステムもより本格的に運用されていること・私自身がインフラ経験が浅く現状では調べながらの構築しかできないことから、将来的にトラブルが発生しインフラ再構築になるリスクなどを考えると、本格的に専門知識のあるインフラエンジニアに構築を依頼した方が良いと判断した。
単にインフラエンジニアの参画を提案するだけでなく、自社内で技術力・コミュニケーション力などを考慮して対応ができるインフラエンジニアを抜粋し、自社営業などに該当エンジニアの稼働を確保できるかなどを確認した。
参画したインフラエンジニアに現状と要望を伝え、構築にあたりアプリ側でのエラーが発生した際はエラー解消に協力した。
### 成果
デプロイエラーが解消がされ自動デプロイが動くようになった。
インフラエンジニアが参画したことにより、インスタンスの最適化、各種環境の構築など本格的なインフラ整備も始動することになった。
自社からの増員を斡旋し、自社営業にも貢献したと社内で大きく評価された。