Skip to content

Commit

Permalink
Update: Create first resume
Browse files Browse the repository at this point in the history
  • Loading branch information
Kotaro666-dev committed Nov 11, 2022
1 parent 4acb635 commit 008e60c
Showing 1 changed file with 318 additions and 28 deletions.
346 changes: 318 additions & 28 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,338 @@
# 職務経歴書
# 保有スキル

## 基本情報
- 技術
- Flutterでのクロスプラットフォーム開発・見積もり・設計・保守/運用
- Androidネイティブでの新規開発
- Next.js / TypeScript でのフルスタック開発
- レガシーコードでの開発(Flutter1系/CodeIgniter2系)
- 複雑性の削減と保守性を意識したコーディング
- MVVM/MVCを使った開発
- 予定工数見積もり、基本/詳細設計
- ソフト
- 未知の技術に対するキャッチアップスピードとスキル
- 開発リーダーとしてのマネジメント業務経験
- 社外MTGでのクライアント折衝
- 社内での勉強会・輪読会開催のコミュニティ形成
- 小規模MTG(最大10名)でのファシリテーティング
- 1on1でのメンタリング(担当メンティー数: 3名)
- エンジニア採用業務(採用実績: 2名)

|key|value|
|---|---|
|氏名||
|生年月日||
|Twitter||
|Qiita||
|note||
|Zenn||
|SpeakerDeck||
# 技術スタック

---
## プログラミング言語

## 保有スキル
- Clang
- C++
- Dart
- Kotlin
- TypeScript
- PHP
- Golang
- Swift

-
## フレームワーク・その他

- Flutter
- Androidネイティブ
- Jetpack Compose
- CodeIgniter
- Redis
- MySQL/MariaDB
- Next.js
- React
- Docker

---
# 自己PR

## 技術スタック
- 技術に対する飽くなき好奇心を持って、自己研鑽することができます
- どんな未知の技術でも自己学習からキャッチアップして開発することができます
- 開発現場では、口頭/文章でのコミュニケーションと雑談を最も大切にします
- 「エンジニアこそエンジニアリング以外の業務もやるべき」をモットーに、ソフトスキルも意識して取り組みます
- 常にトレードオフを意識して、開発することができます
- 担当するサービスに対して、常に当事者意識を持って対応します

### 言語

-
# 求めている環境

### フレームワーク・その他
- ドキュメンテーションをしっかりと行っている、または推奨している
- 複数人が参加するとともに、フィードバックを活発に行うコードレビュー文化がある、または推奨している
- 技術に対する関心を持つ人が多い
- 社内外で活発に勉強会を行っている
- エンジニアのスキルアップをサポートするために、技術書購入支援制度がある
- 以下の開発現場に従事してみたいです
- Moblile: KotlinでのAndroidネイティブ開発
- Web: Golangでのバックエンド開発

-
# 興味・関心

---
- 低レイヤーから基礎的な知識を知りたいという興味があります
- どんな技術でも、内部構造を理解したいという関心が強いです
- 言語やフレームワークに対する強いこだわりはなく、常に新しい物事を学ぶことに楽しさを感じます

## 職務経歴詳細
# 参画プロジェクト一覧(2020/11 ~ 2022/11現在まで)

### A株式会社(2020/04〜現在
## ゴルフ動画配信サービス(Mobile/Web

-
ゴルフ動画配信サービスの受託開発、保守・運用に従事しました。
私が参画した当初は、サービス開始当初の背景により保守運用に多大な工数が発生したり、機能開発する度に新たに致命的な不具合が生まれてしまうという状態でした。
その原因は、初期開発時のシステム設計や外部サービスのドキュメントが不足していたために、過去の担当者の引き継ぎが十分に行われていない環境で開発が続いていたからです。

### B株式会社(2015/04〜2020/03)
そのため、開発依頼の閑散期を利用してシステム設計や外部サービス連携している箇所のドキュメント作成を地道に進めていきました。
2022年3月に前任の開発リーダー退職を契機に私が開発リーダーを務めています。
開発リーダーになってからは、現在までに毎月リリースを行いましたが、それによる致命的な不具合の発生は0件です。

