職務経歴書
基本情報
| 項目名 |
内容 |
| 生年月 |
1993年4月 |
| 居住地 |
東京都 |
| 資格 |
LPICレベル2、Oracle Database 12c Silver |
リンク
スキル
- TypeScript
- Node
- Go
- Nuxt(Vue)
- Next(React)
- GraphQL
- Terraform
- AWS
- CircleCI
- GitHubActions
バリューを発揮しやすい業務
- Node、Goでのサーバーサイド開発
- Nuxt(Vue)、Next(React)でのフロントエンド開発
- AWS、Terraformインフラ環境構築
- CI/CD周り
- 改善系業務全般
職務経歴
目次
【2022/7~】 B向け UGC活用SaaSサービス
B向けのUGC SaaSサービスの新規開発を担当しています。
目的、背景
本体サービスで溜めたUGCをB向けに提供することで売上に貢献しました。
規模感、チーム構成
- 契約数を順調に伸ばし、月4~5社(40万〜)程度まで
- ビジネス側: 3、エンジニア: 3、デザイナー: 1
担当した役割
- サービスの技術責任者を担当
- 開発スケジュール管理
- 運用フローの整理
- メンバー管理・サポート
- 顧客MTG・導入説明・導入サポート
- 新規サービス要件定義・サービス仕様・設計
- アラート対応
- バックエンドAPI新規開発
- バックエンド インフラ設計・構築
- バッチ処理の設計・構築
- CI/CD環境構築
使用技術や開発環境等
- TypeScript
- Node/Fastify
- Zod
- OpenAPI3/Swagger
- Kysely
- Vite
- AWS/Aurora/CloudFront Function/Lambda/ECS(Fargate)
- Serverless Framework
- GitHubActions
- Terraform
取り組んだ課題
どんな課題だったのか
- 事業部として売上を上げていくこと
- 限られたリソースの中での機能の開発
- ビジネスインパクでの機能開発の優先度設計
- 顧客ビジネスの売上に直結できるUGC提供設計
技術的なアプローチや工夫した点
- 新規サービス開発におけるビジネス側の要件からの要件詰め、サービス仕様・設計、技術的な実現方法などを検討
- 開発タスクとして落とし込んだ物をメンバーへの割り振り、スケジュールを立てて実施
- ビジネス側での顧客提供の開始に合わせたサービスリリース、スケジュール管理
- サービス収益モデル、UGC利用数の集計などで発生した技術的な課題、特にクラウドに仕様に関連する部分は、AWS SAと連携しつつ、検証を行い、技術的な課題をクリア
- TypeScript、Fastify、Zod、OpenAPIなどを用いてコードファーストなAPIを作成し、型でのバリデーション、OpenAPI仕様書の自動生成などを用いて、型安全や保守性も高いAPIを開発
- CloudFront、キャッシュポリシーなどを適切に設定することで、サーバーの負荷軽減や、CloudFront Functionsでのロギング、集計の設計・構築を実施
- Serverless Frameworkを用いて、Lambda、Event Bridge、CloudWatch Logs、S3などでの集計処理バッチや、レポート生成の処理を作成
- サービスに必要なインフラ設計・構築を担当し、再利用性、自動化を考慮して、Terraformでのインフラのコード化でAWS環境を構築
取り組みの成果
- サービスリリースの遅れなどはなく、事前に設定した利用開始日から顧客へサービス提供が可能となりました
- 事業部の売上へ貢献することができました
- サービスリリース後のトラブル・障害などなく運用できていました
【2021/10~】 コスメ・化粧品クチコミサービス(バックエンド)
コスメ・化粧品クチコミサービスのバックエンド開発、改修を行っています。
目的、背景
コスメの比較・高品質クチコミサービスを運用しています。
基本的には、ブランド様からの広告、広告商品で成り立つビジネスモデルとなります。
規模感、チーム構成
- (ビジ系) 営業系: 6、SNS・ユーザー活性化系: 5、コンテンツ系: 5、運用チーム: 5
- (開発系) PM: 1、フロントエンド: 4、バックエンド: 3、iOS: 2、Android: 2、デザイナー: 1、データ分析: 2
担当した役割
- サービス参画当初はフロントエンドを担当
- サービスのバックエンド、インフラを担当
- GraphQL API開発
- DB設計・DB変更作業
- 複数バッチ(通知バッチ、外部連携バッチ、クチコミ等のユーザ投稿の監視項目の連携バッチ、etc..)の新規開発・改修
- 管理画面の新規機能開発・改修
- ElasticSearchへのインデクシング・検索API
- インフラ設計・構築
- インフラ環境のアップグレード、EOL対応
使用技術や開発環境等
- GraphQL(スキーマファースト)
- Node/Koa
- Knex
- GraphQL
- BlueBird
- ElasticSearch: 商品・クチコミ・ブランド・ユーザー検索
- ElastiCache(Redis): クエリ・コンテンツキャッシュ
- AWS/Aurora/CloudFront/CloudFront Function/Lambda/LambdaEdge/SQS/ECS(Fargate)
- AWS SAM
- Cognito
- ServerLessFramework
- Terraform
- GitHubActions
- Datadog
取り組んだ課題
どんな課題だったのか
- プラットフォーム事業としての成長
- コスメクチコミプラットフォームとしてのブランド様からの評価
- アットコスメなど既存のプラットフォームのリプレイス
- 高品質なクチコミ、リアルなクチコミ、徹底比較可能なクチコミプラットフォームとしての成長
- クチコミ投稿数の強化、クチコミ閲覧数の強化
技術的なアプローチや工夫した点
- GraphQLバックエンドAPI開発
GraphQLでバックエンドAPI開発を実施し、GraphQLの特性を活かした型共有、スキーマドキュメントを通して、フロントエンド、アプリ側との効率的な開発を実現しました。
- バックエンドAPI開発 GraphQL DataLoader
GraphQLバックエンド開発で発生するN+1には、DataLoaderを用いて対処しました。
- バックエンドAPI開発 パフォーマンス面
複雑になりがちなGraphQLバックエンド開発においては、ElastiCache(Redis)でクエリ・コンテンツキャッシュをしてパフォーマンス問題に対応しました。
- バックエンドAPI開発の工夫した点
バックエンド新規機能開発では、GraphQLでは利用のされ方次第で急にパフォーマンス劣化が起こるため、都度発行されるSQLや、DBのindexなど、パフォーマンス面に注意して、開発を進めました。
- バックエンドAPI開発 RDBとElasticSearch
バックエンド新規機能開発では、RDBとElasticSearchの両方を活用して作成するAPIも存在したため、両者の使い分けに注意して開発を進めました。
- インフラ設計・構築
バックエンド新規機能開発で必要となるインフラの設計・構築を担当し、再利用性、自動化を考慮して、Terraformでのインフラのコード化でAWS環境を構築しました。
- TerraformのバージョンUP対応
Terraformバージョン、AWS Providerバージョンが古いため、記述方法が古く、Terraformの記述で作成できないリソースがあるなどの問題がありました。
全体の記述を書き換えてバージョンUPすることが難しかったのですが、個々にバージョンUPができるような仕組みを作成し、
段階的にバージョンUPができるようになったため、Terraformの最新の記述や、AWSの新しいリソースのTerraform記述にも対応できるようになりました。
- CircleCI → GitHubActionsへの移行作業
CircleCIの廃止に伴い、GitHub Actionsへの移行を担当しました。
対応するレポジトリ数が20〜30程度と多くありましたが、期限内に完了できるように調整し進めることができました。
また今まで手動でのデプロイだったレポジトリをこのタイミングでGitHubActions化を行い、改善に取り組みました。
- GitHub Actions改善
移行当初は、GitHub Enterprise Serverの都合で使用できなかった機能があったため改善に取り組みました。
Actionの共通化、ビルドキャッシュ、並列実行などを取り入れ、更に便利にGitHub Actionsを使用できるように工夫しました。
またビルドキャッシュに関しては、社内プライベートクラウドを活用して、低価格で導入できる方法を採用し、改善に取り組みました。
- 不要Lambda、関連リソースの削除
テスト目的などで作成され、現状使用していない不要なLambdaと関連リソースを削除を対応しました。
効果が見えずらい施策ではありますが、コストの削減、オペミス防止などに一定の効果があったと思います。
削除の際に発生する影響調査にかかるコストからそのまま放置されているリソースが複数ありましたが、調査を実施し削除まで実施しました。
- レコメンド機能 バックエンドAPI、バッチの新規開発
レコメンド商品取得APIの追加、レコメンド対象の商品を抽出するバッチ処理の作成を担当しました。
バッチ処理では、SQSを用いて非同期でバッチ処理を実行することで、スケール可能な設計となっており、大量データを処理する工夫を取り入れました。
取り組みの成果
- ブランド様からのコスメクチコミプラットフォームとしての評価向上
- クチコミ投稿数が業界No1(キャンペーンの状況などにより変化があるが)
- クチコミ閲覧数の大幅増加
- インフラコスト削減
- デプロイの効率化
【2021/10~】 女性向けファッション・美容情報メディアサービス(バックエンド)
女性向けファッション・美容情報メディアサービスのバックエンド開発を行っています。
目的、背景
女性向けファッション・美容情報メディアサービスを運用しています。
基本的には、広告、広告商品で成り立つビジネスモデルとなります。
新規開発は、ほとんどなく、主に運用・改善、バグ改修などを行なっていました。
規模感、チーム構成
- (ビジ系) 営業系: 3、コンテンツ系: 5
- (開発系) PM: 1、フロントエンド: 2、バックエンド: 2、iOS: 2、Android: 2、デザイナー: 1、データ分析: 2
担当した役割
- サービスの技術責任者を担当
- 開発タスクの振り分け
- 各相談事項・エラーなどの問い合わせ対応
- 様々な社内サービスを利用しているため、各部署との技術的なやり取り
- アラート対応
- サービスのバックエンド、インフラを担当
- API追加開発・バッチ改修
- DB設計・DB変更作業
- 管理画面の新規機能追加・改修
- インフラ環境のアップグレード、EOL対応
- Amebaみんなの編集局で使用するバックエンド側のモジュール改修、バグ修正
使用技術や開発環境等
- Java8
- SpringFramework4.x、5.x
- SpringFrameworkBatch
- Maven、Gradle
- MyBaits
- Flyway
- Apollo Client
- RxJava
- Junit
- ElastiCache(Redis): クエリ・コンテンツキャッシュ
- AWS/Aurora/CloudFront/Lambda/LambdaEdge/ECS(Fargate)
- Terraform
- GitHubActions
取り組んだ課題
どんな課題だったのか
- 記事メディアとしてPVの維持
- 広告掲載があるため安定した運用
- 他メディア連携(Ameba、スマニュー、ラインニュース)からのアクセス負荷の際の安定運用
- 少ない頻度でしか発生しないが、その際のビジネス側の依頼に対応するための技術的な知見・把握能力
- 運用を継続していくための適時の改善施策
技術的なアプローチや工夫した点
- バックエンドAPI追加開発・改修
Java、SpringFrameworkでのバックエンドAPIの追加開発・改修を実施しました。
サービス自体の開発優先度が低く、開発環境自体が全体的に少し古い状態でしたが、随時キャッチアップをしながら、追加開発・改修を実施しました。
- バックエンドAPI追加開発 ランキングデータ取得の移行対応
これまでのバッチで生成されたJSONファイルからのランキングデータの取得から、API経由での方法へ移行対応を実施しました。
Java、SpringFrameworkで対応可能なメンバーがいない中で、自身が対応することで、長らく後回しにされていた対応を完了することができました。
- バックエンドAPI開発 パフォーマンス面
変更頻度が低い記事などのコンテンツについては、ElastiCache(Redis)でクエリ・コンテンツキャッシュをしてパフォーマンス問題に対応しました。
- Java SpringFramework、関連ライブラリのバージョンUP
SpringFramework 4.x → 5.xへのバージョンUPや、関連ライブラリのバージョンUPを実施しました。
長らくバージョンUPされていない状態でしたが、問題定期をして実施することができました。
また長らくバージョンUPされて来なかったため、JSONP問題など、いくつかの問題が発生しましたが、バージョンUPを完了することができました。
- コスト削減 ElastiCache(Redis)適正化
クラウドインフラの無駄をチェックし、ElastiCacheのインスタンスタイプを適正化し、コスト削減を実施しました。
- Aurora(MySQL 5.6 -> 5.7)のアップグレード、EOL対応
Aurora v1のEOLに伴いアップグレード対応を実施しました。
・in-placeアップグレード
・Blue/Greenアップグレード
・RDS Proxyの利用
などで検証を行い、バージョンUP計画を立てて、本番環境でのアップグレード作業を完了しました。
(本番はin-placeアップグレードで実施)
- インフラ環境のアップグレード、EOL対応
クラウドインフラ環境のEOLに伴い、
・Fargate
・ElastiCache
・LambdaのNode Version
のバージョンUPを対応しました。
- CircleCI → GitHubActionsへの移行作業
CircleCIの廃止に伴い、GitHub Actionsへの移行を担当しました。
全体的に少し古い環境だったり、Java環境で苦労した部分がありましたが、1つずつ解決していき、移行作業を完了しました。
取り組みの成果
- 安定した記事メディア運用
- 長らく放置されてきた技術的な負債(古すぎるLang, FW, Libバージョンの更新)
- インフラコスト削減
- デプロイの効率化
【2020/04~】 コスメ・化粧品クチコミサービス(フロントエンド)
コスメ・化粧品クチコミサービスのフロントエンド開発、改修を行っています。
目的、背景
コスメの比較・高品質クチコミサービスを運用しています。
基本的には、ブランド様からの広告、広告商品で成り立つビジネスモデルとなります。
規模感、チーム構成
- (ビジ系) 営業系: 6、SNS・ユーザー活性化系: 5、コンテンツ系: 5、運用チーム: 5
- (開発系) PM: 1、フロントエンド: 4、バックエンド: 3、iOS: 2、Android: 2、デザイナー: 1、データ分析: 2
担当した役割
- サービスのフロントエンド、フロントのインフラを担当
- Nuxt/TypeScript/GraphQLのフロントエンド開発
- SEO関連の施策対応
- CDN周りの改善
- CSSコーティング(Sketch、Abstract、Photoshop、Figma)
- E2E、UI管理ツールの更新・導入
- Terraformを用いたフロントエンド関連インフラリソースの作成・変更
- その他、フロントエンド業務改善(広告の追加・削除、sitemap関連)
使用技術や開発環境等
- Nuxt/TypeScript
- GraphQL/Apollo
- StoryBook
- Sketch、Abstract、Photoshop、Figma
- AWS/CloudFront/Lambda/LambdaEdge/ECS(Fargate)/ElastiCache(Redis: 認証系セッション)
- Cognito
- ServerLessFramework
- Terraform
- GitHubActions
- GTM/GoogleAnalytics
取り組んだ課題
どんな課題だったのか
- プラットフォーム事業としての成長
- コスメクチコミプラットフォームとしてのブランド様からの評価
- アットコスメなど既存のプラットフォームのリプレイス
- 高品質なクチコミ、リアルなクチコミ、徹底比較可能なクチコミプラットフォームとしての成長
- クチコミ投稿数の強化、クチコミ閲覧数の強化
技術的なアプローチや工夫した点
- Nuxt/TypeScriptフロントエンド新規機能開発・改修
Nuxt/TypeScript/GraphQLを用いて、フロントエンドの新規機能開発・改修を担当しました。
SEO観点から、SSRを用いて、クライアント側、サーバー側のどちらで処理するかを施策などによって検討して開発をしました。
- フロントエンド開発 型共有
TypeScript/graphql-codegenで型をAPIと型を共有し、自動生成する事で、型安全に開発を進める事ができました。
- フロントエンド施策の分析
GTM、GAなどを活用して、施策毎に定量的に成果を分析しました。
フロントエンド開発では、施策毎にGTMタグの追加、GTM設定追加・変更、GAでの数値確認などを実施しました。
- フロントエンド 検証環境の追加
既存のWebフロント環境では、複数の作業やリリースが重なった際に、テスト環境が足りなくな理、確認作業やリリースで作業が停滞してしまうという問題がありました。
フロントエンド側とインフラ側の両方の知見があるため、Terraformを用いてインフラリソースを追加し、並行して作業を進めやすくなるように対応しました。
- フロントエンド Sign in with Apple対応
Appleのガイドラインが追加され、急遽対応が必要になったにSign in with Apple対応でしたが、
フロントエンド、Cognito連携周りの知見を活かして、機能追加を完了することができました。
- フロントエンド メモリリーク解消対応
フロントエンドのサーバーで、メモリリークのため数ヶ月毎にサーバーが再起動する問題がありました。
これまでサーバー(Fargateのタスク数)を増やすことで、一旦は暫定対応されていた問題を引き受けて解消することができました。
NodeのProfilerを用いて、特定ページへアクセスすると数MBずつメモリが増加していくページを特定後、ソースコード内で該当箇所を絞り込みメモリリークの解消をすることができました。
(dynamic importのミスが原因)
意図しないサーバー再起動の防止や、サーバー数を減らす(正常なタスク数へ戻す)ことでコスト削減にも繋がりました。
- フロントエンド セキュリティ面の指摘と調査
フロントエンドNuxtで、サーバー側からのみ見えるべき環境変数がフロントエンド側からも閲覧可能になっていたため、指摘&修正対応を実施しました。
- Lulucos フロントエンド CoreWebVitalレポート作成
フロントエンドのSEO・パフォーマンス指標に関して、これまで継続的に細かく追う仕組みがなかったため、デプロイ毎に計測し、レポート作成する仕組みを構築しました。
指標には、Core Web Vitalsを採用し、指標を都度確認できる仕組みにより、新施策のリリースによる指標の改善や悪化に即座に気づくことができるようになりました。
- フロントエンド開発 パフォーマンス改善
Core Web Vitalsを中心に計測し、SEO、パフォーマンスなどの改善を実施しました。
・Analyzerでのバンドルサイズ削減
・Lighthouseの改善策
・通信からフロント・サーバーAPIの原因切り分け
・HTML量・レンダリング量の削減
・CSR,SSR側での処理分け
などを実施しました。
- フロントエンド StoryBookのPreview環境を作成
StoryBookのPreview環境を追加し、エンジニア以外でも確認しやすい環境を作成しました。
Terraformを使用してインフラリソースを追加し、GitHub ActionsのCIにも組み込むことで、継続的に確認しやすいフローを構築しました。
取り組みの成果
- ブランド様からのコスメクチコミプラットフォームとしての評価向上
- クチコミ投稿数が業界No1(キャンペーンの状況などにより変化があるが)
- クチコミ閲覧数の大幅増加
- インフラコスト削減
- デプロイの効率化
【2020/04~】 女性向けファッション・美容情報メディアサービス(フロントエンド)
女性向けファッション・美容情報メディアサービスのフロントエンド開発を行っています。
目的、背景
女性向けファッション・美容情報メディアサービスを運用しています。
基本的には、広告、広告商品で成り立つビジネスモデルとなります。
新規開発は、ほとんどなく、主に運用・改善、バグ改修などを行なっていました。
規模感、チーム構成
- (ビジ系) 営業系: 3、コンテンツ系: 5
- (開発系) PM: 1、フロントエンド: 2、バックエンド: 2、iOS: 2、Android: 2、デザイナー: 1、データ分析: 2
担当した役割
- サービスの技術責任者を担当
- 開発タスクの振り分け
- 各相談事項・エラーなどの問い合わせ対応
- 様々な社内サービスを利用しているため、各部署との技術的なやり取り
- アラート対応
- サービスのフロントエンド、フロントエンドインフラを担当
- フロントエンドインフラ環境のアップグレード、EOL対応
- Amebaみんなの編集局で使用するフロントエンド側のモジュール改修、バグ修正
使用技術や開発環境等
- AngularJS(1x)
- Express
- PM2
- Grunt
- Bower
- Karma
- nodemon
- AWS/CloudFront/Lambda/LambdaEdge/ECS(Fargate)/ElastiCache(Redis: 認証系セッション)
- Terraform
- CircleCI/GitHubActions
- GTM/GoogleAnalytics
取り組んだ課題
どんな課題だったのか
- 記事メディアとしてPVの維持
- 広告掲載があるため安定した運用
- 他メディア連携(Ameba、スマニュー、ラインニュース)からのアクセス負荷の際の安定運用
- 少ない頻度でしか発生しないが、その際のビジネス側の依頼に対応するための技術的な知見・把握能力
- 運用を継続していくための適時の改善施策
技術的なアプローチや工夫した点
- AngularJSでのフロントエンド改修
AngularJS(1x)で、モジュールの追加、SEO施策などのフロントエンド改修を実施しました。
フロントエンドの技術スタックが全体的にかなり古く、ネット上に情報が少ない中での改修は苦労しましたが、ソースコードを丁寧に読み解くことで、内容を把握し、都度改修を行いました。
- フロントエンド アラート解消とサーバーコスト削減
プロジェクトの担当以前から不定期で発生するアラートの原因調査と解消を実施しました。
調査を進めるための基盤が用意されていなかったため、まずログの収集、分析するための基盤をGlue、Athenaなどを用いて構築しました。
CloudFrontのキャッシュがほとんど機能していなかったことがわかり、キャッシュを見直し、負荷を軽減することによりアラート解消と、結果的にサーバーコスト削減(Fargateタスク数1/3)をすることができました。
- CircleCI → GitHubActionsへの移行作業
CircleCIの廃止に伴い、GitHub Actionsへの移行を担当しました。
全体的に古い環境のため、既存のCI/CD周りの把握などに苦労しましたが、1つずつ解決していき、移行作業を完了しました。
取り組みの成果
- 安定した記事メディア運用
- 長らく放置されてきた技術的な負債(古すぎるLang, FW, Libバージョンの更新)
- インフラコスト削減
- デプロイの効率化
【2021/10~2022/05】 店舗情報の一元管理SaaS
https://jp.can-ly.com/
店舗情報の一元管理SaaSのリニューアルを担当しました。
担当業務
・PHP->Goへのリプレイス業務
・設計書、ドキュメント作成
習得スキル
・PHPでの既存コードの理解
・Go APIの機能追加
・Googleマイビジネス、Twitterの外部API連携
・AWS SES, Sendgridのメール送信処理の作成
・Twitter APIを用いた連携機能の作成
・OpenAPI (Swagger) 、Stoplightを用いた仕様書の作成
コメント
・既存のPHP/Laravelコードを参考に既存の仕様などを把握し、Go APIでの設計・実装を行いました。
・各外部API連携処理や、メール送信処理などをGoで設計・実装しました。
・外部連携周りの実装では、Goでライブラリが不足している部分は、ドキュメントや既存コードから理解・不足部分のライブラリの独自実装などを行いました。
【2020/01~2020/03】 用語検索サービスのリプレイス
用語検索サービスのリプレイスを担当しました。
フロント側のみをリプレイスで、古くなったNuxtの刷新を行いました。
担当業務
・フロントエンド: TypeScript/Nuxtを用いた開発
・Terraformを用いたインフラリソースの作成
習得スキル
・Nuxtを用いたSSRでのフロントエンドの開発。
・テストはJestを使用。Actionのテスト、componentのスナップショットテストなどを作成。
・UI管理ツールは、StoryBookを使用
コメント
・古くなったNuxtバージョン、デザインやロジックも刷新することで、今後の保守性を高めることができました。
・TypeScriptや、Nuxtでの開発への理解を深めることができました。
【2019/11~2020/01】 保険サービスの管理画面の新規開発
保険サービスの管理画面の新規開発を担当しました。
元々手動で行なっていた運用作業を管理画面化したことで、大きく運用面での改善をすることができました。
担当業務
・フロントエンド: TypeScript/React を用いた開発
・サーバーサイド: Laravelを用いた管理画面用のAPIの追加
・認証基盤: Cognito を用いた開発
・Terraformを用いたインフラリソースの新規作成
習得スキル
・ESLint, lint-stagedを用いて、lintの自動化
・Jestを使用したActionのテスト、componentのスナップショットテストなど
・UI管理ツールのStoryBookを使用
・Laravelでは、サービスコンテナを用いたDIやレイヤードアーキテクチャーを用いて、変更に強い設計で開発
コメント
・React自体は触れたことはありましたが、1から業務でしっかり作る経験は初めてでしたので、Reactのスキルを伸ばすことができました。
・これまで個人でClassコンポーネントでの開発は経験していましたが、初めてHooksを用いた開発を経験することができました。
・ReduxToolkit, redux-sagaなど、当時に比較的新しい技術を取り入れて開発をすることができました。
・Laravelでは、DIを用いて適切にレイヤーを分割したことで、外部APIを容易にモック化できたり、テストしやすくなる設計にすることができました。
・決済APIを用いて管理画面の機能を開発をすることができました。
・Terraformでのインフラ作成では、FargateやCodeDeployでBlue-Greenの仕組みを作成するなど、理解を深めることができました。
【2019/10~2019/12】 送客サービスの新規開発
送客サービスの新規開発を担当しました。
担当業務
・フロントエンド: TypeScript/Nuxtを用いた開発
・別サービスAPIとの連携。
習得スキル
・Nuxtを用いたSSRでのフロントエンドの開発。
・TypeScriptを用いた開発。
・Terraformを用いたインフラリソースの新規作成
コメント
・前任者から引き継いでの新規開発となりましたが、TypeScriptやNuxtのコードを多く書くことができたので、経験を深めることができました。
・TypeScriptを業務でやることが初めてであったため、環境周りや型への理解に少し時間がかかりましたが、リリースまで対応することができました。
・初めてTerraformでインフラリソースの作成を経験しました。
【2019/09~2020/03】 職業検索サービスの改修・運用
職業検索サービスの改修・運用を担当しました。
担当業務
・以下の環境の改修や運用業務を実施
フロントエンド: Next
サーバーサイド: Laravel、ElasticSearch
バッチ: Laravel
習得スキル
・Nextを用いたフロントエンドの改修。
・Laravel、ElasticSearchを用いたサーバーサイドの改修。
コメント
・運用業務がメインでしたが、Next, Laravel共に経験することができました。
・Nextを初めて触ったので最初は苦労しましたが、個人でReactを触っていたため、追加の改修などを行うことができました。
【2019/09~2020/03】 保険サービスの改修・運用
保険サービスの改修・運用を担当しました。
担当業務
・以下の環境の改修や運用業務を実施
フロントエンド: Nuxt(SPAモード)
サーバーサイド: Laravel
習得スキル
・Nuxtを用いたフロントエンドの改修。
・Laravelを用いたサーバーサイドの改修。
・PayJPを用いた決済APIの処理
コメント
・決済が動いているシステムで元々運用上の問題の多いシステムでしたが、担当中は特に問題なく、安定的に運用することができました。
・新規開発はなく、バグ改修などがメインでしたが、Nuxt, Laravel共に経験することができました。
・運用業務を通して、AWSの様々なサービスに触れられたことは良かったです。
【2018/06~2018/09】 5桁数字の画像認識
ゲームアプリの画像ロボット認証をプログラムで突破するためのAPI開発をしました。
機会学習で5桁数字の画像認識をさせることで、5桁の数字画像を渡すと5桁数字へ分析してくれるAPIを作成。
担当業務
・Djangoでの簡易APIを実装
・Pythonで機械学習のランダムフォレストを使用して実装
習得スキル
・Pythonでの簡単な機械学習やディープラーニングの基礎
・学習させたもののデプロイ方法や利用方法などの知識
コメント
・副業として対応をしました
・知り合いのデータサイエンティストにアドバイスを貰いながら試行錯誤をしました
(当初svmで実装しましたが、正答率が出なかったため、ランダムフォレストを使用)。
・画像3000枚で正答率8割程度まで上げることに成功しました
【2019/01~2019/08】 ストックオプション管理システム
信託型ストックオプション管理システムの開発を担当しました。
担当業務
・Laravel、Scssの環境構築
・Laravelの開発
・JSでのフロント開発
・Webpack周りの設定
・AWS検証・本番環境構築
・API仕様書の作成
・DB設計
習得スキル
・クリーンアーキテクチャでのLaravelでの開発手法
・アーキテクチャを検討することでオブジェクト志向への理解が深まりました
・PHP Interfaceを用いたクラス設計、Laravelサービスコンテナを用いたDI、単体テスト
コメント
・クリーンアーキテクチャを用いた設計でのLaravelの開発を経験することができました。
・クリーンアーキテクチャ、ドメイン駆動、レイヤードアーキテクチャなどの設計について理解を深めました。
・オブジェクト思考やSOLID原則など、開発の基本となる様々な考え方について理解を深めました。
・開発Docker環境や本番環境AWS環境などのインフラ構築を任せて貰えたため、インフラや環境構築周りを一通り習得することができました。
・インフラ・環境周りのドキュメント作成や、メンバーのサポートを担当し、プロジェクトへ貢献することができました。
【2018/03~2018/12】 医療アンケートシステム
医療アンケートシステムの開発を担当しました。
今まで紙で行っていた医療アンケートのWebシステム化を実施。
アンケートの回答や回答結果の集計、集計結果のグラフの表示などを行いました。
担当業務
・Laravel、Vue.js、Scssの環境構築
・Laravelでの開発
・Vue.jsでの開発
・Webpack周りの設定
・開発・検証・本番環境の構築
・単体テスト仕様書作成
習得スキル
・基本的なMVCでのLaravel開発について学ぶことができました
コメント
・Laravelでの開発を一通り習得することができました。
・開発Docker環境や本番環境AWS環境などのインフラ構築を任せて貰えたため、インフラや環境構築周りを一通り習得することができました。
・AWSに関しては業務だけでなく、自学習で理解を含めることで、基本的な構成(VPC, EC2, ALB, S3)で設計・構築ができる知識を身につけることができました。
・インフラ・環境周りのドキュメント作成や、メンバーのサポートを担当し、プロジェクトへ貢献することができました。
【2017/09~2018/04】 スポーツジム管理システム移行
スポーツジム管理システムの移行を担当しました。
既存のVBデスクトップアプリケーションを全てWebシステム化し、データなどの移行を実施しました。
担当業務
・SpringBootでのSalesforceデータ連携処理作成
・PythonでのWindowsサーバからHerokuへの連携バッチ作成
・仕様書作成
習得スキル
・HerokuなどのPaaSの扱い方。
・Salesforceの基本知識。
・SpringBootでのサーバーサイドでの開発。
・PythonでNumpy、Pandas、Daskを使用したデータ処理バッチの作成。
コメント
・プログラマーとしては初のPJでわからないことも多かったですが、わからない部分は先輩にサポートして貰いながらやり切ることができました。
・Javaでのプログラミングは当初とても難しく感じましたが、なんとかやり切ることで、その後のプログラミングスキルに大きくプラスになったと感じています。
・Pythonを用いたバッチ処理は、設計から実装まで一通りを任せてもらえたため、とても学びが多かったです。
【2016/06~2017/08】 大手SIerでのインフラ構築業務
大手通信キャリア案件の複数プロジェクトでインフラ構築業務を担当しました。
ミドルウェア担当部署に所属していて、DBをメインとして扱っていました。
担当業務
・MySQLのレプリケーション環境の構築
・MySQLの構築、運用
・OracleのRAC環境の構築
・Oracleの構築、運用
・Hadoop運用、エラー対応等
・モニタリングツールから負荷状況などを確認してDBのパラメータチューニング
・SQL実行計画を取得し、SQLチューニング
・Webサーバー(Nginx、Apache)の構築、運用
・ミドルウェエア関連の検証や構築手順書の作成、障害対応やエラー対応(tomcat, fluentd, etc..)
習得スキル
・Linux全般の知識(firewall、Webサーバーなどミドルウェア全般)を得ることができました。
・Oracle12cやMySQLについての内部構造の知識(レプリケーションの仕組みやREDOログ、トランザクションログなど)を得ることができました。
コメント
・業務外でもLPICのレベル2、Oracle Database Silverの資格を取得し、インフラ周りの知識を多く身につけることができました。
・オンプレからAWSへ移行するPJに参画することができ、AWSを経験することができました。
(オンプレをそのままEC2へ乗っけたような構成ではありましたが初めてクラウドを経験することができました)