新卒で入社。戸建、賃貸、分譲物件にお住まいのお客様に対しての通信、モバイル、有料放送などの新規営業、アップセルなどを主に担当。2019年ごろから独学でプログラミングを学び転職までの1年間ほど業務をしながら学習。
広告代理店向けの社内システムの受託開発およびクローリングシステムの自社開発など。主にJavaとSpringを使用してサーバーサイド開発を担当。
使用技術
- 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開発を学ぶことができました。
アバターゲーム開発を主軸に複数のモバイルアプリを運営。女性をメインターゲットとし、最近ではNFTとの相性の良さからweb3領域の事業を展開。
使用技術
- 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の知見、企画担当者と擦り合わせながらのゲーム開発、ブロックチェーンの基本的な技術やトレンドなどを経験することができました。
上記、NFTゲームのリリース後、本社との合併にともない既存のアバターゲーム開発にチーム異動。
使用技術
- Go
- Unity
- Jenkins
- GitLab
- MongoDB
- Redis
- datadog
- gRPC
- AWS(EC2, S3, lambda, Mongo Atlasなど)
主にGoを使用したgRPC、管理画面の開発を担当。Goを使用したgRPC、管理画面の開発の流れを経験することができました。
業務委託として参画。ライブ配信サービス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を使ったリアルタイム通信アーキテクチャについて経験することができました。
マイナンバーカードを利用した個人認証プラットフォームおよびプラットフォーム上で動作する各サービスの開発。 プラットフォーム側で動作する自治体向けのサービスの開発を主に担当。
使用技術
- Go
- PostgreSQL
- Connect
- Buf
- Google Cloud(Cloud Run, Cloud SQL)
- TypeScript
- Vue.js
- Terraform
- SpiceDB
- Docker
本格的にwebフロントの開発を担当したのはこの現場が初めてなのでフロント、バックエンド、インフラを含めたフルスタックな機能開発を経験することができました。 また、BufやConnect, SpiceDBといった採用事例がそこまで多くない新しい技術に触れることもできました。
2022/6ごろからQiita、Zennにて技術記事の執筆。個人的に興味のある領域でキャッチアップしたことを主に発信しています。
このAI時代にあまりサーバーとフロントで言語を分ける意味合いが薄くなってきたように感じるのとRSCやNextの登場、Honoのような現代的なサーバーフレームワークの登場もあり、より一層フルスタックなTS環境に興味がある。
個人的にRust入門をしたため引き続きRustの学習を続けたい。
クリーンアーキテクチャ、DDDといったアーキテクチャについて知見を深めたい。また、持続的なリファクタリングを可能とするためにも単体テストなどについても知見を深めていきたい。
以前、ブロックチェーン領域のキャッチアップをしていたことがあるが再び挑戦したい気持ちがある。また、リアルタイム通信、IoT開発のような技術的に面白そうな、難易度の高い領域にも挑戦していきたい。