-
現在は、開発リーダー不在でも開発エンジニアのみで開発を円滑に進められるようにする、属人化を作らないために、権限移譲とメンバーの育成に注力しています。

## 業務外活動
### プロジェクト詳細

-
- 規模
- 5名(PjM :1, TL: 1, Engineers: 3)
- 期間
- 2020年11月 ~ 2021年2月
- 2021年6月 ~ 2021年11月
- 2022年3月 ~ 現在まで
- 使用技術
- Mobile: Flutter(ネイティブ連携あり)
- 状態管理手法: Redux, Provider
- Web: CodeIgniter, React, Docker, Redis, MariaDB
- インフラ: AWSサービス(EC2/AutoScaling/Amazon RDS)
- CI/CD: Jenkins
- アーキテクチャ: MVVM
- 業務内容
- 保守・運用
- 新機能開発
- プロジェクトマネジメント(開発課題の整理と進捗管理)
- クライアント折衝業務(MTGや日々のクライアントとのチャットによるやり取り含む)
- 要件定義書と画面設計書からの工数見積もり、基本設計、詳細設計
- システム適格性確認テスト仕様書の作成と運用改善
- サービス品質担保の最終的確認と責任の担保
- 手順書や方式設計などのドキュメントの改善と作成
- 参画メンバーの育成

## Flutter開発情報リファレンスのリニューアル

自社ドメインで管理しているFlutter開発情報リファレンスの既存情報内容を更新するとともに、新しい記事の追加執筆を行いました。
今回のFlutter開発情報リファレンスのリニューアルにより、自社サイト経由で以下の増加が狙いでした。

- モバイルアプリ開発の新規顧客獲得
- Flutterエンジニアポジションへの応募者

### プロジェクト詳細

- 規模
- 3名(PjM: 1, TL: 1, Engineer: 1)
- 期間
- 2020年12月 ~ 2021年1月
- 使用技術
- Jekyll
- 業務内容
- 同時期に入社した新人Flutterエンジニアと協働しつつ、既存情報内容の更新作業とともに、新しい記事の執筆作業
- 必要課題の洗い出しと起票、課題分配、スケジュール管理などのプロジェクト管理業務
- 執筆内容のレビューとフィードバック、文章の改訂(一緒に取り組んだ同僚の母語が日本語ではないため)

## マッチングアプリ(Mobile)

TinderやTappleに類似したマッチングアプリの準委任契約による開発と、保守・運用を行いました。
参画期間中では、既存アプリの改善を行う保守・運用と既存ユーザーからの課金促進する新機能開発、そしてFlutter2へのバージョンアップ作業が主となりました。

保守・運用開発では別会社で開発しているAPIサーバとの連携が重要であり、文章やVCでのコミュニケーションを通じて円滑な開発を行えるように注力しました。
Flutter2バージョンアップ後に、サービス管理側の内製開発意向でプロジェクトが終了しました。

本案件を通じて、小規模な機能開発時に開発リーダーを担当させてもらったことで、今後の別プロジェクトでの開発リーダーとしての基礎を作ることができました。

### プロジェクト詳細

- 規模
- 4名(TL: 1, Engineers: 3)
- 期間
- 2021年3月~2021年11月
- 使用技術
- Flutter
- 状態管理手法: Redux, Provider
- アーキテクチャ
- MVVM
- 業務内容
- 保守・運用
- 新機能開発
- 発注者の要求からの要件定義
- 詳細設計
- Flutter2へのバージョンアップ作業

## 金融サービス(Mobile)

大手国内銀行と大手小売店がコラボレーションした金融サービスのAndroidネイティブ開発を行いました。
本プロジェクトで初めてAndroidネイティブ開発を行いましたが、プライベート時間を使ってキャッチアップして開発を進行しました。

プロジェクト初期の段階で、詳細設計を担当していたAndroidネイティブ開発予定者が退職したために、Android側は私一人で開発していく形となりました。
上流工程での考慮漏れや度重なる仕様変更、用意されたSDKの問題がある等で典型的なウォーターフォール開発のデスマーチ化しましたが、最終的に納品まで辿り着きました。

