ID:48971さん

3年後の目標や野望


海外でエンジニアとして活躍できるだけの実力、経験、コネクションを得たい。

海外でエンジニアをしながら子育てをしたいため。

年収評価シート

2019年/1年以内

携帯電話端末販売サービス保守開発プロジェクト

# 概要 大手携帯電話会社の端末購入Webサービス開発プロジェクト。 リリース直後から参画し、保守と第2フェーズへ向けた開発を担当。 # 規模 プロジェクト人数: 10 - 15人 案件単位チーム人数: 2 - 10人 # 保守内容詳細 仕様変更や不具合修正などの保守案件では、詳細設計、フロントエンド/バックエンド開発、単体/結合試験を担当しました。 ## 使用技術 使用した技術は下記の通りです。 - フロントエンド開発言語:JavaScript(IE対応を考慮) - フロントエンド開発ライブラリ:jQuery - バックエンド開発言語:Java SE 6 - バックエンド開発フレームワーク:OW+ - データベース:Oracle 11g ## 成果 ### フロントエンドの改善 #### 課題 参画当時、JavaScriptの知識を持つメンバーが不在であったため、フロントエンドのソースコードが複雑かつ難読で、修正が1行で済むようなエラー調査にも半日以上を要するほど保守性が低い状態でした。 #### 対策 私はJavaScriptを使用した個人的な開発の経験が3年ほどあったので、日次タスクの傍らこの問題を下記のように改善しました。 - jQueryでハードコーディングされたHTML要素参照ロジックを共通関数化 - 画面のセクションごとに同様の操作が必要な部分が多くあったため、セクションのひな型となるprototype(IE対応が要件に含まれていたためclassは使用不可でした)と各セクション用のオブジェクトを作成 - 類似する関数を共通化し、コールバックを使用することで汎用化 - thisや関数の巻き上げなどJavaScript独特のロジックが必要な部分を隠蔽 - JavaScriptでの記述に適したエディタとしてVisual Studio Codeの導入を交渉(それ以前はEclipseを使用) #### 結果 フロントエンドで発生した大半の障害について、調査から修正まで2~3時間以内に完了するようになり、フロントエンドの修正方針について伝達しやすくなりました。 ### テスト工程の改善 #### 課題 チームメンバーの平均的なテスト打鍵実施速度が1日当たり4~6件でしたが、非効率的な部分が多く見受けられました。 #### 対策 - エビデンス添付用Excelシートのテンプレート作成 - Excelでのショートカット活用 - チームリーダーと相談の上、冗長なエビデンスの簡略化 - エビデンス生成用のログ成形ツール(JavaScriptを使用した簡易Webアプリケーション)の自作 - エビデンス生成用の画面表示項目チェックツール(JavaScriptを使用した簡易ツール)の自作 - テストの趣旨・確認項目の記憶 #### 結果 私個人として、1日のテスト実施件数が12~20件にまで増えました。 この実績を基に、テスト実施手順書の見直しを提案し、不要な手順の削除と自作ツールの共有を行った結果、1日当たりに実施可能なテスト件数のチーム全体平均が8~10件にまで増加しました。 # 開発内容詳細 初期リリース時に保留となっていたクレジットカード決済機能・画面の開発チームのサブリーダーを担当しました。 決済用ツールとしてGMO Payment Gatewayを使用し、その導入方法を資料化、具体的な導入方針の定義に主体的に関わり、フロント/バックエンドにおける基本・詳細設計、開発、単体テストまでを担当しました。 ## 使用技術 上記保守案件で使用した技術に加えてGMO Payment Gatewayから提供されている下記APIを利用しました。 - クレジットカード情報トークン発行API(JavaScript用) - クレジットカード利用可能状況確認API(Java用) - クレジットカード利用者ブラックリスト確認API(Java用) - クレジットカード与信枠確認API(Java用) - クレジットカード決済実行API(Java用) ## 成果 ### プロジェクトの推進補助 #### 課題 参画した段階ではGMO Payment GatewayをJavaを使用して導入するという基本要件以外何も決まっていない状態のまま、案件が1年以上凍結していました。 #### 対策 下記内容を積極的に行うことで円滑なプロジェクト進行に貢献しました。 - ツール概要の図式化 - ツール詳細の理解と記憶 - 数十件におよぶ課題と解決方針の提示、解決状況の明確化 - 顧客(SI社員)に対する簡潔かつ十分な説明と応答 #### 結果 参画当時の私はエンジニア歴が半年足らずでしたが、案件に対する深い理解や姿勢が評価され、サブリーダーのポジションに任命されました。 また、ベンダーへ提示した複数の資料は、ベンダーとエンドユーザ間での打ち合わせにも利用され、要件定義を進めるためのツールとして貢献しました。 その1か月後には要件も固まり、半年後のリリースに向けてプロジェクトを進めて行くことができました。 ### 決済API呼出処理の実装 #### 課題 クレジットカード決済を導入するにあたって、既存の通信料合算決済時との処理分岐や、複数の外部APIの呼出を考慮する必要があった。 #### 対策 既存の決済方法との分岐を効率的に行うため、まず共通化できる処理を汎用メソッドとして分離。 加えて、各画面遷移毎に用意していたデータ保持用DTOクラスの親クラスとして共通クラスを作成することでデータの持ち回りを容易にしました。 APIの呼出は、クレジットカードのセキュリティシステムに応じて呼出順序や回数に分岐が生じるため、APIごとの処理を汎用化し、保守性を高めました。 #### 結果 データ保持用の共通DTOを作成した二次作用として、既存画面のデータ共有が簡略化されました。 また、APIごとにメソッドを分離したことで単体テストが容易になり、テスト工数が減りました。

