職務経歴書
株式会社ジュピターテレコム(2013/4 - 2020/4)
新卒で入社。戸建、賃貸、分譲物件にお住まいのお客様に対しての通信、モバイル、有料放送などの新規営業、アップセルなどを主に担当。2019年ごろから独学でプログラミングを学び転職までの1年間ほど業務をしながら学習。
株式会社エクスマート(2020/4 - 2022/2)
広告代理店向けの社内システムの受託開発およびクローリングシステムの自社開発など。主にJavaとSpringを使用してサーバーサイド開発を担当。
webクローリングのバッチ開発および管理画面の開発案件
使用技術
- Java11
- Spring
- MySQL
- Thymeleaf
- jQuery
- AWS(S3, EC2, RDS, lambdaなど)
2019/4から2019/10ごろの新規開発と2020/4から2020/8ごろの改修を担当。様々なサイトのフォントや色合いなどを業界別の傾向として指標抽出し販売するプロジェクトです。
指標の抽出には月単位での定期バッチでクローリングシステムを動かし、さまざまなサイトからHTMLを取得し、そこからさまざまな指標を抽出しDBに保存し、保存された指標情報を販売するようなフローです。
担当したのはクローリング処理、管理画面の開発、AWSの一部設定など全般的に開発を担当させていただきました。初めての案件でチームや上長にはかなりご迷惑をかけてしまったなと感じていますがこの案件でwebアプリケーションの基本的な開発の流れと単体テストを書くことを経験することができました。
広告代理店の社内モデラー向けのシステム開発
使用技術
- Java11
- Spring
- React
- JavaScript
- Python
- AWS(DynamoDB, S3, ECS, Fargate, RDS, lambda, Cloud Formationなど)
既存システムの改修案件。webアプリケーションのCanvas上に入力したデータ、ファイルを元にモデルを描画し分析するような社内システム。元はAngularとFlashで開発されていたがFlashのサポートの終了にともないReactで改修。
2019年10月ごろから退社までの間担当。主にJavaを使用したAPI開発を担当していましたが、Reactを使用したフロントの開発も担当。
この案件ではAPI開発の基本的な流れ、Reactを使用したSPA開発を学ぶことができました。
株式会社cocone connect(2022/2 - 2022/12)
アバターゲーム開発を主軸に複数のモバイルアプリを運営。女性をメインターゲットとし、最近ではNFTとの相性の良さからweb3領域の事業を展開。
海外向けNFTゲームのサーバーサイド開発
使用技術
- Kotlin
- Spring
- Unity
- Jenkins
- GitLab
- Python
- MongoDB
- Redis
- datadog
- gRPC
- AWS(EC2, S3, lambda, DocumentDB, ElastiCacheなど)
既存のアバターサービスを活かしたNFTゲームの新規開発。Kotlin、gRPCを使用したサーバー開発を担当。モニタリングやログ監視のためのDatadogの導入やKotlinでの単体テスト、Jenkinsでの自動テストの実行など会社としてはあまり知見のない領域を担当させていただきました。
また、NFTを扱うためブロックチェーンまわりの技術キャッチアップを率先しておこない勉強会やミートアップなどのイベントにも積極的に参加しました。
前職ではMySQLでしたがこの開発ではMongoだっためNoSQLの知見、企画担当者と擦り合わせながらのゲーム開発、ブロックチェーンの基本的な技術やトレンドなどを経験することができました。
株式会社cocone(2023/1 - 2024/3)
上記、NFTゲームのリリース後、本社との合併にともない既存のアバターゲーム開発にチーム異動。
使用技術
- Go
- Unity
- Jenkins
- GitLab
- MongoDB
- Redis
- datadog
- gRPC
- AWS(EC2, S3, lambda, Mongo Atlasなど)
主にGoを使用したgRPC、管理画面の開発を担当。Goを使用したgRPC、管理画面の開発の流れを経験することができました。
株式会社Light(2024/3 - 現在)
業務委託として参画。ライブ配信サービスpalmuのリアルタイム通信基盤のGoへのリプレイスを担当。技術調査、設計、実装までを担当。
使用技術
- Go
- gRPC(Connect)
- Google Cloud(Memorystore for Redis Cluster, Cloud SQL, Cloud Run, Google App Engine)
- Firebase(Firestore, Authentication)
クライアントコードからFirestoreのデータを購読することで配信中のリアルタイム表示を実現しているがクライアントコードと密な点と処理遅延が起こるなどの理由からGoとgRPCへのリプレイスするプロジェクトに参画。他者事例調査や実際にプロトタイプを作成して技術検証を行なったりし、他者での採用実績や実装の柔軟性などを考えgRPC + Redis Cluster + Cloud Runを採用。Cloud Run上にgRPCサーバーを動かすことで動的にスケールするため、サーバーインスタンス全てにデータをブロードキャストするためにRedisを使っています。
また、0からのgRPCプロジェクトの作成だったため個人的に注目しているBufチームの技術をなるべく採用しConnect, Buf CLI, protovalidateなどを採用しモダンなProtobufを使ったスキーマ駆動開発を意識しました。
この案件からはモダンなProtobuf開発の仕組みづくりとRedisとgRPCを使ったリアルタイム通信アーキテクチャについて経験することができました。
その他個人的な取り組み
技術記事の執筆
2022/6ごろからQiita、Zennにて技術記事の執筆。個人的に興味のある領域でキャッチアップしたことを主に発信しています。
TypeScriptとCloudflareなどのエッジコンピューティング
Cloudflareのようなエッジ環境でできることが増えてきており、注目を浴びているように感じます。アプリケーションを動かす環境としてAWSやGCPといったクラウド環境だけでなく今後Cloudfrareが選択肢として増えると思っていて個人的に動向が気になっています。
また、TypeScriptがwedフロントエンドだけでなくさまざまな場所で利用されている(例えば上記にあげたCloudflare Workersなど)ため、バックエンドの領域といえどある程度書けるようになっていたほうがいいと感じています。
- React, Next, Vueの学習
- NestJS, DenoなどのサーバーTypeScriptの学習
- Cloudflareなどを利用したエッジコンピューティングの調査
- Astroを使用した個人ブログの作成
インフラ周辺技術のキャッチアップ
AWS, GCP, terraform, docker, kubernetesなどの技術のキャッチアップ。
アーキテクチャなどの学習
マイクロサービス、TDD(テスト駆動開発), DDD(ドメイン駆動開発), クリーンアーキテクチャなどアーキテクチャについての学習。主に技術書で学習。
ブロックチェーン技術のキャッチアップ
- Ethereum系のパブリックチェーンのトレンド調査
- Solidityでのスマートコントラクトの実装
- Flowというパブリックチェーン独自言語であるCadenceの学習
- NFTマーケットプレイスであるOpenSeaのSDKを利用したwebフロントの実装調査
- AstarチェーンにおけるWasmスマートコントラクトの実装学習
Qiita2023アドベントカレンダーへの参加
個人完走賞。主にKotlin, test, TypeScript, ブロックチェーン関係の記事を執筆。
今後興味のある技術
関数型プログラミングやDDDを利用したアプリケーション開発
単体テストの質をあげるにはどうすればいいかということを考えたときにどうしても関数型プログラミングとDDDによる開発を経験したいと感じており、機会があれば経験したい。
Rustを利用したwebアプリケーションの開発
年々注目度が上がっており、web開発の現場でもRustが採用されることが増えてくるかもしれない。そのときのためにRustを習得しておきたいなと思っています。
ブロックチェーンなどの最新技術
最新技術を触るのが好きなためブロックチェーンのような新しい技術、面白そうな技術は積極的に触っていきたい。ライブ配信技術や位置情報アプリのような少し特殊な技術領域にも機会があれば挑戦していきたい。