開発者の途中離脱や遅延で疲弊したものの、今回の案件を通じてAndroidネイティブ開発およびKotlinに触れる貴重な経験を積めました。
また、未知の技術スタックの開発でもキャッチアップすれば対応できる自信が持てるようになりました。

### プロジェクト詳細

- 規模
- 4名(PjM兼TL: 1, iOS: 2, Android: 1)
- 期間
- 2021年12月 ~ 2022年2月
- 使用技術
- Kotlin, Data Binding, Kotlin Coroutines
- アーキテクチャ: MVVM + Coordinator + Repository pattern
- 業務内容
- クライアント折衝業務(MTGや日々のクライアントとのチャットによるやり取り含む)
- UIはXML、ロジックはKotlinで、マルチActivity設計による開発
- 外部ベンダーが作成した金融サービス接続のSDK連携
- プッシュ通知連携
- FirebaseAnalytics連携


## 業務効率化サービス(Web)

既存顧客の要望から新たに開発した業務効率化サービスでは、私が開発リーダーとして開発全体のマネジメントとバックエンド開発を行いました。
開発リーダーとしてマネジメントと全てのコードレビューをこなしながら、バックエンド開発も進行していきました。

参画メンバーの技術力・経験が未熟な状態でしたが、メンバーの成長を期待して「任せる」こと意識してプロジェクトを進行させました。
最終的には、期待されている予算と予定工数に均衡した成果を出すことができなかったものの、メンバーの育成と期限通りに納品することを達成できました。

今回の経験で、開発リーダーとしてメンバーの育成のためにタスクの移譲をしていく重要性を学びました。

### プロジェクト詳細

- 規模
- 6名(PjM 1, TL兼BackEnd: 1, FrontEnd: 2, BackEnd: 1, インフラ: 1)
- 期間
- 2022年6月 ~ 2022年9月
- 使用技術
- FrontEnd: Next.js, React, TypeScript, TailWindCSS
- BackEnd: Next.js, TypeScript, Prisma, MariaDB
- インフラ: Docker, AWSサービス(EC2/Amazon S3)
- アーキテクチャ: レイヤードアーキテクチャ(Controller + Service + Repository Pettern)
- 業務内容
- 要件定義書からの技術選定と基本設計、工数見積もり
- 開発リーダーとして開発全体のマネジメント
- プロジェクト初期の導入
- API仕様書の設計と開発
- DB設計と開発
- GoogleAPIとの連携
- システム適格性確認テスト仕様書の作成
- サービス品質担保の最終的確認と責任の担保
- サービスの納品作業


## クラウド配信プラットフォーム(Mobile)

iOS端末またはカメラ機器で撮影した映像をクラウドプラットフォームを経由して、登録ユーザーにライブ配信を行ったり、過去の映像を再生する機能を提供するサービスです。
現在は、前任者が作成した既存アプリからの機能追加開発を行っています。

今後継続したサービス開発やAndroid端末でのサービス提供も期待されていることから、ネイティブ側で実装内容のドキュメントを行い、継続的開発が行いやすい環境を整えることを目標としています。

### プロジェクト詳細

- 規模
- 4名(PjM 1, Mobile: 2, Web: 2)
- 期間
- 2022年10月 ~ 現在
- 使用技術
- Flutter, Swift
- 使用状態管理: Riverpod, Flutter hooks
- 業務内容
- 静的UI画面の作成
- 外部APIとの連携と動的繋ぎこみ
- Flutter側とiOSネイティブ側との連携
- iPhone内蔵カメラへの命令処理実装と繋ぎ込み

# エンジニアとしてのバックボーン

## 42Tokyo