2020年/1年以内

企業・業界情報の集約・分析システム保守開発プロジェクト

# 概要 会員制企業・業界分析情報Webサービスの保守開発プロジェクト、並びに企業・業界情報プラットフォーム開発プロジェクトを並行して担当。 # 規模 情報サービス保守開発プロジェクト人数: 2人 情報プラットフォーム開発プロジェクト人数: 9人 # Webサービス保守開発プロジェクト詳細 日々のエラー調査と修正、並びに仕様変更時の設計・実装・テスト、特にJavaを使用したAWS Lambda向けのHTTP APIの設計・実装を担当しておりました。 実装に当たって使用した技術は下記の通りです。 - API全般開発言語:Java SE 8 - API全般開発フレームワーク:Spring Framework - データベース:Oracle 19c - Lambda APIを介したHTTPリクエスト/レスポンスの授受:T2 Framework - JavaからのDBアクセス:Doma 各APIのおおまかな処理フローは下記の通りです。 1. フロント側からリクエストを受け取る 2. 受け取ったリクエストを基に、外部APIやデータベースから必要なデータ(顧客情報、ニュース・記事内容、企業・業界情報、その他分析内容)を収集 3. 収集したデータから要求されているデータを生成 4. フロント側にレスポンスを送り返す 当プロジェクトには設計書が存在せず、実装者によっては可読性が著しく低い部分もあり、保守性が低い状態でした。 そこで、私が実装する際には英文として意味の通る命名や1メソッド1機能での実装、機能の汎用化を心がけ、タスクの余裕があるときは既存の難読な部分についても同様の修正を行っていきました。 その成果としてモジュールの可読性が高まっただけでなく、私自身のシステムに対する理解も深まったこともあり、参画から2か月後にはすべての実装タスク(3~7人日見積)を1人日以内に完了することができるようになりました。 # プラットフォーム開発プロジェクト詳細 複数のWebサービスで保持している情報を統合したプラットフォーム開発プロジェクトにおいて、データベース更新用のバッチ作成を担当しておりました。 開発環境にはWindows、テスト・本番環境にはLinuxを使用し、実際に使用した技術は下記の通りです。 - Linuxからのバッチ実行用シェル:Shell Script - バッチ開発全般:Java SE 8 - データベース:MySQL - JavaからのDBアクセス:Doma 2 各バッチの大まかな処理フローは下記の通りです。 1. ShellからJavaを実行 2. データベースからSQLによって必要なデータを収集 3. 収集したデータをJavaで加工 4. 加工データを注入したSQLを実行し、テーブルを更新 各バッチの処理内容は設計済みである一方、テーブル設計が半分以上未完の状態から参画したため、テーブルのカラム構成を仮定して実装を行いました。 そのためテーブル設計の完了・修正のたびに実装を修正する必要がありましたが、複数のバッチを並行して作成することで作業の滞りを防ぎ、それぞれのコーディングルールを極力統一することで要修正箇所の発見を容易にするよう心掛けました。

マネージメント能力

自身が設計を担当する開発チームの新規参画者
環境構築の補助と要件の説明、タスクの分担を行い、チームの一員としてプロジェクトに参加できる状態
まず環境構築については自身が苦労した部分や困惑した部分を鑑み、マニュアルの最新化を行いました。 マニュアルは数年間更新されておらず、OSのバージョンさえも古い状態でほとんど全ての項目で多少の差異があったので、最近環境構築を行った方の意見を参考にしつつ、より詳細なマニュアル作りを心掛けました。 加えて、積極的なコミュニケーションが苦手な方も数名居たので、こちらから数時間毎に進捗確認や助言を行うように心掛けました。 この案件は外部のAPIに依存する部分が大半を占めており、システムの詳細な仕様を理解するのが比較的困難なものでした。そこで、全メンバーへは図式化した処理フローを基に概要を説明するに留め、各処理の詳細については個別に説明することで、各メンバーが把握すべき情報量を最低限に抑えました。 タスクの分担に当たっては、チームリーダーが並行して担当していたタスクが多かったため、設計フェーズの遅れが想定されていました。こちらのフォローが出来るようにサブリーダーの私と経験豊富で優秀な新メンバーの一人には長期スパンのタスクは振らずに柔軟なタスク移動が出来るよう工夫しました。結果的として、想定どおりリーダーの設計に若干の遅れが発生しましたが、上記2名でフォローに当たったことでチーム全体のタスク停滞を防ぐことが出来ました。

アピール項目


アウトプット

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

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

- 機械学習 - インフラ開発

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

未入力です

キャラクター

直近で一番やりたいこと
サービスを作りたい
好きなスタイル
好きな規模
水とプログラミングどっちが大事?
自信を持って人より秀でていると言える点
学習能力 / プレゼン力 / 分析力
スキルのタイプ
得意なフェーズ
会社を選ぶ一番の基準
一緒に働く人
やりたくない分野
SI / 金融
その他の特徴
使用言語にはこだわらない / レガシーな環境を改善できる / 新しい技術はとりあえず試す / 3年以内には海外で働きたい / OSSのコミッターである
その他のやりたいこと・やりたくないこと
未入力です

やりたい事

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

基本プロフィール

年齢
今年で30代前半
好きな Text Editor
Visual Studio Code
希望勤務地
東京都 / 大阪府 / リモート勤務
集まる必要性がない場合は基本リモートが許可される環境が必要
希望年収
未入力
転職ドラフトに参加して
企業から指名を受け取ろう!
会員登録をして転職ドラフトに参加すると、参加企業から年収付きの指名を受け取ることができるようになります。
会員登録する
ご意見箱

要望、不具合報告、使いづらい点や感想など、お気軽にお寄せください。
いただいたご意見は、今後のサービス向上に活用させていただきます。

なお、このフォームは受付専用のため、返信を行っておりません。
返信を希望する場合はお問い合わせよりご連絡ください。

  • {{error}}
SIGN UPSIGN IN


転職ドラフトを友人や同僚に薦める可能性はどのくらいありますか?