プログラミングの基礎は [42Tokyo](https://42tokyo.jp/) で学びました。
2020年1月の入学試験Piscineに合格し、2020年6月に入学した1期生の一人です。

### 学んだこと

- Libft
- 標準Cライブラリ関数作成による自ライブラリを作成しました
- 車輪の大発明をすることで、必要な便利関数は自前で作って対応することを学びました
- [提出コード](https://github.com/Kotaro666-dev/libft)
- network
- TCPやUDP等のプロトコルやサブネットマスクについて学びました
- get_next_line
- 渡されたファイルを1行ずつ読み込み、渡した引数に格納する関数を作成しました
- static変数の役割や要件を理解してコードに落とし込むことができるようになりました
- [提出コード](https://github.com/Kotaro666-dev/get_next_line/tree/master/2nd_try)
- ft_printf
- 7つのファイルフォーマット、フィールド幅と精度、複数のオプションに対応したprintfの再実装課題です。
- 機能や役割に応じたファイルと関数分割、そしてリーダビリティを意識したコードを書くように心がけました。
- [提出コード](https://github.com/Kotaro666-dev/ft_printf/tree/master/2nd_try)
- ft_server
- 一つのDockerコンテナ内に、LEMP環境を作り、WordPressを立ち上げる
- Dockerによる仮想化技術とLEMP環境設定方法を学びました
- [提出コード](https://github.com/Kotaro666-dev/ft_server)
- cub3d
- レイキャスティング技法を使って3D空間で遊べるゲームを作る
- 詳細は[こちらのNote](https://note.com/kkamashi/n/nc8e97ca96284)でまとめました。
- [提出コード](https://github.com/Kotaro666-dev/team_cub3D)
- libasm
- 標準Cライブラリ関数の一部をアセンブリ言語で実装する
- 使用するメモリとレジスタの概要に触れることができました
- [提出コード](https://github.com/Kotaro666-dev/libasm)
- push_swap
- 2つのスタックを操作して、渡されたデータをソートする
- 極力少ない回数でソートができるようにアルゴリズムを工夫しました
- [提出コード](https://github.com/Kotaro666-dev/push_swap)
- minishell
- 機能が制限されたbashを再実装する
- Bashの仕様、構文解析やプロセスを学ぶことができました
- [提出コード](https://github.com/Kotaro666-dev/minishell)
- inception
- docker-composeを使って、LEMP環境上にWordpressを立ち上げる
- 42Tokyoで最初に課題をクリアした称号をゲットしました
- [提出コード](https://github.com/Kotaro666-dev/inception)
- pipex
- パイプラインを再実装しました
- [提出コード](https://github.com/Kotaro666-dev/pipex)
- philosopher
- 並行/並列処理(Pthreads)を駆使して、食事する哲学者の問題を解きました
- 本課題を通じて、並行/並列処理の基礎的な使い方を学習できました
- [提出コード](https://github.com/Kotaro666-dev/philosophers)
- cpp
- C++の基礎を学ぶ課題群です
- C++でクラスを作るところまで進めました
- [提出コード](https://github.com/Kotaro666-dev/cpp_module)

# 技術投稿

- Zenn
- 2022年11月現在 10 記事
- https://zenn.dev/kotaro666
- Note
- 2022年11月現在 5 記事
- https://note.com/kkamashi
- Stack Overflow
- 2022年11月現在 31 reputations
- https://stackoverflow.com/users/12992716/kotaro666

# 勉強会での登壇資料

- Flutter Redux の内部構造を考える(2021/3)
- https://speakerdeck.com/kotaro666/flutter-redux-nonei-bu-gou-zao-wokao-eru
- パイプラインによるプロセス間通信を理解する(2022/3)
- https://speakerdeck.com/kotaro666/paipurainniyorupurosesujian-tong-xin-woli-jie-suru

# 影響を受けた文献資料

## 技術

- 「リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック」
- 「UNIXという考え方―その設計思想と哲学」
- 「Clean Architecture 達人に学ぶソフトウェアの構造と設計」
- 「A Philosophy of Software Design」
- 「ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ」

## ソフト

- 「マネジャーの最も大切な仕事――95%の人が見過ごす」
- 「サーバント・リーダー 「権力」ではない。「権威」を求めよ」
- 「HIGH OUTPUT MANAGEMENT(ハイアウトプット マネジメント) 人を育て、成果を最大にするマネジメント」
- 「ソフトウェア見積り 人月の暗黙知を解き明かす」
- 「エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング」

0 comments on commit 008e60c

Please sign in to comment.