業務経歴書
基本情報
| key | value |
|---|---|
| X | @webzawa2 |
| 個人開発アプリ | MAXICELI シフト (コンビニ事業者向け勤怠管理Webアプリ 2024/07/10現在非公開) |
概要
バックエンド・インフラを中心に、フロントエンドまでフルスタックに携わるエンジニアです。
主にWeb系の技術を用いて、勤怠管理アプリやERPパッケージ、HR Tech SaaS、セキュリティ・コンプライアンス SaaS などの業務アプリケーション開発に従事してきました。
小規模から大規模サービスまで、新規開発フェーズから改修フェーズにおいてバリューを提供できます。
2018年に SIer(基幹システム開発)でキャリアをスタートし、2020年からフリーランスとして Web 系にシフト、2024年4月からは AI・IoT システム開発会社(画像処理・自然言語処理・数値解析などの AI 活用と DX 支援が主事業)の CTO を務めています。
CTO としては受託案件の見積もり・設計・実装・インフラ構築に加えて、PM・チームリード(2〜4名)、若手の育成(セキュリティ研修教材の作成と講義)、ISMS 準備や AWS Organization のガバナンス、AI 支援開発基盤の整備を担当しています。
技術スタックとしては、Go、Ruby、Python、JavaScript/TypeScriptなどの言語や、Ruby on Rails、Gin、gRPC、Next.jsなどのフレームワークを幅広く扱えます。
データベースはRDBからNoSQLまで様々な経験があり、特にAWS Aurora(MySQL、PostgreSQL)などに精通しています。
バックエンド開発においては、Go による Clean Architecture(domain / handler / usecase / repository)の設計・実装経験があり、sqlc・Wire・gomock などのエコシステムを活用した大規模 SaaS 開発に携わりました。
API スキーマ設計では TypeSpec / OpenAPI 3.0 を用いたスキーマ駆動開発の基盤をゼロから構築した実績があり、orval・oapi-codegen を組み合わせたコード自動生成フローの整備も行いました。
Rails については、2021年の大規模 ERP パッケージから、2024〜2025年の Instagram 自動返信 SaaS の運用改善、2026年のセキュリティ・コンプライアンス SaaS のプロダクト開発まで継続して実務で扱っています。
インフラ面では、AWSを中心としたクラウドサービスの設計・構築・運用に強みがあります。EC2、ECS、Lambda、API Gateway、CloudFrontなど、多様なAWSサービスを活用したアーキテクチャ設計の経験が豊富です。
最近では、CI/CD環境の構築や本番環境のパフォーマンス監視にも積極的に取り組んでおり、DevOpsやSREの領域にも知見を広げています。
GitHub Actions、CircleCIなどのCI/CDツールの導入や、Terraform、Ansibleなどを用いたIaCの実践も行っています。
セキュリティにも高い関心を持ち、WAFの導入やOWASP ZAPを用いたセキュリティテスト、SonarCloudを活用したコード品質の向上にも取り組んでいます。
テスト設計においても、Go のテーブル駆動テスト・gomock を用いたユニットテスト、Vitest によるフロントエンドコンポーネントテスト、Playwright を用いた E2E テストまで幅広く対応できます。
また、GitHub Copilot CLI や Claude Code を活用した AI 支援開発フローの設計・実践にも積極的に取り組んでいます。AI Skill ファイルの開発やプロンプト設計を通じてチームの開発生産性向上に貢献しており、AI ドリブンな開発スタイルを日常業務に組み込んでいます。
プロジェクトマネジメントの経験もあり、要件定義から設計、実装、テスト、運用までの全工程を担当した実績があります。
顧客との折衝や非エンジニアとのコミュニケーション、技術的な内容を分かりやすく抽象化し説明することが可能です。
IoT開発の経験もあり、Raspberry PiやSoracom Camera APIを使用したプロジェクトにも携わっています。
Raspberry Pi への顔認識モデル・音声認識モデルの組み込みや、EC2 GPU インスタンスへの顔認識・属性判定モデル(年齢・性別推定)の配置も行っています。
エッジデバイスの遠隔管理・実行基盤としては Balena Cloud を活用し、複数台の Raspberry Pi を一元管理するシステムを構築しました。
これらの技術を活用して、画像処理、音声処理、リアルタイムモニタリングシステムの構築など、幅広いIoT・AIソリューションを提供できます。
社外では、2026年4月に Ebitengine ぷちConf #4 で「Claude Code × Gemini × Ebitengine — ゲーム制作素人 Web エンジニアが Go でゲームを作った話」と題して登壇しました。
プロジェクトの成功に貢献できるエンジニアとして様々な課題に柔軟に対応して高品質なソリューションを提供することができ、Web開発からIoTまで幅広い領域でのプロジェクト経験を活かして革新的なシステム開発に貢献できると自負しております。
スキル
実務で使った技術を案件の記録から集計しています(2026/10 時点。月数は使用した案件の期間の合計で、重なりは 1 回と数えます)。
プログラミング言語
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| Ruby | 10 | 71 | 現在 |
| JavaScript | 5 | 52 | 2024/07 |
| HTML | 3 | 52 | 2024/07 |
| CSS | 3 | 52 | 2024/07 |
| TypeScript | 9 | 45 | 現在 |
| Go | 4 | 33 | 2026/04 |
| Python | 5 | 27 | 現在 |
| C | 1 | 26 | 2020/04 |
| VBA | 1 | 26 | 2020/04 |
| COBOL | 1 | 26 | 2020/04 |
| TAL(HP NonStop) | 1 | 26 | 2020/04 |
| TACL(HP NonStop) | 1 | 26 | 2020/04 |
| Shell Script | 2 | 19 | 2026/10 |
| PHP | 1 | 18 | 2026/07 |
| Google Apps Script | 1 | 13 | 2022/02 |
フレームワーク・ライブラリ
バックエンド
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| Ruby on Rails | 16 | 71 | 現在 |
| GORM | 3 | 27 | 2025/05 |
| Sidekiq | 2 | 24 | 2025/08 |
| Gin | 2 | 23 | 2025/05 |
| Laravel | 1 | 18 | 2026/07 |
| wicked_pdf | 1 | 13 | 2022/02 |
| Flask | 3 | 12 | 2026/10 |
| gqlgen(Go 向け GraphQL サーバ) | 1 | 12 | 2025/05 |
| sql-migrate | 1 | 12 | 2025/05 |
| golang-jwt | 1 | 12 | 2025/05 |
| gocsv | 1 | 11 | 2023/10 |
| goblin(RSpec ライクな Go のテスト用ライブラリ) | 1 | 11 | 2023/10 |
| boto3(AWS SDK for Python) | 2 | 8 | 2025/07 |
| Devise(認証 / 認可) | 1 | 7 | 2024/03 |
| omniauth | 1 | 7 | 2024/03 |
| Pundit | 1 | 6 | 現在 |
| gRPC | 1 | 6 | 2026/04 |
| chi(Go 向け HTTP ルーター) | 1 | 6 | 2026/04 |
| sqlc(Go 向け型安全 SQL コード生成) | 1 | 6 | 2026/04 |
| Wire(Go 向け依存性注入フレームワーク) | 1 | 6 | 2026/04 |
| oapi-codegen(OpenAPI → Go サーバコード自動生成) | 1 | 6 | 2026/04 |
| SQLAlchemy | 1 | 6 | 2025/07 |
| alembic | 1 | 6 | 2025/07 |
| gunicorn | 1 | 6 | 2025/07 |
| Echo | 1 | 4 | 2022/05 |
| ruby-openai(OpenAI Assistants API) | 2 | 3 | 2024/05 |
| ActionCable | 1 | 2 | 2023/11 |
| devise_token_auth | 1 | 2 | 2023/11 |
| Hotwire(Turbo / Stimulus) | 1 | 1 | 2024/05 |
| Express | 1 | 1 | 2025/03 |
| Flask-SocketIO | 1 | 1 | 2025/03 |
フロントエンド
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| React.js | 9 | 77 | 現在 |
| Next.js | 7 | 37 | 2025/08 |
| Vue.js | 2 | 31 | 2026/07 |
| Nuxt.js | 2 | 31 | 2026/07 |
| React Hook Form | 2 | 18 | 2026/04 |
| Zod(スキーマバリデーション) | 2 | 18 | 2026/04 |
| Styled Components | 2 | 17 | 2026/04 |
| jQuery | 2 | 15 | 2022/02 |
| video.js(WebRTC) | 1 | 13 | 2023/08 |
| SkyWay | 1 | 13 | 2023/08 |
| WebRTC | 1 | 13 | 2023/08 |
| orval(OpenAPI → TypeScript クライアントコード自動生成) | 2 | 12 | 現在 |
| TanStack Query(非同期状態管理) | 2 | 12 | 現在 |
| React Testing Library | 2 | 12 | 現在 |
| graphql-codegen | 1 | 12 | 2025/05 |
| NextAuth | 1 | 12 | 2025/05 |
| next-pwa | 1 | 12 | 2025/05 |
| Storybook | 1 | 12 | 2025/05 |
| Apollo Client | 1 | 12 | 2025/05 |
| Vite(フロントエンドビルドツール) | 2 | 11 | 2026/09 |
| React Router(v7 framework mode / SSG) | 1 | 9 | 2026/09 |
| React Router DOM | 1 | 6 | 2026/04 |
| Axios | 1 | 6 | 2026/04 |
| react-dnd(ドラッグ&ドロップ) | 1 | 6 | 現在 |
| Material-UI | 1 | 4 | 2022/05 |
CSS
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| Bootstrap | 2 | 52 | 2024/07 |
| Tailwind CSS | 8 | 49 | 2026/09 |
| Sass | 1 | 13 | 2023/08 |
API
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| OpenAPI | 4 | 24 | 現在 |
| TypeSpec(スキーマ定義言語) | 2 | 12 | 現在 |
データベース
RDB
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| MySQL | 9 | 73 | 現在 |
| PostgreSQL | 4 | 36 | 2026/04 |
| Hewlett-Packard NonStop SQL | 1 | 26 | 2020/04 |
| Aurora MySQL | 3 | 24 | 2025/08 |
| Aurora Serverless v2 | 1 | 18 | 2025/08 |
| AlloyDB(PostgreSQL 互換) | 1 | 6 | 2026/04 |
NoSQL
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| Redis | 4 | 45 | 2025/08 |
| Hewlett-Packard Nonstop Enscribe | 1 | 26 | 2020/04 |
| DynamoDB | 1 | 11 | 2023/10 |
機械学習・画像/音声処理
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| FFmpeg | 2 | 19 | 2025/05 |
| GStreamer(映像・音声パイプライン) | 1 | 13 | 2023/08 |
| MiVOLO(YOLOv8 ベースの人物検出・年齢/性別推定) | 1 | 6 | 2025/07 |
| PyTorch | 1 | 6 | 2025/07 |
| OpenCV | 1 | 6 | 2025/07 |
| librosa(MFCC・DTW による警報音の照合) | 1 | 6 | 2025/05 |
| noisereduce | 1 | 6 | 2025/05 |
| scipy | 1 | 6 | 2025/05 |
| deepface | 1 | 6 | 2025/07 |
| Stable Diffusion(SageMaker 上の生成 API を組み込み) | 1 | 3 | 2023/07 |
| Amazon Transcribe(ストリーミング文字起こし) | 1 | 1 | 2025/03 |
OS
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| Amazon Linux | 3 | 52 | 2024/07 |
| Hewlett-Packard Nonstop Guardian | 1 | 26 | 2020/04 |
| RedHat Linux | 1 | 26 | 2020/04 |
| CentOS7 | 1 | 13 | 2022/02 |
| Rocky Linux | 1 | 13 | 2022/02 |
| Raspberry Pi OS | 1 | 13 | 2023/08 |
| Balena OS | 1 | 6 | 2025/07 |
クラウドサービス
AWS
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| RDS(Aurora MySQL, PostgreSQL) | 9 | 79 | 2026/10 |
| IAM | 8 | 77 | 現在 |
| ELB | 7 | 73 | 2026/10 |
| ECS | 10 | 71 | 2026/10 |
| ECR | 8 | 71 | 2026/10 |
| Route53 | 9 | 63 | 現在 |
| ACM | 5 | 62 | 2025/05 |
| VPC | 6 | 59 | 2026/10 |
| S3 | 6 | 40 | 2026/07 |
| CloudWatch(Container Insights, アラーム) | 3 | 40 | 2026/07 |
| Fargate | 8 | 38 | 2025/08 |
| Lambda(コンテナイメージ) | 5 | 37 | 2026/07 |
| CodePipeline | 4 | 36 | 2025/08 |
| Cognito | 4 | 32 | 現在 |
| CloudFront | 3 | 32 | 2026/07 |
| SNS | 3 | 31 | 2026/07 |
| EventBridge(Scheduler, スケジュールタスク) | 5 | 29 | 2025/08 |
| Systems Manager(Session Manager, Run Command) | 4 | 28 | 2025/07 |
| AWS Copilot | 4 | 25 | 2025/08 |
| EC2(GPU インスタンス g4dn を含む) | 5 | 24 | 2026/07 |
| Amplify | 4 | 23 | 2025/08 |
| WAF | 2 | 23 | 2025/05 |
| CodeBuild | 2 | 21 | 2025/08 |
| Lightsail | 2 | 19 | 2026/07 |
| KMS | 2 | 18 | 2025/08 |
| NAT インスタンス | 1 | 18 | 2026/07 |
| ElastiCache | 1 | 18 | 2025/08 |
| DMS | 1 | 18 | 2025/08 |
| CloudFormation | 1 | 18 | 2025/08 |
| DLM | 1 | 18 | 2026/07 |
| SES | 3 | 16 | 現在 |
| Kinesis Video Streams | 1 | 13 | 2023/08 |
| CloudTrail | 3 | 11 | 現在 |
| Secrets Manager | 2 | 11 | 2026/10 |
| API Gateway | 1 | 11 | 2023/10 |
| QuickSight | 1 | 11 | 2023/10 |
| Step Functions | 1 | 11 | 2023/10 |
| IAM Identity Center | 2 | 6 | 現在 |
| GuardDuty | 2 | 6 | 現在 |
| SCP | 1 | 6 | 2026/10 |
| Config | 1 | 6 | 2026/10 |
| Control Tower | 1 | 6 | 2026/10 |
| ECS Exec | 1 | 3 | 2023/07 |
| SageMaker Runtime | 1 | 3 | 2023/07 |
| Organizations | 1 | 1 | 現在 |
| Budgets | 1 | 1 | 現在 |
| EBS | 1 | 1 | 2025/02 |
| AMI | 1 | 1 | 2025/02 |
| AWS CLI | 1 | 1 | 現在 |
GCP
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| Firebase Cloud Messaging(FCM) | 1 | 12 | 2025/05 |
| Firebase Admin SDK | 1 | 12 | 2025/05 |
| Google Cloud Run | 1 | 6 | 2026/04 |
| Firebase Auth | 1 | 4 | 2022/05 |
| Cloud Functions | 1 | 2 | 2023/11 |
CI/CD・IaC
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
Terraform(既存環境の import、-generate-config-out、module 設計) | 6 | 70 | 2026/10 |
| CircleCI | 3 | 52 | 2024/07 |
| Terraformer | 1 | 52 | 2024/07 |
| GitHub Actions(OIDC による AWS 認証を含む) | 10 | 49 | 現在 |
| Ansible | 1 | 13 | 2022/02 |
| Pluralith(Terraform からの構成図生成) | 1 | 12 | 2025/05 |
Webサーバ
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| Nginx | 3 | 52 | 2024/07 |
| Puma | 1 | 52 | 2024/07 |
| Unicorn | 2 | 15 | 2022/02 |
| Apache | 1 | 13 | 2022/02 |
| Phusion Passenger | 1 | 13 | 2022/02 |
開発ツール・ユーティリティ
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| Docker | 13 | 73 | 2026/10 |
| Git | 5 | 58 | 2026/10 |
| Docker Compose | 4 | 58 | 現在 |
| GitHub | 4 | 52 | 2024/07 |
| Visual Studio Code | 4 | 52 | 2024/07 |
| Vim | 4 | 52 | 2024/07 |
| Adobe Premiere Pro | 1 | 52 | 2024/07 |
| Adobe After Effects | 1 | 52 | 2024/07 |
| Adobe Illustrator | 1 | 52 | 2024/07 |
| Tera Term | 1 | 26 | 2020/04 |
| CrystalPoint OutsideView32 | 1 | 26 | 2020/04 |
| jemalloc(Sidekiq のメモリ対策) | 1 | 18 | 2025/08 |
| OpenSSL | 1 | 13 | 2022/02 |
| Vagrant | 1 | 13 | 2022/02 |
| PyInstaller | 1 | 13 | 2022/02 |
| Claude Code(AI 支援開発。社内共通設定・Skills・Agents・Hooks の整備) | 5 | 12 | 現在 |
| Biome(TypeScript / React の Lint・Format) | 2 | 12 | 現在 |
| JIRA(スクラム / スプリント開発管理) | 2 | 12 | 現在 |
| Prettier | 1 | 11 | 2023/10 |
| air(Go のホットリロード) | 1 | 11 | 2023/10 |
| delve(Go のデバッガ) | 1 | 11 | 2023/10 |
| Google AI Studio | 1 | 9 | 2026/09 |
| Webpack | 1 | 6 | 現在 |
| git worktree(並行開発・並行レビュー) | 1 | 6 | 現在 |
| git-wt | 1 | 6 | 現在 |
| Tilt(ローカル開発環境オーケストレーション) | 1 | 6 | 2026/04 |
| GitHub Copilot CLI(AI 支援開発 / Skill ファイル整備) | 1 | 6 | 2026/04 |
| Cursor(AI レビューの運用) | 1 | 6 | 現在 |
| CodeRabbit | 1 | 6 | 現在 |
| Devin | 1 | 6 | 現在 |
| OpenAI Codex CLI | 1 | 6 | 2026/10 |
| GolangCI-Lint(Go リンター) | 1 | 6 | 2026/04 |
| Notion(チケット・仕様書管理) | 1 | 6 | 現在 |
| uv | 1 | 6 | 2026/10 |
| OrbStack | 1 | 6 | 現在 |
| Ruff | 1 | 6 | 2026/10 |
| mypy | 1 | 6 | 2026/10 |
| Slack | 1 | 6 | 現在 |
| Node.js | 2 | 2 | 2025/03 |
| GIMP | 1 | 2 | 2020/10 |
| Duplicator(WordPress の移行) | 1 | 1 | 2024/04 |
テスト・監視
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| RSpec | 5 | 58 | 現在 |
| Sentry | 6 | 38 | 2026/10 |
| Bullet(Rails の N+1 検出) | 2 | 24 | 現在 |
| Selenium | 1 | 13 | 2022/02 |
| Datadog(フロントエンドパフォーマンス・エラー監視、インフラ・アプリケーションメトリクス監視) | 2 | 12 | 現在 |
| Vitest(TypeScript / React コンポーネントユニットテスト) | 2 | 12 | 現在 |
| Playwright(E2E テスト / Page Object Model) | 2 | 12 | 現在 |
| SonarCloud | 1 | 11 | 2023/10 |
| NewRelic | 1 | 9 | 2023/12 |
| gomock(Go テスト用モック生成) | 1 | 6 | 2026/04 |
| testify(Go テストアサーション) | 1 | 6 | 2026/04 |
| go-cmp(Go 構造体差分比較) | 1 | 6 | 2026/04 |
| gomonkey(Go 時刻固定・モンキーパッチ) | 1 | 6 | 2026/04 |
| MSW(フロントエンドAPIモック) | 1 | 6 | 2026/04 |
| pytest | 1 | 6 | 2026/10 |
セキュリティ
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| Wireshark | 1 | 26 | 2020/04 |
| Trivy(コンテナイメージ脆弱性スキャン) | 3 | 12 | 2026/10 |
| gitleaks | 2 | 11 | 2026/10 |
| pre-commit | 2 | 11 | 2026/10 |
| OWASP ZAP | 1 | 11 | 2023/10 |
| Prowler(AWS セキュリティ診断) | 1 | 6 | 2026/10 |
| Bandit | 1 | 6 | 2026/10 |
| pip-audit | 1 | 6 | 2026/10 |
| ISMS | 1 | 5 | 2026/04 |
API連携
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| Stripe API(Webhook を含む) | 4 | 62 | 2025/05 |
| Google Business Profile API | 1 | 18 | 2025/08 |
| Meta Graph API | 1 | 18 | 2025/08 |
| Chatwork API | 1 | 18 | 2026/07 |
| Slack API | 1 | 13 | 2022/02 |
| Soracom Cloud Camera Services API | 2 | 8 | 2025/07 |
| OpenAI API(Assistants API) | 1 | 2 | 2023/11 |
| Shopify API | 1 | 1 | 2023/08 |
| LINE Messaging API | 1 | 1 | 2023/08 |
| Twilio(SMS) | 1 | 1 | 2022/12 |
その他
| 技術 | 案件数 | 合計月数 | 最終使用 |
|---|---|---|---|
| Raspberry Pi(エッジデバイス) | 2 | 19 | 2025/07 |
| Ngrok(ローカル開発用トンネリングツール) | 1 | 18 | 2025/08 |
| BeautifulSoup(Webスクレイピング) | 1 | 13 | 2022/02 |
| Netlify | 1 | 9 | 2026/09 |
| Cloudflare Pages | 1 | 9 | 2026/09 |
| Google Search Console(MCP サーバー連携を含む) | 1 | 9 | 2026/09 |
| Balena Cloud(RaspberryPi遠隔管理) | 1 | 6 | 2025/07 |
| STUDIO(デザインツール) | 1 | 2 | 2020/10 |
| WordPress | 1 | 1 | 2024/04 |
| Heroku | 1 | 1 | 2022/12 |
個人開発・学習で使用
- AnkiConnect(英語学習拡張)
- Chrome 拡張(英語学習拡張)
- Claude API(英語学習拡張)
- Ebitengine(Ebitengine ゲーム)
- Gemini(Ebitengine ゲーム)
- Gemini Nano(英語学習拡張)
- Node.js test runner(英語学習拡張)
- SQS(Cloud Pratica)
- Stanza(英語学習拡張)
- UDPipe(英語学習拡張)
- WASM(Ebitengine ゲーム)
- ecspresso(Cloud Pratica)
- tenv(Cloud Pratica)
キャッチアップ中
- k8s
バリューを発揮しやすい業務
- Linter や Formatter の導入
- 単体テストや統合テストの導入
- local/dev/stg/prod 環境の適切な切り分け
- CI/CD の導入
- コンテナ化(Docker 化)
- ログ収集と分析基盤の構築
- サーバレス構成のインフラ構築
- パフォーマンス最適化(N+1問題の解消、インデックス設計など)
- セキュリティ対策(WAF導入、脆弱性診断など)
- レガシーコードのリファクタリング
- IoTデバイスとクラウドの連携システム開発(Raspberry Pi / Balena とクラウド側の推論パイプライン)
- 認証・認可システムの設計と実装(OAuth、JWTなど)
- APIの設計と開発(RESTful API、GraphQL、gRPC)
- 監視・アラートシステムの構築
- データベース設計と最適化
- スケーラブルなアーキテクチャの設計
- TypeSpec / OpenAPI を用いたスキーマ駆動開発の導入・設計
- Clean Architecture(Go)によるレイヤー分離設計と実装
- GitHub Copilot CLI / Claude Code を用いた AI 支援開発フローの設計・整備
- 既存 AWS 環境の IaC 化(
terraform import)とコスト最適化(NAT インスタンス化、RDS のサイジング、不要リソースの整理) - AWS アカウント設計とガバナンス(Organizations / IAM Identity Center / SCP / CloudTrail / GuardDuty)
- 情報セキュリティ体制づくり(ISMS 準備、開発セキュリティチェックリスト)とセキュリティ研修・教材作成による若手育成
- 本番データの安全な複製・マスキング(DMS、検証環境の整備)
資格
- 基本情報技術者
- AWS SAA
業務経歴(新しい順)
雇用形態ごとに分けて記載しています。各層の中は原則として新しい順ですが、A 層の顧客案件は規模の大きい順、社内施策は取り組んだ順に並べています。
- A. AI・IoT システム開発会社 CTO(2024/04〜現在): 現在 CTO を務める会社(以下「現職」「自社」)の役員として、顧客案件の PM・設計・実装・インフラ、法人向けエージェント経由で受注した常駐型案件への参画、社内施策を担当
- B. フリーランス案件: 個人事業として受けた案件。2020/04〜2024/03 は専業で、直接受託・フリーランスエージェント経由の案件と、現職から副業で受けた案件。2026 年の案件は CTO 業務と並行
- C. 個人開発・登壇・学習
- D. SIer 期(2018/03〜2020/04)
A. AI・IoT システム開発会社 CTO(2024/04〜現在)
- 役割の概要
- 常駐型案件(自社が法人向けエージェント経由で受注し、SES 型で参画)
- 顧客案件
- Instagram 自動返信 SaaS の機能開発・インフラ改善・運用 2024/03-2025/08
- 歯科医院向け患者アプリ(PWA)の新規開発 2024/06-2025/05
- 飲食チェーン店舗の来店客属性推定システム PoC 2025/02-2025/07
- ビル管理会社向け警報音自動検知システム PoC 2024/12-2025/05
- 賃貸退去支援サービスの AWS 引き継ぎ・最適化 2025/02-2026/07
- クリニック向け人事評価システムの AI チャット機能 2024/05
- 音声入力文字起こし PoC 2025/03
- 休止中サービスの AWS 環境を Terraform で復旧可能にしたうえで削除(コスト削減) 2025/02
- LP サイト(WordPress)の移設 2024/04
- 技術調査・見積もりのみの案件
- 社内施策
B. フリーランス案件(2020/04〜2024/03 は専業、2026 年は CTO 業務と並行)
- 清掃会社コーポレートサイトの制作と SEO 2026/01-2026/09(フリーランス案件)
- AI ライター(書籍原稿生成)プロトタイプの開発 2023/10-2023/11(現職からの業務委託案件)
- Instagram 自動返信 SaaS の OEM 提供先向け UI 改修・ダッシュボード開発(PM 兼務) 2023/09-2024/03(現職からの業務委託案件)
- Shopifyを使用したRails x Next.jsの開発 2023/08(現職からの業務委託案件)
- 画像生成 AI の Web サービスのバックエンド・インフラ開発 2023/05-2023/07(現職からの業務委託案件)
- 大規模建設ベンダー向けシステムの開発 2023/04-2023/12(エージェント経由の業務委託案件)
- Instagram 自動返信 SaaS の機能開発 2023/03-2023/05(現職からの業務委託案件)
- 海外インフルエンサーメンタリング Web サイトの認証機能の実装 2022/12(現職からの業務委託案件)
- オンライン音楽レッスン Web アプリの機能開発 2022/08-2023/08(現職からの業務委託案件)
- 不動産 VR 内覧システムの開発 2022/06-2023/02、2023/09-2023/10(エージェント経由の業務委託案件)
- 清掃業者向け BtoB アプリの開発 2022/02-2022/05
- IT 系オンラインサロンでのメンター(プログラミング講師)業務 2021/03-2022/04
- 化粧品メーカー向け営業支援 ERP パッケージの開発 2021/02-2022/02(エージェント経由の業務委託案件)
- コーポレートサイトの作成、サイト内の勤怠管理システムの構築 2020/09-2020/10
- コンビニ事業者向けシフトアプリの開発 2020/04-2024/07
C. 個人開発・登壇・学習
- 登壇
- Ebitengine によるゲーム制作 2025/12-2026/04
- 英語学習用 Chrome 拡張の開発 2026/10
- Cloud Pratica(AWS / Terraform / CI/CD の実践スクール) 2025/02-2026/09
- その他の個人ツール
D. SIer 期(2018/03〜2020/04)
A. AI・IoT システム開発会社 CTO(2024/04〜現在)
役割の概要
参画時期
2024/04〜現在(役員・CTO)。2022/08〜2024/03 は業務委託として同社の案件に参画していました(B 層を参照)。
プロジェクトの種類
- Web サービス(受託開発・自社開発)
- IoT開発(Raspberry Pi, Nvidia Jetson, Soracom API)
- データサイエンス・画像/音声の推論パイプライン
- 社内のセキュリティ・ガバナンス・開発基盤
経験した職種・役割
- CTO(技術責任者)
- PM / チームリード(2〜4 名)
- フロントエンド / バックエンド / インフラ
- 若手育成(教材作成・講義)
業務内容
- 受託案件の見積もり(工数・体制)、要件調整、設計、実装、インフラ構築、本番運用
- 自社が法人向けエージェント経由で受注した常駐型案件への参画(SES 型。常駐型案件について)
- 2〜4 名のチームのリード(担当分け、週次定例、PR レビュー)、若手エンジニアの育成、元請ベンダーへの技術教育
- 社内の情報セキュリティ体制づくり(ISMS 準備、開発セキュリティチェックリスト、セキュリティ研修)
- AWS Organization のガバナンス(棚卸し、アカウント分離計画、CloudTrail / GuardDuty、コスト管理)
- Claude Code / Codex CLI の社内共通設定など、AI 支援開発基盤の整備
- 以下の顧客案件・社内施策
常駐型案件について
自社が法人向けエージェント経由で受注した案件に、CTO 業務の一環として SES 型で参画しているものです。顧客先の開発チームの一員として、要件定義から実装・レビュー・運用まで担当しています。
セキュリティ・コンプライアンス SaaS 企業のプロダクト開発(2026/05〜現在)
プロジェクト概要
企業の情報セキュリティ・コンプライアンス対応(認証の取得・運用、情報資産やリスクの管理、委託先管理、教育など)を支援するマルチテナントの BtoB SaaS の機能拡張チームへ、自社から参画しています。
Rails のバックエンドと React / TypeScript のフロントエンドを両方担当し、エピック(大型機能)の設計・仕様書の執筆から実装・テスト・リリース、他メンバーの PR レビュー、CS(カスタマーサクセス)からの問い合わせ調査まで一貫して担っています。
AI レビュー(CodeRabbit など)と AI コーディングツール(Claude Code / Cursor)を前提にした開発スタイルのチームです。
自社でも情報セキュリティ体制づくりを主導した経験があり、そのドメイン知識を活かしています。
参画時期
2026/05〜現在
プロジェクトの種類
- Web サービス(企業の情報セキュリティ・コンプライアンス対応を支援する BtoB SaaS。マルチテナント)
- 自社が法人向けエージェント経由で受注した常駐型案件
担当工程
- 要件定義(要件固め・UI 設計)/ 設計(DB 設計 / API 設計 / 機能仕様書)/ コーディング / テスト / コードレビュー / リリース対応(hotfix)/ 問い合わせ調査
開発手法
- 週 1 回の定期リリース + hotfix。タスク駆動(JIRA / Notion によるチケット管理)、フィーチャーフラグによる段階的な取り込み、スタック PR
経験した職種・役割
- バックエンドエンジニア(Rails)/ フロントエンドエンジニア(React / TypeScript)
- エピックの中核担当(要件固めから設計書・UI 設計・仕様書までを担当し、チームの Draft PR を引き継いで仕上げ・レビュー)
業務内容
- 情報資産の削除・アーカイブ・復元・削除履歴機能(エピック、2026/06-2026/08)
- 削除時に資産と関連データを JSON スナップショットとして保存し、削除履歴の一覧・詳細から内容確認と復元ができる機能。設計書(決定事項 18 項目)を主執筆してエピックを 7 チケットに分割し、DB 設計・API・React の UI まで一貫して実装(2026/09 に本番リリース)
- 保存形式は 2 本の JSON カラムと一覧・検索用の名前スナップショット列とし、スキーマ変更に寛容な復元(JSON のキーと現在のカラムを突き合わせる)、元 ID を再利用する復元、マスタ消失時の復元ポリシー、監視記録の保全を設計
- 削除前チェックと復元チェックの対称設計、チェック・直列化・復元・スナップショット生成の 4 責務への分離、凍結 fixture で過去のスナップショットとの互換を自動検証
- CS・ビジネスサイド向けの機能仕様書(Notion)を執筆し、実装と突き合わせながら 3 ラウンドのレビューで改訂。デザインレビュー向けの論点資料、手動検証チェックリスト約 150 項目、Playwright E2E の追従も担当。背景(PRD)と技術仕様を分けて管理する進め方は、この案件を先行事例としてチーム共通のルールに採用
- 検証の過程で既存の不具合 3 件を再現手順つきで報告し、CI で一部の spec が実行されていなかった設定不備を修正
- エピック完了後に、事実と数値を先に置いた振り返り文書を作成し、統合 PR の肥大化や仕様書と実装の乖離といった課題を次のエピックの運用ルールに反映
- 組織再編に伴う部門と関連データの紐付け・移行機能(エピック、2026/09〜現在)
- 部門と関連データを結び付けるテーブルと API(認可ポリシー含む)、部門の作成・名称変更・CSV 取込との連動
- 部門削除時に関連データを移行する API(1 トランザクションで全処理し、失敗時は全戻し)。TypeSpec でエンドポイントを定義して OpenAPI 経由でフロントエンドの hook を生成し、フィーチャーフラグでリリースまで既存画面を変えずに取り込み
- レビューと積み直しの過程で、資産の親子関係に循環があると処理が終わらない問題や、関連データが部門を名前の文字列で参照していた問題を見つけ、id で参照する方針へ設計を修正
- その他の機能改修
- 資産の拡張項目(上限、無効項目の非表示、CSV 取込での新規・更新・削除、CSV インジェクション対策)
- 画面上位で権限を 1 回取得して配る権限 Context と「権限がありません」ツールチップの共通化(既存 39 ファイルを変えずに段階移行)
- 教材・教育計画の閲覧権限制御、年間計画へのタスク追加 API(リンク先の実在をルーティングで判定)、監視・測定フィルターの URL パラメータ化、一括却下の却下理由入力、委託先モニタリングの表示不具合
- hotfix(自己参照する資産の一括削除がエラーになる不具合)
- 品質・パフォーマンス改善
- N+1 の解消(拡張項目の一括ロード、復元前チェック、内部監査タイトル)と INDEX 追加
- フロントエンドのキャッシュ再検証の並列化と整合性の修正
- 型チェックのベースラインに残っていた型エラーの削減、回帰テストの追加
- コードレビュー・問い合わせ対応
- 他メンバーの PR を継続的にレビュー(受入条件と実装・spec・手動確認の対応表を作り、ワークツリーに PR を取り出して RSpec / Vitest / Lint を実測し、Must / Should / Nice で指摘)
- AI レビューの指摘を「要対応 / 意図どおり / 前提が誤り」に仕分けて返信し、「レビュー対応で本番の挙動を変えない」ルールを運用。PR 本文は CS が読める形式(条件の表、UI の実文言、技術詳細の分離)に統一
- エピックの同期レビュー会の主催と、仕様の決定事項の文書化・PdM(プロダクトマネージャー)への共有
- CS からの仕様確認・不具合報告に対し、本番環境のログとデータを読み取り専用で調べて原因を確定し、暫定回避策と恒久対応のチケットを提示。Slack での調査報告は「結論・確度・根拠」の型で統一
- 並行開発環境の構築(2026/09)
- 課題: 作業ツリーが 1 つで、全 11 サービスを起動する重い開発環境では、複数タスクと複数の AI エージェントを同時に走らせられない
- 解決: git worktree を 13 本常設し、各ワークツリーは app と Webpack だけを起動して DB などはメイン環境に相乗りする compose 定義と、ディレクトリ名からポートを算出する仕組み(direnv と Makefile)を設計。追跡下ファイルの変更はゼロ
- 効果: 3 本の PR を約 12 時間半で同時に作成し、合流後のテストは 9,145 examples / 0 failures
- AI 支援開発フローの整備
- Claude Code のスキル(実装プラン、動作確認手順、仕様書作成、文体添削、worktree 運用)、権限設定、PreToolUse フック(テスト環境以外の DB リセットの拒否、CI で実行されないテストファイルの作成拒否)、読み取り専用エージェントを整備し、Cursor からも同じ実体を参照
- 着手前調査と実装方針設計の定型プロンプト、CI と同じゲートで検証するエピック用テンプレート、サブエージェント運用の型(共有ファイルは逐語で渡す、報告に「指示と違うことをした点」を書かせる、人が決めることを明示する)を文書化
- 技術共有・ドキュメント: Rails 初学者向けの落とし穴・レイヤー責務ガイド、ドメインの用語集、開発用テナントの作成・削除手順を整備。Kaigi on Rails 2026(2 日間・15 セッション)の参加レポートを社内共有向けに作成(30 分のスライドと読み合わせ用ノート)
成果・学んだ点・工夫したこと
- 参画 6 か月(2026/10 末時点)で develop にマージされた PR は 109 件。RSpec 36 ファイル・フロントエンドテスト 33 ファイルを追加し、Ruby と TypeScript の変更量はほぼ半々です。
- 要件固めの段階で UI 設計までエンジニアに任せる進め方を最初のエピックで実践し、振り返りでチームの新しい試みとして評価されました。
- 統合 PR が大きくなりすぎた反省から、次のエピックでは小さな PR を積む運用とフィーチャーフラグによる段階的な取り込みに切り替えました。
使用技術
- Ruby 3.4 / Ruby on Rails 8.1 / RSpec / Pundit / MySQL(マルチテナント)/ Bullet
- React 18 / TypeScript / TanStack Query / react-dnd / Vitest / React Testing Library / Biome / Webpack
- TypeSpec / OpenAPI / orval / Playwright
- Docker Compose(OrbStack)/ git worktree / git-wt / GitHub Actions / Datadog / AWS(Cognito)
- Claude Code / Cursor / CodeRabbit / Devin / Notion / Jira / Slack
HR Tech 企業 LMS プロジェクト(2025/11-2026/04)
プロジェクト概要
HR Tech 企業が提供する法人向け HR 管理 SaaS(LMS)の開発チームへ自社から参画しました。
学習管理機能の既存機能改善・テスト強化と、集合研修機能の新規開発を担当しました。
既存サービスの品質改善、新規実装では要件定義から設計・実装まで一気通貫で携わった新規開発案件です。
チームは Go 製のバックエンド(Clean Architecture)と TypeScript / React 製のフロントエンドで構成される大規模モノレポ構成です。
参画時期
2025/11-2026/04
プロジェクトの種類
- Web サービス(法人向け HR 管理 SaaS / LMS)
- 自社が法人向けエージェント経由で受注した常駐型案件
担当工程
- 要件定義(ドメインモデリング)/ 設計 / コーディング / テスト / コードレビュー
開発手法
- スクラム / スプリント開発(JIRA によるチケット管理)
経験した職種・役割
- バックエンドエンジニア / フロントエンドエンジニア
業務内容
- 要件定義・ドメインモデリング
- イベントストーミング形式のドメインモデリング会に参加し、ユビキタス言語の策定・集合研修のドメインモデル設計に貢献
- 新規機能実装について、ドメインモデリングを用いた要件定義フェーズから参画
- API 設計書の作成・レビューを通じて、ビジネス要件をコードに落とし込む設計を主導
- TypeSpec 基盤のゼロからの設計・導入
- 既存
api.yamlが数千行に肥大化した課題に対し、TypeSpec による型安全なスキーマ駆動開発の仕組みを構築
- 既存
- BE フルスタック実装
- Clean Architecture(domain / handler / usecase / repository)全レイヤーを設計・CRUD実装
- レビュワーの負担軽減を考慮し、レイヤー(層)ごとに PR を分割して段階的にレビュー・マージを実施
- gRPC を用いた別マイクロサービス(メンバー管理サービス等)との連携 API 開発
- セキュリティ・インフラ対応
- Docker イメージの脆弱性(Critical / High)を Trivy で検出し、Alpine → DistrolessやDebian ベースへの移行で解消
- 本番 DB マイグレーション(Cloud Run ジョブの一時停止・リハーサル実施・本番適用)を担当
- 本番メトリクスの週次監視を担当(Datadog:500/400 エラー・テナント別使用量、GCP Cloud Console:リクエスト数・レイテンシー・CPU/メモリ・AlloyDB クエリパフォーマンス)
- EXPLAIN ANALYZE による AlloyDB のクエリ検証と改善
- テスト整備・品質改善
- ユニットテスト・統合テストを追加(Go / gomock / テーブル駆動&AAAテスト)
- フロントエンド: Vitest によるコンポーネントユニットテスト、Playwrightのブラウザテストを追加
- AI 支援開発フローの整備
- GitHub Copilot CLI・Claude Code を活用した AI ドリブンな開発スタイルを実践
- Claude Code 向け TDD 自動化エージェント(Red → Green → Refactor → Lint を全レイヤーで自動実行)をゼロから開発しチームに展開
- 実装スキル、レビュースキルなど Claude Code & GitHub Copilot CLI 向け Skills / Agents を作成・整備
- PR の差分からアンチパターンと良いパターンを自動で抽出する仕組み(Python + gh CLI)を作成
- ライブラリ近代化: Biome 2系、React 18.3、TypeScript 5.9 へのアップデート対応
- コードレビュー: チームメンバーの PR を継続的にレビュー(参画 5 か月時点で 50 件超のレビューを実施。git worktree で複数 PR を並行してレビュー)
- 技術共有・チームへの貢献
- チームの技術共有会(エンジニア相談会)にて技術ネタのショート LT 発表を実施
- HR Tech 業界のドメイン知識習得(競合サービス調査・顧客ヒヤリング議事録の読み込み)
- 環境構築手順・構成図・オンボーディング資料を自主的に整備
成果・学んだ点
- TypeSpec 基盤をゼロから設計・導入し、集合研修 API をスキーマファーストで開発できる仕組みを確立(チーム初の TypeSpec 採用案件)。導入検証を通じて既存 api.yaml のバグも発見・修正
- 参画 5 か月時点で実装 PR 35 件超 + レビュー PR 50 件超を継続デリバリー
- Claude Code 向け TDD 自動化エージェントをゼロから開発してチームに展開し、AI ドリブンな開発スタイルをチームに先導
使用技術
Backend (app)
Go / TypeSpec / OpenAPI 3.0 / gRPC / chi / oapi-codegen / sqlc / Wire / gomock / testify / go-cmp / gomonkey / GolangCI-Lint / PostgreSQL / AlloyDB / Google Cloud Run
Frontend (front)
TypeScript / React.js / Vite / TanStack Query / React Router DOM / Styled Components / React Hook Form / Zod / Axios / orval / MSW / Vitest / React Testing Library / Playwright / Biome / Datadog RUM
共通・インフラ・開発環境
Docker / Tilt / GitHub Actions / Datadog / JIRA / GitHub Copilot CLI / Claude Code / Trivy
Instagram 自動返信 SaaS の機能開発・インフラ改善・運用(2024/03-2025/08)
参画時期
2024/03-2025/08(2023/03〜2024/03 の副業期の関与は B 層の Instagram 自動返信 SaaS の機能開発・同 OEM 提供先向け UI 改修 を参照)
プロジェクトの種類
- Web サービス(BtoB SaaS。Instagram の DM・コメントへの自動返信、配信、代理店向け管理画面)
- 受託開発(機能追加・インフラ改善・運用保守)
担当工程
- 要件定義(見積もり)
- 設計
- コーディング
- テスト
- 運用/保守・障害対応
経験した職種・役割
- バックエンド(主担当)
- フロントエンド
- インフラ
- チームリード(Google Business Profile 連携で 3 名)
業務内容
Rails 6.1 + Sidekiq + Next.js、AWS Copilot(ECS Fargate)+ Aurora MySQL で構成された SaaS の機能開発と、インフラ・性能の改善、本番運用を担当しました。
見積もりから実装、本番作業、障害報告書の作成まで一気通貫で行っています。
- 機能開発
- Instagram のカルーセル配信機能のバックエンド開発(一覧・検索・複製・アーカイブ・作成・編集 API、Instagram Generic Template での送信、ボタンアクション、段階リリース)
- Google Business Profile 連携(Instagram の投稿を店舗のビジネスプロフィールへ自動反映)。見積もり(160h)、Google API の利用申請、Instagram Webhook と直近投稿を取得するバッチ、EventBridge のスケジュールタスクによる定期実行、トークンの優先順位とフォールバックによる連携エラーの解消、複数店舗対応
- テンプレート機能(新規パッケージ・自動返信の一括追加)、抽選ジョブの未実行検知(処理状況カラムの追加)、Google SSO が動作しない不具合(FedCM)の対応、パッケージ編集画面の状態復元バグの修正
- チームリード
- Google Business Profile 連携でフロント 1 名・バック 2 名の担当分けと週 1 の定例を主催し、環境構築を支援
- 性能・運用の改善
- Sidekiq ジョブの大量デッド(送信予定 605 件中 167 件、約 28%)の原因を特定(リトライ無効の設定・OOM・スケールの遅れ)
- ECS タスクのサイズを 0.5vCPU/1GB → 1vCPU/2GB に見直し、常時 15 台から最小 4・最大 10 台のオートスケーリングへ変更。OOM(exit 137)に対して jemalloc を導入
- Bullet による N+1 の検出と解消(15 秒超かかっていたパッケージ編集画面、数分かかっていたランキング API、本番で 3 秒超のアンケート API)。リクエスト ID をログに付与して追跡性を改善
- Aurora の CPU 使用率が特定時間帯に 100% になる問題に対し、スケール方式を 5 案(工数・停止リスク・コスト)で比較提案し、db.r6g.2xlarge から Aurora Serverless v2(0.5〜64 ACU)へ切り替え
- 大規模な一斉配信施策(約 5,000 人に最大 15MB の動画)に備えた一時的なスケールアップ(Aurora・Sidekiq)と翌朝の復旧
- RDS のパラメータ調整(
tmp_table_sizeなど)、STG 環境のサブネットグループ混在による接続不良の特定 - 配信エラーの分析(約 7 割がレート制限、約 2 割が特定のエラーコード)と、Job ID をエラーレコードに保存する設計
- 本番 DB(約 30GB)を個人情報マスキングしてローカルに再現する手順を確立し、再現しにくい不具合(他パッケージのボタン混入、コメント自動返信が発火しない等)を解消
- 新しい検証環境(dev01 / dev02)の構築を見積もり・実施(AWS Copilot)
- 障害対応
- CloudFormation スタックが
UPDATE_ROLLBACK_FAILEDとなり検証環境のデプロイが約 24 時間止まった障害(ECS Deployment Circuit Breaker が起点)をcontinue-update-rollbackで復旧し、障害報告書を作成
- CloudFormation スタックが
- リポジトリ移管と DB 基盤
- GitHub リポジトリの Organization 移管に伴うデプロイパイプラインの修正(Amplify 8 アプリの再接続、CodePipeline の CodeConnections とサービスロール、IAM 権限の整理)
- AWS RDS(Aurora)の監査ログ出力(
server_audit_logging)を STG で検証してから全環境に適用。RDS への接続元 IP を制限 - AWS DMS で本番 DB(約 770GB)を STG へ複製。中間クラスタ → フルロード → マスキング SQL → リネームによる Blue-Green 切替(旧環境を残しロールバック可)。暗号化されていないスナップショットから暗号化環境へ移行し、91 テーブル中 87 テーブルにあったスキーマ差分(デフォルト値・インデックス・外部キー)を修正
- 本番 → STG の継続同期(DMS CDC)を構築。DMS 専用 DB ユーザーにだけ効く MySQL トリガーで個人情報をマスキングし、STG 専用レコードは ID 範囲を分けて衝突を回避。CloudWatch のログ出力を絞り込んでログ量を削減。AWS サポートへの問い合わせと引き継ぎ資料を作成
成果・学んだ点・工夫したこと
- Sidekiq の設定不備(リトライ無効)とリソース不足を数値で示し、タスクサイズとスケール設定の見直しで配信の取りこぼしを解消しました
- DB のスケール方式を複数案で比較して提案し、ダウンタイムを抑えて Aurora Serverless v2 へ移行しました
- 本番データを安全に扱う型(マスキングした再現環境、DMS によるマスキング付き複製)を確立し、再現しにくい不具合の解消と検証環境の整備に役立てました
使用技術
- Ruby on Rails 6.1 / Ruby 3.0 / Sidekiq / Redis(ElastiCache)
- Next.js / React / TypeScript / Tailwind CSS
- Aurora MySQL / Aurora Serverless v2 / AWS DMS / KMS
- AWS Copilot / ECS Fargate / ECR / CodePipeline / CodeBuild / CloudFormation / Amplify / EventBridge / CloudWatch Container Insights / IAM
- Meta Graph API(Instagram)/ Google Business Profile API / Sentry / ngrok / Bullet / jemalloc
歯科医院向け患者アプリ(PWA)の新規開発(2024/06-2025/05)
参画時期
2024/05(見積もり)、2024/06-2025/05(開発・本番化・環境移行)
プロジェクトの種類
- Web サービス(toC 向け PWA + 歯科医院向け CMS)
- 受託開発(既存ネイティブアプリの作り直し)
担当工程
- 要件定義(見積もり・要件調整)
- 設計
- コーディング
- テスト
- 運用/保守(本番構築・環境移行)
経験した職種・役割
- バックエンド
- インフラ(主担当)
- フロントエンド(一部)
- PR レビュー(約 100 件のマージを担当)
業務内容
iOS / Android のネイティブアプリとして運用されていた患者向けアプリを、Go の GraphQL API と Next.js の PWA に作り直す案件です。
フロント・バックエンド 400h、インフラ 100h、課金 40h の見積もりと 4 か月の納期でチーム 4 名の開発を進め、バックエンドとインフラを中心に担当しました。
- バックエンド: Go(Gin + gqlgen)による GraphQL API。治療履歴・通院スケジュール・家族ユーザー・お気に入り・クリニック(CRUD、Excel 取込、近隣検索)・歯科医紹介・コラム(下書き・画像圧縮)・FAQ・CMS アカウント招待(JWT)・論理削除・ページネーション。Cognito 認証(サインアップ、確認コード、トークンリフレッシュ、メール変更)
- フロントエンド: Next.js 14(App Router)の利用者向け PWA と CMS。Apollo Client + graphql-codegen、NextAuth、react-hook-form + zod、Storybook。iOS / Android への PWA インストール案内、通知タップで PWA を開く導線
- 通知・決済: Firebase Cloud Messaging によるプッシュ通知(スケジュール通知、通知履歴。Lambda + EventBridge をトリガーに使用)。Stripe によるクリニック向け課金(Webhook、WAF の海外遮断が原因の 403 への対策)
- インフラ: VPC / ALB / ECS Fargate(オートスケーリング、STG は Fargate Spot)/ ECR / RDS / Cognito / Amplify / S3 / SES(DKIM、別アカウントからの送信)/ Route53 / ACM / WAF / KMS / SSM をすべて Terraform で IaC 化。GitHub Actions で ECR → タスク定義 → ECS の自動デプロイ。DNS を他社サーバから Route53 へ移行し、ACM のワイルドカード証明書を発行
- 環境移行: 自社 AWS で構築していた STG 環境を顧客の AWS アカウントへ移設。Terraform の修正、Cognito ユーザープール間のユーザー移行(CSV エクスポート → インポート、グループの対応付け、パスワードの一括リセット、DB 側の識別子更新)、S3 データの移行
- ドキュメント: Pluralith による構成図の自動生成、API 定義書、テーブル定義書
使用技術
- Go 1.22 / Gin / gqlgen / GORM / sql-migrate / golang-jwt / stripe-go / Firebase Admin SDK / Sentry
- Next.js 14 / React 18 / TypeScript / Apollo Client / graphql-codegen / NextAuth / next-pwa / react-hook-form / zod / Storybook / Tailwind CSS
- AWS: ECS Fargate / ECR / RDS / Cognito / Amplify / S3 / SES / Route53 / ACM / WAF / KMS / SSM / Lambda / EventBridge
- Terraform / GitHub Actions / Pluralith / Firebase Cloud Messaging / Stripe
飲食チェーン店舗の来店客属性推定システム PoC(2025/02-2025/07)
参画時期
2025/02-2025/07
プロジェクトの種類
- IoT × AI(店舗カメラの映像から来店客の年齢・性別を推定し、POS データと突合)
- 受託開発(IT ベンダー経由の PoC。元請ベンダーへの技術教育も担当)
担当工程
- 要件定義(設計確定)
- 設計(DB・処理フロー・AWS 構成・突合アルゴリズム)
- コーディング
- テスト(機能テスト仕様)
- 運用/保守(店舗での設置・再設置)
経験した職種・役割
- バックエンド / インフラ / エッジ
- チームリード(若手エンジニア 2 名)
- 元請ベンダーへの技術教育
業務内容
店舗の Raspberry Pi とクラウドカメラ(Soracom)の 2 系統で来店客の年齢・性別を推定し、POS レジのデータと突き合わせて客層を分析する PoC です。設計・実装・インフラ・現地設置まで担当しました。
- エッジ(Raspberry Pi): Balena OS / Balena Cloud でフリートを管理(OTA 更新、環境変数、ログ取得)。Docker 上の顔検出トリガーを Haar Cascade から DNN(SSD)へ、同一人物判定を pHash から顔特徴量のコサイン類似度へ改良。端末内で推論して結果を Aurora に直接書き込み
- クラウド推論: Soracom API でクラウドカメラの録画・静止画をエクスポートし、EC2 GPU インスタンス(g4dn、CUDA)上の MiVOLO(YOLOv8)で人物検出と年齢・性別推定を実行。ECS Fargate(Spot)上の Flask ダッシュボードから AWS Systems Manager Run Command で推論を遠隔起動し、店舗・カメラ・POS CSV を管理
- POS 突合: レシート時刻の直前 2 秒から 5 枚を取り出して推論し、複数枚の結果を中央値/両端除外平均・性別は多数決で確定するアルゴリズムを設計。成果物 CSV を Lambda(EventBridge 週次)で S3 に出力し 30 日のライフサイクルで削除
- インフラ: Terraform(EC2 / ECR / ECS / IAM / Lambda / ネットワーク / RDS / S3 / セキュリティグループ、dev / stg)、alembic によるマイグレーション
- 現地対応: 店舗での設置・再設置手順書、テザリング手順、Balena のログから Wi-Fi 切断の原因(規制ドメイン・チャネルエラー)を分析
- その他: カメラ本体でのエッジ推論(メーカー SDK)を試行し、ビルドは成功したもののサイズ上限により見送り
使用技術
- Python / Flask / SQLAlchemy / alembic / gunicorn / boto3
- MiVOLO(YOLOv8)/ PyTorch / OpenCV DNN / deepface
- Raspberry Pi / Balena OS / Balena Cloud / Docker / Soracom API
- AWS: EC2(GPU)/ SSM Run Command / ECS Fargate Spot / ECR / Lambda / EventBridge / S3 / Aurora MySQL / Terraform
ビル管理会社向け警報音自動検知システム PoC(2024/12-2025/05)
参画時期
2024/12-2025/05(PoC。その後本番運用へ)
プロジェクトの種類
- IoT × AI(クラウドカメラの音声から警報音を自動検知してメール通知)
- 受託開発
担当工程
- 設計
- コーディング
- テスト
- 運用/保守(顧客向けセットアップガイド)
経験した職種・役割
- バックエンド
- インフラ
業務内容
ビル設備の警報音をクラウドカメラ(Soracom)のマイクで拾い、クラウド側で自動検知してメールで知らせる仕組みの設計・実装を担当しました。
- EventBridge が 5 分ごとに Lambda を起動し、Soracom API で接続中のカメラの録画をエクスポート・ダウンロード
- FFmpeg で音声を抽出し、バンドパスフィルタ・ノイズ除去・MFCC などの特徴量と DTW 距離で、事前登録した警報音と照合。一致したときだけ SNS でメール送信(複数宛先)
- FFmpeg を含むレイヤーが Lambda の上限(250MB)を超えたため、コンテナイメージ型の Lambda として実装
- Terraform で ECR / Lambda / IAM / SNS / EventBridge を管理。ローカル実行用スクリプト、Mermaid の構成図、顧客向けのクラウドカメラ セットアップガイドと IAM ユーザー作成手順を作成
使用技術
- Python 3.12 / FFmpeg / librosa / noisereduce / scipy / boto3
- AWS: Lambda(コンテナイメージ)/ ECR / EventBridge / SNS / IAM / Terraform
- Soracom Cloud Camera Services API
賃貸退去支援サービスの AWS 引き継ぎ・最適化(2025/02-2026/07)
参画時期
2025/02-2026/07
プロジェクトの種類
- Web サービス(Laravel API + Nuxt.js の管理画面・顧客画面)
- 受託(AWS 環境の引き継ぎ、コスト最適化、運用整備)
担当工程
- 要件定義(現状分析・最適化提案)
- 設計(フェーズ分けしたタスク設計)
- コーディング(軽微)
- 運用/保守(インフラ変更・証跡作成)
経験した職種・役割
- インフラ(主担当)
- バックエンド / フロントエンド(規約画面の改定、CI の修正)
業務内容
他社から引き継いだ AWS 環境を棚卸しし、コストと運用の課題を洗い出して段階的に改善しました。
- 現状分析と提案: 構成とコストの分析(RDS が月額の約 66%、うち延長サポート費が RDS 費の約 8 割)、ALB ヘルスチェックの不備の指摘、IAM・監視・バックアップの見直し案、リザーブドインスタンスの試算
- IAM: 19 の IAM ユーザーを証跡を残したうえで整理
- 監視: CloudWatch アラーム → SNS → Lambda → Chatwork 通知を STG / 本番に構築(EC2 の CPU・メモリ、RDS の CPU・メモリ・空き容量、ELB のヘルスチェック・5xx、CloudFront の 5xx)
- DB: RDS を MySQL 5.7 から 8.0 へメジャーバージョンアップ(Multi-AZ・暗号化で新規作成)し、インスタンスサイズを縮小して延長サポート費を解消
- ネットワーク: NAT Gateway を NAT インスタンス(Amazon Linux 2023、t3.nano、本番は 2AZ)へ置き換え、NAT の費用を約 89% 削減
- バックアップ: DLM で AMI と EBS スナップショットを毎日取得(7 世代保持)し、スナップショットからの復元テストを実施。S3 のバージョニングとライフサイクルを設定
- 開発環境: ローカルの Docker 化(Laravel API・Nuxt × 2・MySQL)、GitHub Actions のビルドエラー解消、利用規約・プライバシーポリシー・情報セキュリティ方針の改定
- 引き継ぎ: 会員情報出力の SQL、踏み台経由の STG DB 接続手順書、構成図(Mermaid / Draw.io)
使用技術
- Laravel / PHP / Nuxt.js 2 / Vue.js 2 / MySQL 8.0 / Docker
- AWS: EC2 / ALB / CloudFront / S3 / RDS / NAT インスタンス / Lambda / SNS / CloudWatch / DLM / IAM / Lightsail
- Chatwork API / GitHub Actions
クリニック向け人事評価システムの AI チャット機能(2024/05)
参画時期
2024/05(約 2 週間)
プロジェクトの種類
- Web サービス(クリニック向け人事評価 SaaS)
- 受託開発(機能追加)
担当工程
- 設計
- コーディング
経験した職種・役割
- バックエンド
- フロントエンド
業務内容
Rails 7.1(Hotwire)のアプリに、OpenAI Assistants API(gpt-4o、file_search / vector store)を使った社内マニュアルの Q&A チャットを追加しました。
クリニックがアップロードした PDF マニュアルをアシスタントに読み込ませ、従業員からの質問に Turbo Streams でストリーミング回答します。従業員側・クリニック側の画面、PDF のアップロード、出典記号の除去、応答後のスレッド削除、シフトの CSV テキスト出力を実装しました。
使用技術
- Ruby on Rails 7.1 / Ruby 3.2 / Hotwire(Turbo / Stimulus)/ tailwindcss-rails / ruby-openai / MySQL 8 / Redis / Sentry / RSpec / Docker / GitHub Actions
音声入力文字起こし PoC(2025/03)
参画時期
2025/03
プロジェクトの種類
- 技術検証(ブラウザからの音声入力と文字起こし)
担当工程
- 設計
- コーディング
経験した職種・役割
- バックエンド / フロントエンド
業務内容
Amazon Transcribe のストリーミング文字起こしをブラウザから使う PoC を、Flask + Socket.IO、Node.js / TypeScript + Socket.IO、React(ブラウザから直接呼び出し)の 3 方式で実装・比較しました(日英中韓)。ブラウザの音声認識 API との比較、ngrok での検証手順、マイク権限を拒否した場合の案内も用意しました。
使用技術
- Amazon Transcribe(Streaming)/ Flask / Flask-SocketIO / Node.js / Express / TypeScript / React / Docker
休止中サービスの AWS 環境を Terraform で復旧可能にしたうえで削除(コスト削減)(2025/02)
参画時期
2025/02
プロジェクトの種類
- インフラ(サービス休止中も課金され続けていた AWS 環境を、Terraform でいつでも再構築できる形にしてから削除し、費用を止める)
担当工程
- 設計
- コーディング(Terraform)
- 運用/保守
経験した職種・役割
- インフラ
業務内容
同じ取引先が運営していた別サービス(休止中)の AWS 環境が稼働時のまま残り課金され続けていたため、Terraform で IaC 化したうえで削除し、サービス再開時にはコードから復旧できるようにしました。EBS のスナップショット化、停止中 EC2 からの AMI 作成と動作確認、RDS スナップショットの退避(既存スナップショットのバージョンでは S3 へエクスポートできないことを確認)、既存リソース(VPC / EC2 / セキュリティグループ / Route53 / S3)の terraform import とコード化、削除、Terraform からの復旧確認を行いました。
使用技術
- Terraform / AWS: VPC / EC2 / EBS / AMI / RDS / Route53 / S3
LP サイト(WordPress)の移設(2024/04)
参画時期
2024/04
プロジェクトの種類
- Web サイト(WordPress の LP)
- 受託(他社環境からの移設)
担当工程
- 運用/保守
経験した職種・役割
- インフラ
業務内容
他社で運用されていた WordPress の LP を Duplicator でエクスポートし、ドメイン移管とネームサーバーの変更、自社 AWS の Lightsail への再構築、旧環境の削除まで行いました。
使用技術
- WordPress / Duplicator / AWS Lightsail / Route53
技術調査・見積もりのみの案件
受注前のヒアリング・技術調査・見積もりまでを担当したもの、および社内のデータコンペ参加です(CTO 就任前の 2022〜2024/03 に副業として担当したものを含む。新しい順)。
- デジタルサイネージの要件確認(2025/05): 配信スケジュール・スライドショー・Raspberry Pi の OTA 更新に関する質問リストの作成
- 展示会向け顔認証サイネージのデモ検討(2025/01): Raspberry Pi と Web カメラで来店者の年齢・性別に応じて広告を出し分けるデモの打合せと、Amazon Rekognition での年齢推定の検証。この検討が 来店客属性推定システム PoC につながりました
- LINE 配信 SaaS の追加要件整理(2025/01): LINE Messaging API を使う Rails アプリの追加要件(配信フィルタの AND/OR、友だち推移グラフ、配信残数表示)のオンボーディングと整理
- データコンペ(2024/11): 中古マンション価格予測コンペに LightGBM / CatBoost で参加(社内の勉強を兼ねて)
- 越境購入代行サービスの再開相談(2024/08): 他社から引き継いだサービス(Yii2 / Laravel)を AWS で再開するためのヒアリング
- LINE ミニアプリの引き継ぎ技術評価(2024/03-2024/04): 他社開発の Flutter Web + Firebase アプリについて、コードレビューで引き継ぎ難易度・品質・キャッチアップ期間を評価
- AR 3D CAD フィッティング(2024/02-2024/03): 工業製品の CAD データを AR で実物に重ねて精度を確かめる案件の技術調査(Unity、iPad の LiDAR 精度、点群とポリゴン、Blender)
- 製造業の外観検査 AI(2024/01): 製造時の写真・動画をもとにした相談
- BI レポート Web アプリ(2022/09): アクセス解析や口コミサイトの CSV からレポートと PDF を出力するアプリの構想とモック設計(Go + React 想定)
セキュリティ施策・ISMS 準備(2025/12-2026/04)
参画時期
2025/12-2026/04
プロジェクトの種類
- 社内施策(情報セキュリティ体制づくり)
担当工程
- 企画
- 要件定義
- 設計
- 運用/保守
経験した職種・役割
- 開発側の責任者(運用側は COO と分担)
業務内容
受託開発・運用支援を対象とした ISMS(ISO 27001)導入の準備と、開発チームのセキュリティ施策を主導しました。
- ISMS 適用範囲定義書の作成、非管理者向けのヒアリング質問票(端末・SaaS・権限の実態把握)
- 開発セキュリティチェックリスト(8 分野、優先度・担当・期限つき)と追加施策 60 項目(高 19 / 中 28 / 低 13)の策定、定期レビュー体系(週・月・四半期・半年・年)
- 案件をセキュリティレベルで 3 段階に分類し、社内エンジニア・営業・顧客の 3 段階でチェックする体制を設計
- 週 1 回のセキュリティ勉強会の運営
使用技術
- ISMS(ISO 27001)/ AWS(IAM, Secrets Manager, CloudTrail, GuardDuty)/ Trivy / gitleaks / pre-commit
セキュリティ実践ハンズオン教材の作成と講義(2026/05-2026/10)
参画時期
2026/05-2026/10
プロジェクトの種類
- 社内施策(若手・新卒向けの教材開発と講義)
担当工程
- 企画
- 設計
- コーディング(教材・参照実装・検証スクリプト)
- 講義
経験した職種・役割
- 教材作成者 / 講師
- インフラ / バックエンド
業務内容
AWS と Python / Flask で安全な Web アプリを構築・運用するところまでを一気通貫で学ぶ「セキュリティ実践ハンズオン教科書」(Chapter 0〜11)を作成し、社内で講義しました。
- 内容: AWS アカウント基盤(IAM Identity Center / SCP)、開発環境と認証(uv / pre-commit / gitleaks、argon2 / RBAC / IDOR 対策)、Web の脆弱性対策(SQLi / CSRF / CSP)、Secrets Manager、Sentry、AWS 構築(VPC / ALB / RDS / Config / Prowler)、コンテナ(ECR / ECS / Trivy)、GitHub Actions(OIDC)による CI/CD、Terraform(既存リソースを import して差分ゼロにしてから apply)、AWS 経験者向けの Google Cloud 読み替え(座学)
- 各章に参照実装(completed/)を用意し、受講者ごとにテンプレートリポジトリから作業用リポジトリを作る方式に変更
- 新卒向けセキュリティオンボーディング基盤の計画(セキュリティチェックシート 50 項目を、Flask の学習リポジトリと Terraform × Control Tower / IAM Identity Center / SCP / FIDO2 MFA / 個人 Sandbox アカウントの払い出しに対応づけ)
- 改定: GitHub Actions のデプロイロールを
PowerUserAccessから最小権限のインラインポリシーへ切り替えるスクリプト(冪等、IAM ポリシーシミュレーターで確認)、講義冒頭で実行する事前確認スクリプト(import 対象 38 リソースの ID を出力)、Terraform 講義(2 時間 × 2 回)の全面改定(README を 2,713 行から 1,575 行に整理、plan の差分ゼロまで検証)
使用技術
- Python / Flask / uv / pytest / Bandit / Ruff / mypy / pip-audit / gitleaks / pre-commit
- AWS: IAM Identity Center / SCP / Control Tower / VPC / ALB / RDS / ECS / ECR / Secrets Manager / Config / CloudTrail / Prowler
- Terraform(import、module 設計)/ GitHub Actions(OIDC)/ Trivy / Sentry / Docker
AI 支援開発の共通基盤の整備(2026/05-2026/10)
参画時期
2026/05-2026/10
プロジェクトの種類
- 社内施策(Claude Code / OpenAI Codex CLI の共通設定基盤)
担当工程
- 企画
- 設計
- コーディング
経験した職種・役割
- 開発基盤の設計・実装
業務内容
社内のエンジニアが Claude Code と Codex CLI を同じ行動規範・安全設定で使えるように、共通設定リポジトリを作成して配布しています。
- 会社共通の行動指針(AGENTS.md。agents.md 規約に準拠し、両ツールから読み込む)
permissions.denyによる安全設定(再帰的な削除、force push、クレデンシャルの読み書きの禁止)とモデル選択の個人設定化install.shで各自の環境へ反映する仕組み、Codex CLI 向けの連結方式
使用技術
- Claude Code / OpenAI Codex CLI / Shell Script / Git
AWS ガバナンス(Organization の棚卸しと切り出し計画)(2026/10〜現在)
参画時期
2026/10〜現在
プロジェクトの種類
- 社内施策(AWS Organization のガバナンス)
担当工程
- 企画
- 要件定義(棚卸し)
- 設計(切り出し計画)
- 運用/保守
経験した職種・役割
- インフラ / セキュリティ
業務内容
管理アカウントにワークロードが混在していた AWS Organization(11 アカウント、約 570 リソース)を読み取り専用で棚卸しし、所見 63 件とその対応方法、流行中の脆弱性の該当状況、GitHub リポジトリとの対応をまとめました。
- 管理アカウントを Organization の管理専用にし、ワークロードをメンバーアカウントへ切り出す計画(324 件を「移す/消す/要確認」に分類、目標の姿、アカウントの作り方、移し方、スケジュール、ワークロードごとの担当確認)
- CloudTrail / GuardDuty を組織で一括して有効化する手順と、実測にもとづく月額の見積もり
- 不要な IAM ユーザーの全削除と仮想 MFA デバイスの整理(削除前に控えを取り、CloudTrail で削除を確認)、Route53 ホストゾーンや SES ID の整理
- 週次でコストを Slack に流す仕組みの設計、AI エージェントに AWS のスキルと MCP サーバーを導入する手順
- 資料は Markdown を正として HTML を自動生成し、Claude Code のフック(AWS を変更するコマンドの確認・拒否)とスキル(削除前の控え、対応状況の記録)を整備
使用技術
- AWS: Organizations / IAM / IAM Identity Center / CloudTrail / GuardDuty / Budgets / Route53 / SES / AWS CLI(SSO、ReadOnlyAccess で引き受けるロール)
- Python / Claude Code(hooks / skills / agents)
その他の社内施策
- AWS コスト管理: 意図しない課金への対策(Budgets・請求アラーム)の社内勉強会(2024/05)。AWS Budgets の予算超過を SNS → AWS Chatbot で Slack に通知する仕組みを CloudFormation で構築(2025/04)
- プロジェクトテンプレートのレビュー(2026/06-2026/07): 受託案件の立ち上げ用テンプレート(Next.js + Go〈sqlc / sqldef / OpenAPI / depguard〉+ Terraform〈環境 × モジュール、bootstrap、ドリフト検知〉)の PR(201 ファイル)について、構成と Terraform の評価を実施
- 社内勉強会(2026/05): React / Next.js / Go で TODO アプリを 4 段階で作り直すチュートリアルの企画
- 技術調査: 社内ツール(タワーディフェンスゲーム)への P2P 画面共有機能の試作(2025/11)
- 教材への還元: Cloud Pratica(AWS / Terraform / CI/CD の実践スクール)で学んだ内容をセキュリティ実践ハンズオン教材に反映(C 層を参照)
B. フリーランス案件(2020/04〜2024/03 は専業、2026 年は CTO 業務と並行)
清掃会社コーポレートサイトの制作と SEO(2026/01-2026/09、フリーランス案件)
参画時期
2026/01-2026/09(フリーランスエンジニアとして受託。現職の CTO 業務と並行)
プロジェクトの種類
- Web サイト(清掃・設備メンテナンス会社のコーポレートサイト)
- 受託開発(制作から SEO 改善まで一人で担当)
担当工程
- 企画(SEO 計画)
- 設計
- コーディング
- 運用/保守(ホスティング移行・計測)
経験した職種・役割
- フロントエンド
- インフラ(ホスティング)
- SEO
業務内容
清掃・設備メンテナンス会社のコーポレートサイトを制作し、公開後の SEO 改善と運用まで担当しました。
- Google AI Studio で作成した静的サイトを React 19 + React Router v7(framework mode・prerender による SSG)+ Vite 6 + Tailwind CSS 4 へ移行
- SEO: HashRouter で全ページが 1 つの URL になっていた問題の解消、robots / sitemap の整備、URL 正規化、Before / After の実画像・alt・遅延読み込み、独自ドメインの設定、検索流入の原因分析
- ホスティングを Cloudflare Pages から Netlify へ移行。Google Search Console の MCP サーバーと Claude Code のスキルを導入して分析を自動化
- 訴求を清掃中心から設備メンテナンス中心へ変更する改修、復旧手順書と 40 タスクの SEO 計画の整備
使用技術
- React 19 / React Router v7 / Vite 6 / TypeScript / Tailwind CSS 4 / Netlify / Cloudflare Pages / Google Search Console / Google AI Studio / Claude Code(MCP・Skills)
AI ライター(書籍原稿生成)プロトタイプの開発(2023/10-2023/11、現職からの業務委託案件)
参画時期
2023/10-2023/11
プロジェクトの種類
- Web サービス(AI で書籍のタイトル・章立て・本文を生成するサービスのプロトタイプ)
- 現職からの業務委託案件(0 → 1)
担当工程
- 要件定義
- 設計(DB 設計の方針)
- コーディング(初期基盤)
- 運用/保守(リリース)
経験した職種・役割
- PM(Issue 設計、タスク分担、納期交渉)
- バックエンド / インフラ
業務内容
Rails 7 API + Next.js 13 + MySQL のプロトタイプを 0 から立ち上げました。リポジトリの作成と初期基盤(Docker、認証、API の骨格。約 7,400 行)、Issue の設計とメンバーへの分担、納期交渉、DB 設計の方針決定、リリースマージを担当しました。生成 API(OpenAI API、Cloud Functions)はデータサイエンス担当のメンバーと連携しました。
使用技術
- Ruby on Rails 7.0 / devise_token_auth / ruby-openai / ActionCable / Next.js 13 / TypeScript / Tailwind CSS / MySQL / Docker / AWS Copilot(ECS Fargate, Amplify, RDS, ALB, ECR)/ OpenAI API / GCP Cloud Functions
Instagram 自動返信 SaaS の OEM 提供先向け UI 改修・ダッシュボード開発(PM 兼務)(2023/09-2024/03、現職からの業務委託案件)
参画時期
2023/09-2024/03
プロジェクトの種類
- Web サービス(Instagram 自動返信 SaaS の OEM 提供先向けカスタマイズ)
- 現職からの業務委託案件
担当工程
- 要件定義(見積もり)
- 設計
- コーディング
- テスト
経験した職種・役割
- PM(共同)
- バックエンド
- フロントエンド
業務内容
Instagram 自動返信 SaaS の OEM 提供先向け UI 改修を、PM 兼実装者として担当しました。CTO 就任前の最後の業務委託案件で、マネジメント業務を先行して担っています。
- Figma の 13 セクションに分かれた改修について、セクション単位で工数を見積もり(マークアップ・API 接続・バッファ・難易度・仕様の不透明さを評価)
- OEM 提供先専用のデザインと共通ロジックの切り分け方針を決定
- Google SSO(Devise + omniauth。提供先アカウントだけ有効化)の準備、新メンバーのオンボーディング
- ダッシュボードの開発(配信数グラフ、ランキング API)、パッケージ・ラベル・自動返信一覧のソート・検索・期間指定、ランキング取得期間のバグ修正
使用技術
- Ruby on Rails 6.1 / Sidekiq / Aurora MySQL / Next.js / TypeScript / Tailwind CSS / Devise / omniauth / AWS Copilot(ECS Fargate)
Shopifyを使用したRails x Next.jsの開発(2023/08、現職からの業務委託案件)
参画時期
2023/08(約 2 週間)
プロジェクトの種類
- Web サービス(LINE 上で完結する D2C ストア)
- 現職からの業務委託案件(炎上プロジェクトの緊急支援として参画、解決後に離脱)
担当工程
- 設計
- コーディング
経験した職種・役割
- バックエンド
業務内容
- Shopifyを使用したRailsバックエンドの開発
炎上状態にあった Shopify 連携プロジェクトへ緊急参加し、Rails 7(Ruby 3.1)と Next.js 13 を用いたバックエンド/API を設計・実装して決済や在庫同期などの主要機能を安定化させ、
コード最適化とレビュー体制の整備によりパフォーマンスと品質を向上させた結果、当初遅延していたリリースを予定どおりの納期に乗せました。
- Stripe の定期購入 Webhook(
invoice.paid/payment_failed)を受け、メタデータの注文 ID をもとに Shopify に注文を作成。2 回目以降の決済、在庫不足時の処理、割引が反映されない不具合の修正 - 重複イベントを二重処理しないための冪等化(イベントログテーブル)と失敗時の処理
- LINE への通知メッセージ
使用技術
- 使用言語・FW・MW・ツール等: Rails 7.0.4 / Ruby 3.1.2 / MySQL 8.0.27 / Redis 6.2.5 / Swagger / Node 18.13.0 / Next.js 13.1.6 / Stripe API / Shopify API / LINE Messaging API / AWS Copilot
画像生成 AI の Web サービスのバックエンド・インフラ開発(2023/05-2023/07、現職からの業務委託案件)
参画時期
2023/05-2023/07
プロジェクトの種類
- Web サービス
- 現職からの業務委託案件(PLとして0→1サービスを2ヶ月で構築・リリース・納品)
担当工程
- 設計
- コーディング
- テスト
- 運用/保守
経験した職種・役割
- フロントエンド
- バックエンド
- インフラ(メインで担当)
業務内容
- 画像生成 AI の Web サービスのインフラ開発
画像生成 AI Webサービスのインフラ開発を担当し、Rails 7でバックエンド、Next.js 13でフロントエンドを構築したうえで、他メンバーが構築した Stable Diffusion の画像生成 API(SageMaker Runtime 経由で呼び出し)を組み込み、0 => 1 でシステムを設計・実装・運用しました。
プロジェクトマネージャとして全工程を統括し、GitHub ActionsとRSpecによるCI/CDパイプラインを整備。加えて、ECS FargateをSSM Session Manager経由で安全に操作できる基盤を構築し、個人情報はCognitoに集約して情報セキュリティを強化しました。
- Rails API・Next.js・MySQL の Docker 基盤、Postman コレクション、ヘルスチェック
- AWS(us-east-1)に VPC / RDS / S3 / CloudFront / ALB / ECR / ECS Fargate / Amplify / Route53 / ACM / NAT Gateway / 踏み台を構築し、SES の本番利用を申請
- CodePipeline / CodeBuild による自動デプロイ(ECR のタグ規則で切り戻し可能に、Docker Hub のレート制限対策、ビルド時の DB マイグレーション)、Fargate のオートスケール、nginx と Puma のチューニング、Dockerfile の軽量化
- Cognito 認証(@aws-amplify/auth への移行、管理画面のトークン認証、サインアップ時のグループ付与、時刻ずれ不具合の修正、環境変数の秘匿)
- Stripe による 3 段階の課金プラン(プラン変更時に旧サブスクリプションを解約)
- Sentry の導入
使用技術
- 使用言語・FW・MW・ツール等: Rails 7 / Next.js 13 / MySQL / Docker / docker-compose / GitHub Actions / Tailwind CSS / nginx / Stable Diffusion / Stripe Webhook / Sentry / AWS(VPC、Route53、ACM、RDS、S3、CloudFront、ALB、ECR、ECS(Fargate)、ECS Exec、SES、SSM、Amplify、Cognito、CodePipeline、CodeBuild、SageMaker Runtime)
大規模建設ベンダー向けシステムの開発(2023/04-2023/12、エージェント経由の業務委託案件)
参画時期
2023/04-2023/12
プロジェクトの種類
- Web サービス
- 業務システム
- フリーランスエージェント経由の業務委託案件
担当工程
- 設計
- コーディング
- テスト
- 運用/保守
経験した職種・役割
- フロントエンド
- バックエンド
- インフラ
業務内容
- 大規模建設ベンダー向けシステムの開発
DDD(ドメイン駆動設計)を採用した Rails 6 マイクロサービスの新規開発と機能追加を主導し、外部サービス連携用の REST API を設計・実装して OAuth 2 認証基盤を構築したほか、ECS Fargate と ALB によるブルーグリーン/カナリアリリース基盤を整備してデプロイ失敗率を抑制し、CircleCI と AWS CodePipeline を用いた CI/CD を構築するとともに、New Relic と AWS CloudWatch によるメトリクスおよびログ監視体制を確立しました。
使用技術
- 使用言語・FW・MW・ツール等: Rails 6 / GitHub Actions / CircleCI / NewRelic / AWS(CodePipeline、ECS、Fargate、Fargate Spot)
Instagram 自動返信 SaaS の機能開発(2023/03-2023/05、現職からの業務委託案件)
参画時期
2023/03-2023/05(この SaaS には 2023/09〜2024/03、2024/03〜2025/08 にも参画)
プロジェクトの種類
- Web サービス
- 現職からの業務委託案件(RAGチャット機能の開発完了で終了)
担当工程
- コーディング
経験した職種・役割
- フロントエンド
- バックエンド
業務内容
- Instagram 自動返信 SaaS(顧客エンゲージメント向上用チャットボット)の機能開発
RailsとChatGPT APIを使用したチャットボットの開発を行いました。
チャットボットの開発ではRails Turbo Streamsを使用し、WebSocket 不要のリアルタイム通信を実装しました。
あわせて Issue 単位で、代理店向け機能(代理店ごとの利用規約 URL、メールでの検索、要承認の絞り込み、停止中アカウントのログイン制御)、Safari での不具合、トライアル終了のポップアップ、CSV・ページネーション・アンケート詳細のエラー、レスポンシブ対応を担当しました。
使用技術
- 使用言語・FW・MW・ツール等: Rails 6 / GitHub Actions
海外インフルエンサーメンタリング Web サイトの認証機能の実装(2022/12、現職からの業務委託案件)
プロジェクト概要
upwork(海外のクラウドソーシングサービス)から Rails で認証機能(SMS を利用した 2 段階認証など)の実装を行いました。
参画時期
2022/12 中旬(約 2 週間)
プロジェクトの種類
- Web サービス
- 現職からの業務委託案件(Upwork経由、スコープ限定の認証機能実装・納品)
担当工程
- 設計
- コーディング
経験した職種・役割
- フロントエンド
- バックエンド
業務内容
- 海外インフルエンサーメンタリング Web サイトの認証機能の実装
成果・学んだ点・工夫したこと
プロジェクトの現状
無事求められていた認証機能を納品しました。
習得スキル
- 海外事業者との折衝経験
英語での折衝経験
コミュニケーションはすべて英語(チャットのみ)だったので普段よりコミュニケーションに苦戦しました。
また、英語でのビジネス文章を作成した経験はなかったので勉強になりました。
使用技術
- 使用言語・FW・MW・ツール等: Ruby 2 / Rails 6 / Heroku / Twilio (SMS 送信用)
オンライン音楽レッスン Web アプリの機能開発(2022/08-2023/08、現職からの業務委託案件)
参画時期
2022/08-2023/08(開発は 2023/04 まで。2023/05〜08 は追加機能の見積もりと後任への引き継ぎ)
プロジェクトの種類
- Web サービス
- 現職からの業務委託案件
担当工程
- 設計
- コーディング
- テスト
- 見積もり・引き継ぎ
経験した職種・役割
- バックエンド
- フロントエンド
- IoT(Raspberry Pi)
業務内容
- オンライン音楽レッスン Web アプリの機能開発
Ruby on Rails, Nuxt.js を使用したオンライン音楽レッスン Web アプリの開発に従事しました。
バックエンド、フロントエンドを中心に新規・既存機能開発を担当しました。
- オンラインレッスン画面のレイアウト改修(通常/全画面/均等の 3 モード × 参加人数別、最大 15 人表示、スマホ縦向き対応。PC 版だけで 24 パターンの検証表を作成)
- Raspberry Pi + Kinesis Video Streams による録画・配信システム(詳細はこの節の「成果・学んだ点・工夫したこと」)
- 監視スタッフがカメラ・マイクを切った状態でレッスンに入室する「サイレント参加」の仕様検討(WebRTC / SFU)と見積もり
- 売上管理機能の引き継ぎ、講師・生徒がカメラ映像を閲覧できる機能と新サイトの SP 版デザイン実装の見積もり、後任メンバーへの環境構築の引き継ぎ
成果・学んだ点・工夫したこと
習得スキル
- Rails で API サーバを作成する知見
- Nuxt.js での開発スキル
- RaspberryPi と AWS Kinesis Video Streams を使用した録画システムの構築
オンラインレッスン画面のスタイル修正
- 背景
WebRTC を使用した音楽レッスン用のオンライン通話ページのスタイルが未実装だったものを Google Meet 風にスタイリングしました。
- 実装
Nuxt.js での開発は初めてだったのと、既存のコンポーネント(1 コンポーネント 2000 行オーバー)が巨大だったため仕様理解に時間を要しました。
レッスン入室者が増えるごとに動的にスタイルを変更する必要があったため、
SCSS の mixin, extend など機能をフルに活用するなどキャッチアップに務めました。
また、PC 対応のみでなくタブレット対応、スマホ対応、Safari 対応、Google Chrome 対応の必要もあったため、UI テストに苦慮しました。
レッスンライブ配信・録画用のシステムを RaspberryPi、AWS Kinesis Video Streams を使用して構築
- 背景
音楽レッスンのライブ配信、アーカイブ録画用に Raspberry Pi、AWS Kinesis Video Streams(以下 KVS)を使用して実装を行いました。
- 実装
KVS にライブ配信をするために GStreamer を Raspberry Pi にセットアップしました。
バックエンドから KVS に API を叩き、動画を取得してフロントエンドに送信して動画を視聴 or ダウンロードできるよう実装しました。
Rails API で視聴期限付きの HLS ライブ URL とアーカイブ URL を発行し、Vue(video.js)でライブとアーカイブを切り替えて表示しています。一時ファイルは rake タスクと cron で削除し、Raspberry Pi が起動直後に落ちる問題は起動時の待機処理で解消しました。
- 苦労したこと 1
バックエンド側で動画をダウンロードする実装をする際に、60 分の MP4 を KVS から取得する必要があったのですが、
一回の API では 9 分前後しか動画を取得できない仕様だったため、
バックエンド側で 60 分の動画にするよう FFmpeg を使用し MP4 を結合する必要があったため苦慮しました。
- 苦労したこと 2
バックエンドからフロントエンドに動画を送信する際に Rails の send_file メソッドを使用し、
その後動画を削除しようとすると send_file メソッドが非同期で動作しているため
動画の送信中にデータが削除されてしまう不具合が発生してしまいました。
結果的に send_file メソッドをラップして同期的に動作するようにして対処しました。
使用技術
- 使用言語・FW など: Ruby 3.0.3 / Ruby on Rails 6 / JavaScript ES6 / Nuxt.js 4 / Vue.js 2 / SCSS / WebRTC(SkyWay) / video.js / AWS Kinesis Video Streams / Raspberry Pi(Raspbian) / GStreamer / FFmpeg
- DB: PostgreSQL
不動産 VR 内覧システムの開発(2022/06-2023/02、2023/09-2023/10、エージェント経由の業務委託案件)
参画時期
2022/06-2023/02(2023/09-2023/10 に追加改修で再参画)
プロジェクトの種類
- Web サービス
- 自社プロダクト
担当工程
- 要件定義
- 設計
- コーディング
- テスト
経験した職種・役割
- バックエンド
- フロントエンド
- インフラ
- QA
- UX
業務内容
- 不動産物件内覧オンラインプラットフォームの開発
Go, Next.js, AWS(サーバレス構成)を主に使用した不動産物件内覧オンラインプラットフォームの開発に従事しました。
バックエンド、インフラを中心にフロントエンドまでフルスタックに新規・既存機能開発から品質保証まで幅広く担当しました。
また、0 => 1 フェーズで開発されたプロダクトの初期開発からリリースまで担当しました。
また、ペアプログラミングを行い開発チーム内でのコミュニケーション、
スキルアップの促進し、開発の見通しを良くし、開発チーム全体のスケールアップに務めました。
社内管理画面(Go + Gin、Lambda + API Gateway)の主担当として、次の機能を開発しました。
- 帳票: 直販・代理店の請求レポートと支払レポート、全件 CSV 出力(Windows-31J)、消費税計算、内訳モーダル。データマート側(Rails)の集計バッチと Slack 通知
- 組織・グループ・プランの契約管理(作成・編集・解約・一括変更、オーナーと請求担当の変更、論理削除)、大手住宅メーカー向けのカスタムプラン設計
- 代理店機能: 代理店 CRUD、招待メールからの Cognito ユーザー発行(仮パスワード)、Cognito Hosted UI でのログイン、SMS 送信上限の緩和申請
- QuickSight のレポート埋め込み、グローバルユーザー管理、GA4 のイベント計測、セッション寿命の見直し
- プラットフォーム API へのバルクユーザー作成 API、3D 内覧データ系 API の改修、フロントの不具合修正(複数組織所属時の組織保持など)
- 運用: ステージング・本番環境の構築、定期リリースのリリース責任者、QA 計画とシナリオテストの雛形作成、ユニットテストのカバレッジ目標(9 割)への取り組み、開発環境整備(air / delve の導入、Go html/template 向け Prettier)、社内 Wiki の執筆(18 件)
- 追加改修(2023/09-2023/10): 代理店でログインした際に他代理店の明細が見える認可の不具合、支払い明細の CSV・検索の不具合を修正
成果・学んだ点・工夫したこと
習得スキル
- サーバレス構成で Go を中心としたサービスをリリースする知見
Go 認証基盤の作成
- 背景
Go で不動産物件内覧オンラインプラットフォームの社内管理画面を 0 => 1 で作成する際に
Cognito を軸とした認証基盤を作成しました。
- 実装
Cognito HostedUI を使用して Google の SAML 認証を利用して SSO できるよう実装しました。
また、バックエンド側でセッション管理用のミドルウェアを作成し、
SAML 認証後に Cognito から認証トークンを取得してログインできるよう実装しました。
- 苦労したこと
SAML 認証後に認証用のクエリパラメータを取得できずログインできない不具合に悩まされました。
CloudFront のビヘイビアの設定でクエリパラメータの許可設定が抜けていることが原因でしたが、
原因を探るのに苦戦しました。
QA バグ、UX 改善
- 背景
プロダクトのリリース前、リリース後に QA(品質保証)を行いました。
- やったこと・苦労したこと
QA の観点の作成に苦労しました。
単体テストの項目作成からシナリオテストの作成まで行いました。
ユースケース・観点に抜け漏れがないか QA に詳しいエンジニアと折衝しました。
インフラ セキュリティ対応
- 背景
サーバレスのプロダクトの構成が Route53 => CloudFront => API Gateway => Lambda という構成となっていて、
ユーザにアクセスさせる際には必ず CloudFront を経由してほしいが、
API Gateway の URL に直アクセスすることが可能となっていたのでセキュリティ対策を行いました。
- 実装
CloudFront の Header にカスタムヘッダー x-api-key を付与し、Lambda 関数を呼び出す際に x-api-key がなければアクセスさせないようにしました。
(API Gateway で REST API を使用していればよりシンプルに実装できましたが、運用費用が 2、3 倍になるため HTTP API を使用しました。)
また、CloudFront に WAF(WebACL)を適用し、API Gateway のデフォルトエンドポイントを無効化し、Sentry のエラーを Slack に通知するなどセキュリティと運用の向上に務めました。
GitHub Actions の CI から SonarCloud にカバレッジレポートを連携
- 背景
社内でテストのカバレッジを高める目標があり、
その一環で CI から SonarCloud にテストのカバレッジレポートを連携しました。
- 実装
GitHub Actions の Workflow 内で go test を行う際にテスト用の DB に接続するのですが、
テスト用の DB は AWS のパブリックサブネット内にあり、踏み台サーバを経由して接続する必要がありました。
そのため Workflow 内でポートフォワーディングする必要がありましたが、踏み台サーバ接続時に AWS SSM Session Manager も使用する必要があり、
接続用のコマンドを作成するのに苦慮しました。
使用技術
- 使用言語・FW など: Go 言語 1.18 / gin / GORM / Ruby 2.7.5 / Ruby on Rails 6 / RSpec / TypeScript / React.js 11 / Next.js 6 / styled-components / Docker / Prettier / GitHub Actions / Sentry / SonarCloud / goblin(RSpec ライクな Go のテスト用ライブラリ) / gocsv / Swagger / OWASP ZAP / air / delve
- DB: PostgreSQL / AWS DynamoDB
- AWS: Lambda / CloudFront / API Gateway / Route53 / EventBridge / Cognito / S3 / Systems Manager / Session Manager / Fargate / ECS / WAF / CloudWatch / SNS(SMS) / CodePipeline / Step Functions / QuickSight
清掃業者向け BtoB アプリの開発(2022/02-2022/05)
プロジェクト概要
前職で関わりのあった清掃事業者の方の要望で本アプリを作成しました。
現状では顧客とのやり取りを LINE やメールで行っているが、専用のアプリを介して顧客とコミュニケーションを取りたいとの要望で本アプリの開発に至りました。
参画時期
2022/02-2022/05
プロジェクトの種類
- Web サービス
- 業務システム
- 受託開発
担当工程
- 企画
- 要件定義
- 設計
- コーディング
- テスト
- 運用/保守
経験した職種・役割
- バックエンド
- フロントエンド
- インフラ
- ネットワーク
- UX/企画
- デザイン
業務内容
- Go 言語(Echo)、React を使用した清掃事業者向け BtoB アプリの開発
成果・学んだ点・工夫したこと
プロジェクトの現状
清掃の定期メンテナンスの日程調整機能、現地調査結果報告機能、作業報告機能などを作成しました。
習得スキル
- Go(Echo)、React, OAuth(Firebase Auth)を使用した開発経験
- OAuth(Firebase Auth)を使用した認証機能の実装
- SPA アプリケーション開発の知見
OAuth の導入
OAuth(Firebase Auth)を使用した JWT 認証での実装を行いました。
実装する上で React と Go(Echo)を介した JWT 認証を行うリファレンスマニュアルや参考記事があまり見つからず苦労しましたが、
Echo や Firebase Auth の公式ドキュメントを参考にサンプルアプリを作成し JWT 認証の流れをデバッグしながら学習することでキャッチアップに成功しました。
使用技術
- 使用言語: Go 言語 1.17.6 / JavaScript ES6
- DB: MySQL 8.0.28
- サーバ OS: Amazon Linux 2
- FW・MW・ツール等: Echo 4.7.2 / GORM 1.23.4 / React 18.0.0 / Material-UI 5.5.3 / Firebase Auth / Git / GitHub / AWS(VPC,EC2,Route53,ACM,ALB,IAM,RDS) / Visual Studio Code / Vim
IT 系オンラインサロンでのメンター(プログラミング講師)業務(2021/03-2022/04)
参画時期
2021/03-2022/04
業務内容
- IT 系オンラインサロンでのメンター(プログラミング講師)を経験
成果・学んだ点・工夫したこと
コメント
Ruby on Rails を基本としたバックエンド領域を中心に、
フロントエンド、インフラ(Docker、AWS)まで指導しました。
- 初学者の方が行き詰まった場合は、ただ解決方法を教えるだけでなく、
なるべく自分の力で問題を解決できるように問題解決のヒントを小出しにするなど工夫しました。
- Rails 初学者の方のポートフォリオ作成をビデオメンタリングで指導していた際、
Docker 上で動かしていた Rails のログが出なくなる出来事がありました。
当初は原因がわからず指導に苦戦しましたが、海外のフォーラムを探したところ、
Ruby のバージョンによっては Rails ログが出ない場合があるという記載の記事を見つけられました。
記事の通り設定を変更することでログ出力できるよう無事修正でき、
他人の開発環境で不具合があっても修正できるという自信をつけることができました。
化粧品メーカー向け営業支援 ERP パッケージの開発(2021/02-2022/02、エージェント経由の業務委託案件)
参画時期
2021/02-2022/02(2022/07 に開発環境の再構築と機能追加の見積もりをスポットで対応)
プロジェクトの種類
- Web サービス
- 業務システム
- 自社プロダクト
- パッケージ開発
担当工程
- 企画
- 要件定義
- 設計
- コーディング
- テスト
- 運用/保守
経験した職種・役割
- フロントエンド
- バックエンド
- インフラ
- ネットワーク
- UX/企画
- デザイン
業務内容
- 化粧品メーカー向け営業支援 Web-ERP パッケージの新規機能開発及び既存機能改修案件を担当
- 化粧品メーカーのお客様向け toC アプリの新規機能開発、改修及びセキュリティ対策を実装
Ruby on Rails で構築された大規模システムにバックエンド領域、
フロントエンド領域からインフラ領域までフルスタックに担当し、
新規機能の追加、既存機能の改修を行いました。
既存機能の改修ではクラス、メソッドの設計から見直し、密結合のクラスを疎結合に分割するなどアンチパターンの解消に務めました。
また上流工程から携わり、社内の非 IT 部門の方と折衝して要件定義、設計までも担当しました。
非エンジニアの方にも要件、実装について理解して頂くよう抽象化した説明を心掛けました。
セキュリティ対策の実装にも関わり、OS 層からミドルウェア層、
アプリケーション層までのセキュリティ対策を担当しました。
具体的な例ではログイン認証機能用の 2 段階認証機能、外部攻撃のモニター機能をフルスクラッチで開発したり、
パッケージや gem の脆弱性の解消に務めました。
担当した主な機能・作業:
- ERP: 売上登録依頼(一覧・新規・検索・承認フロー・添付・明細)、注文請書の新規作成、新商品明細と工程管理の改善(複数試験の一括依頼と希望期日の自動計算、承認者と完了者の分離、版下承認、Slack 通知の拡大、Excel 出力)、受注・受注変更・見積の改修、資材マスタ・顧客マスタ・ブランド管理、クレーム管理(Slack 共有)、試作依頼
- toC アプリ: メール送信ログの記録、6 桁メールコードによる二段階認証、ログイン試行回数の検知(cron)、権限昇格(IDOR)対策
- インフラ: BCP と DB 文字コード変更の検証のためテストサーバへ環境を再構築(CentOS 6 の制約を確認し CentOS 7 / Docker で作り直し)、CentOS 7 の構築手順書と Ansible playbook(約 1 時間で構築)、Rocky Linux 8 版の構築手順書、SSL 証明書の更新、生産管理システム(VB.NET)との連携方式の検討
成果・学んだ点・工夫したこと
習得スキル
- Ruby on Rails を中心としたフレームワークの理解
- Linux、Apache を始めとしたインフラ面の理解(主にセキュリティ対策の知見)
セキュアなアプリ実装
Rails アプリ、Web サーバ、OS の脆弱性対応を行いました。
- 背景
toC 向けの Rails アプリで利用者様のメールアドレスが乗っ取られて不正利用されてしまう出来事があり、アプリ側の不具合はありませんでしたが不正利用防止のためセキュリティ対策を行うこととなりました。
- Rails アプリ側
2 要素認証機能、ログインユーザの動向を記録するモニター機能を作成しました
- OS、Web サーバ側
CentOS 側ではパッケージに脆弱性があれば対応し SSH ポート番号の変更や Firewall の設定を見直しました。
Apache 側では SSL の脆弱性の改良のための設定変更を行いました
CentOS から Rocky Linux への移行
Rails アプリが稼働している CentOS7 サーバのサポート期限が近づいたため Rocky Linux に環境を移行しました。
- 背景
CentOS Project が CentOS の開発・サポートを取りやめると発表したことに伴い、他の OS に環境を移行することとなりました。
どの OS に移行するか検討したところ、RHEL と 100%の互換性をもつ Rocky Linux に移行することとなりました。
- 実装
Rocky Linux では初期状態で入っている OpenSSL などのパッケージのバージョンが CentOS7 より高く、その影響で Rails アプリの環境構築ができないトラブルがありましたが、古いパッケージのソースを make install してバージョンダウンすることで対応できました。
そのほか cron の設定やシェルスクリプトなど必要なものの移行まで無事に対応できました。
業務の自動化
業務自動化用の Python アプリを作成しました。
- 背景
自社でネットワーク工事があり、工事後に通信速度に問題がないか手動でネットワーク速度を計測する作業を複数社員で行っていました。
業務の合間に手動で作業するのは非効率なので、作業を自動化するソフトを作成させて頂けるか提案したところタスクを任せていただけました。
- 実装
Python、Selenium、BeautifulSoup で実装を行うことになり、自動でネットワーク速度を記録し自社ファイルサーバに CSV を保存するアプリを作成できました(PyInstaller で exe 化して配布)。
Rails スキルの向上
本案件に携わる前に Rails の案件を 2 つ経験しましたが、どちらもアプリの規模としては小規模のものでした。
本案件の Rails アプリは Controller の数だけで 100 以上あり、これまで関わった中でもっとも大規模な Rails 案件に携わることとなりました。
Rails のバージョンはやや古いものの、実運用されている規模の大きい Rails アプリの案件に携われたことにより、
Rails を始めとしたバックエンドのコードの書き方、セキュアな実装方法についてスキルアップできたものと思います。
使用技術
- 使用言語: Ruby 2.2.6 / Python 3.9.7 / HTML5 / CSS3 / JavaScript / shell script
- DB: PostgreSQL 9.4.19
- サーバ OS: CentOS 7.9 / Rocky Linux 8.5
- FW・MW・ツール等: Ruby on Rails 3.2.22 / jQuery 1.7.1 / Tailwind CSS 2.0 / Ansible 2.12.1 / Apache 2.2.15 / nginx 1.20.1 / Phusion Passenger 5.0.26 / Unicorn 6.0.0 / wicked_pdf / Selenium / BeautifulSoup / PyInstaller / Git / GitHub / Slack API / Visual Studio Code / Vim / Docker 20.10.10 / Vagrant / Google Apps Script / OpenSSL
コーポレートサイトの作成、サイト内の勤怠管理システムの構築(2020/09-2020/10)
参画時期
2020/09-2020/10
プロジェクトの種類
- Web サービス
- 受託開発
担当工程
- 企画
- 要件定義
- 設計
- コーディング
- テスト
- 運用/保守
経験した職種・役割
- フロントエンド
- バックエンド
- インフラ
- ネットワーク
業務内容
- コーポレートサイトの作成
- サイト内に社員用の勤怠管理システムを作成
提案からデザイン、ロゴデザイン、文章作成、コーディング、
実装まで 1 人で担当しました。
モックアップを作成したらクライアント様にお見せし、実装を行うという手順で開発を進め、
ご満足いただける品質のアプリケーションを納品することができました。
成果・学んだ点・工夫したこと
顧客折衝
クライアント様の要望通りのプロダクトを作成するため、
まずはクライアント様の要望をヒヤリングし完成イメージのモックアップを STUDIO で作成しました。
必要な機能要件を実現するためモックアップをお見せしつつ要望をヒヤリングするなど工夫しました。
納期の見積り
納期が 2 ヶ月ほどでしたので、納期通りにプロジェクトを進められるよう工夫しました。
はじめの 1 週間はモックアップの作成に割き、そこから 3 週間でプロトタイプを作成することで、
1 ヶ月でアプリの大枠を作成しました。
残りの納期で追加のご要望やテストに着手し、無事納期までにプロダクトを納品することができました。
使用技術
- 使用言語: Ruby 2.7.1 / HTML5 / CSS3 / JavaScript ES6
- DB: MySQL 8.1
- サーバ OS: Amazon Linux 2
- FW・MW・ツール等: Ruby on Rails 6.0.3.2 / Bootstrap3 / jQuery 3.5.1 / nginx 1.16 / unicorn / Git / GitHub / AWS(VPC,EC2,Route53,ACM,ALB,IAM,RDS) / Docker / Docker-compose / CircleCI / RSpec / Visual Studio Code / STUDIO / GIMP-2.10 / Vim
コンビニ事業者向けシフトアプリの開発(2020/04-2024/07)
プロジェクト概要
前職で関わりのあったコンビニ経営者の方からのご要望でシフトアプリを作成しました。
アプリ導入前のシフト表作成では店長がアルバイトの方から LINE、メールで希望シフトを聞き Excel に手作業で落とし込むという非効率なものとなっており、
シフト希望の収集から勤怠の調整まですべてサポートするアプリを作成することでシフト作成業務に割く時間を軽減しました。
シフトの収集・一覧・作成・調整を行う画面の UI/UX を工夫し、
店長ユーザ、アルバイトユーザ両者から使いやすいとご評価いただけるアプリを作成できました。
参画時期
2020/04-2024/07
プロジェクトの種類
- Web サービス
- 業務システム
- 受託開発
担当工程
- 企画
- 要件定義
- 設計
- コーディング
- テスト
- 運用/保守
経験した職種・役割
- バックエンド
- フロントエンド
- インフラ
- ネットワーク
- UX/企画
- デザイン
業務内容
- Rails、AWS を使用したコンビニ向けシフトアプリの製造
成果・学んだ点・工夫したこと
プロジェクトの現状
1 年ほど運用し約 100 名のユーザ様に使用して頂いたところご好評を頂け、
その後も利用者拡大に向けた開発を続けました(2024/07 に非公開化)。
習得スキル
- Ruby on Rails を中心としたフレームワークの理解
- Ruby、Docker、RSpec を使用した開発経験
- Git、Github を使用したバージョン管理システムの理解
- CircleCI を使用した CI/CD の理解
- AWS を利用した Web アプリケーションの構築
- AWS ECS を使用した Docker コンテナからクラスター、インスタンスを構築する知見
プロトタイプの作成
これまでエンジニアとして経験していた、「大規模プロジェクトに途中から参画して開発に携わる」というものとは違い、
1 からアプリケーションを企画、要件定義、設計、実装を行うプロジェクトとなりましたので、プロジェクト始動時にはなにから行うべきか苦慮しました。
特に、モックアップの作成、設計の段階がスムーズに行かず苦労しました。
当初はなかなか UI/UX の良いデザインが出来上がらず、依頼者のコンビニオーナー様や店長、アルバイトの方と折衝を繰り返しながらモックアップ、プロトタイプを作成しました。
納得いただける形になるまで作成を繰り返した結果、現在ご好評を頂いている UI/UX を実現できました。
1 からの学習とエラー解決
本案権では Web 開発、オブジェクト指向言語、Docker、AWS、CI/CD など多くの技術を扱いましたが、
いずれも前職の SIer 時代に経験がない技術ばかりで、1 からのキャッチアップとなり習得に苦労しました。
わからないことがあれば技術記事やリファレンスマニュアルを参考にしておりましたが、
エラー解決の際に日本語の記事が見つからないことも多く、StackOverflow などの英語記事を漁ることになるなどエラー解決に工数を割くことも多く苦労しました。
SIer の業務で英語のリファレンスマニュアルに慣れていたこともあり、英語記事に抵抗がなかったことは幸を奏しました。
また、バックエンドの開発経験があったこともあり、Ruby、Rails の実装に慣れるまであまり時間はかかりませんでした。
設計の大規模改修
アプリの設計部分から大掛かりなリファクタリングを行いました。
アジャイル開発のようなスタイルでプロトタイプを作っては依頼者に見せるという形で開発を進めていましたが、
あるとき要望の機能を実装しようとした際に既存の設計では実装がしづらいことに気が付きました。
そのときにはアプリの 8 割ほどは完成していたのですが、データベースの設計のし直しは必須だと思い、1 からリファクタリングすることになりました。
工数はかかってしまいましたがコードが読みやすく、機能追加しやすい設計のアプリを作成することができました。
ライブラリのラッパーの作成
使用していたライブラリで細かい挙動を実装できなかったためラッパーを作成しました。
本アプリでは認証機能に devise という Ruby gem を使用していましたが、
ユーザの新規登録時に他ユーザの情報を紐付ける実装が困難でした。既存のライブラリでは思うように実装ができないためライブラリをラップしたコードを作成して対応しました。
他にもカレンダーの日付複数選択ができる MultiDatesPicker for jQuery UI というライブラリが日本の祝日に対応していなかったので祝日対応用のラッパーを作成しました。
祝日の情報が格納されている JSON をラッパーに読み込ませることで対応できました。
ラッパー作成時にはライブラリのソースコードを理解する必要があり、コードを読むのに多少苦慮しましたが前職の SIer で他者の書いたソースコードを理解してデバッグした経験が活かせました。
使用技術
- 使用言語: Ruby 2.7.1 / HTML5 / CSS3 / JavaScript ES6
- DB: MySQL 5.7.3.2
- サーバ OS: Amazon Linux 2
- FW・MW・ツール等: Ruby on Rails 6.0.3.2 / React / Bootstrap3 / Terraform 1.1.4 / Terraformer / nginx 1.16 / puma 4.3.7 / Git / GitHub / AWS(VPC,ECS,ECR,Route53,ACM,ALB,IAM,RDS) / Docker / Docker-compose / CircleCI / RSpec 3.10.1 / Stripe API / Visual Studio Code / Vim
- PV 作成ツール: Adobe Premiere Pro / Adobe After Effects / Adobe Illustrator
C. 個人開発・登壇・学習
登壇
- 2026/04/17 Ebitengine ぷちConf #4(ゲーム開発 / Go、connpass)
「Claude Code × Gemini × Ebitengine — ゲーム制作素人 Web エンジニアが Go でゲームを作った話」。Snake Game と Samurai Gorilla の制作過程(素材生成と抽出のフロー、WASM での Web 公開、オンライン対戦への挑戦、デバッグ overlay による問題解決)と、AI を使った個人のゲーム制作の所感を発表しました。 - 常駐先・社内の技術共有会でのショート LT(技術ネタ、AI 支援開発の実践)
Ebitengine によるゲーム制作(2025/12-2026/04)
Go のゲームエンジン Ebitengine で 2D ゲームを制作し、WASM でブラウザ公開しています。Claude Code と Gemini を組み合わせて、素材生成・コード生成・デバッグを進めました。
- Snake Game(Ebitengine 版)、Samurai Gorilla(アクション。オンライン対戦を試作)
- Claude Code 向けの Ebitengine 開発用 Skill を作成
- そのほか Web ゲーム(Go API + フロントの対戦ゲーム、学習用ゲーム)の試作
使用技術
- Go / Ebitengine / WASM / Claude Code / Gemini
英語学習用 Chrome 拡張の開発(2026/10)
YouTube と Netflix の英語字幕で英語を学ぶための Chrome 拡張(Manifest V3)を自分用に開発しました。
- 英語字幕を文単位で英日 2 段に表示(人手の日本語字幕があればそれを、無ければ自動翻訳を文ごとに整列)
- 単語に乗せると同梱の英和辞書・熟語辞書の訳を表示し、少し待つと Chrome 内蔵の Gemini Nano(無ければ Claude API)が「この文での意味」を回答
- 保存した語句を AI の解説(文脈での意味・文の構造・和訳)付きで Anki へ送信(AnkiConnect)
- 文法分解(S・V・O・C・M)を UDPipe(拡張に同梱)または手元の Stanza サーバーで実行
- ユニットテスト 321 件と Playwright の E2E(本物のサイトを自動操作しない方針で、模擬ページによる結合テスト)
使用技術
- JavaScript / Chrome 拡張(Manifest V3)/ Gemini Nano / Claude API / AnkiConnect / UDPipe / Stanza / Playwright / Node.js test runner / Claude Code
Cloud Pratica(AWS / Terraform / CI/CD の実践スクール)(2025/02-2026/09)
現役エンジニア向けのスクール Cloud Pratica で、実際に稼働する SaaS(Go API + Next.js + AWS)を題材にした次の 5 コースを受講完了しました。学んだ内容は社内のセキュリティ実践ハンズオン教材に反映しています。
| コース | 状態 | 主な内容 |
|---|---|---|
| AWS 基礎コース | 受講完了 | AWS アカウントの基礎、IAM Identity Center による SSO と管理アカウントからメンバーアカウントへの権限委任、ネットワーク・EC2 の基本 |
| AWS 実践コース | 受講完了 | 題材 SaaS の環境構築、RDS の restore と seed データ作成、DB マイグレーションの運用、設計課題(予約メール配信基盤の要件定義・ER 図・AWS 構成図・Step Functions を使ったワーカー設計) |
| Terraform import コース(54 課題) | 受講完了 | 稼働中の stg 環境(Route53 → CloudFront〈Amplify / S3〉+ ALB → ECS Fargate の Go API → RDS PostgreSQL、NAT インスタンス、踏み台、ECR / Secrets Manager / SSM / SQS / SES / ACM、EventBridge Scheduler)を AWS サービス単位の module 設計で import し、plan の差分ゼロまで確認。import ブロック、-generate-config-out、moved / dynamic ブロック、S3 の state 管理 |
| Terraform apply コース(48 課題) | 受講完了 | コードから prd 環境を構築。stg との差分を values に閉じ込める設計、RDS のパスワード管理、EventBridge Scheduler による夜間停止(コスト削減) |
| CI/CD パイプライン構築コース(39 課題) | 受講完了 | GitHub Actions による自動テスト(golangci-lint、キャッシュ)、Slack 通知、matrix による並列 Docker ビルド、変更のあったサービスだけビルド、環境別の変数切り替え、db-migrator によるマイグレーションジョブ、ECS を Terraform 管理から ecspresso へ移行、OIDC による AWS 認証で静的アクセスキーを廃止 |
- GitHub Actions の OIDC で新しいリポジトリの
subクレームが数値 ID になる仕様変更(immutable subject claim)が原因で AssumeRole に失敗する事象を特定し、受講生向けに事象共有の記事を執筆
使用技術
- Terraform 1.16 / tenv / AWS(VPC, ALB, ECS Fargate Spot, ECR, RDS PostgreSQL, CloudFront, Amplify, S3, Route53, ACM, Secrets Manager, SSM, SQS, SES, EventBridge Scheduler, IAM Identity Center)/ GitHub Actions(OIDC)/ ecspresso / Go / Docker
その他の個人ツール
- カレンダーアプリから Google カレンダーへの予定移行ツール(2026/10)
- dotfiles(
setup.sh一本で Brewfile・gitconfig・シェル設定を再現。Node / Python のバージョン管理を volta / uv に一本化し、約 16GB の不要なランタイムを整理、2026/04) - OSS(コンテキスト生成ツール)のセキュリティ対応フォーク(2026/04)、Claude Code 設定の PC 間移行手順の整備
- MAXICELI シフト(コンビニ事業者向けシフトアプリ を参照)
D. SIer 期(2018/03〜2020/04)
大手情報サービス企業の FAX ネットワークシステムの開発(2018/03-2020/04)
参画時期
2018/03-2020/04
プロジェクトの種類
- 業務システム
- 受託開発
担当工程
- 要件定義
- 設計
- コーディング
- テスト
- 運用/保守
経験した職種・役割
- バックエンド
- インフラ
- ネットワーク
業務内容
- Hewlett-Packard Nonstop Server を使用した FAX ネットワークシステムの基幹システムの運用
- エクセルを使用したシステム監査結果の傾向調査
- エンドユーザへの説明資料などのドキュメント(画面遷移図、シーケンス図等)作成
- 障害調査とエンドユーザへのサポート
- 新規開発・既存改修(アプリケーション、DB)、
- テスト仕様書作成、性能試験、単体試験、受入試験
成果・学んだ点・工夫したこと
習得スキル
- 基幹システムにおける監査・運用のノウハウ
- 開発工程におけるレビュー観点のノウハウ
- 障害対応手順書の作成、改修
- SQL に関する基礎知識
- シェルスクリプト、VBA での業務効率化
- FAX ネットワークシステム関連知識
障害対応
基幹システム担当のエンジニアとして、システム障害発生時には障害の状況についていち早く把握、対応するよう努めました。
障害発生時には他チームと障害内容の共有し、運用監視オペレータへどの障害対応手順書を使用するべきか指示し、
手順書が存在しない場合は私自身で障害対応しました。
対応の際に手間取らないよう、日頃から基幹システム内の構造を理解し、基幹システム外の API とどのように関連しているか理解するよう務めました。
また、新規に障害が発生したときは対応後に手順書の作成も行いました。
監査作業の自動化
基幹システムの監査作業を自動化しました。
基幹システムのログを 1 日、1 週間ごとにエクセルに手作業で貼り付ける業務がありましたが、
手作業では時間がかかり、ケアレスミスが発生する課題がありました。
上長に業務の自動化を提案したところ自動化の実装を任せて頂け、
VBA とシェルスクリプトで作業を自動化することで週あたり 6 時間ほどの工数の削減を実現しました。
また、チーム内ではエクセルを使用した作業が多かったため VBA の使用方法を普及させ、チーム全体の工数削減に務めました。
30 年ものの API の改修
大規模プロジェクトの一環として基幹機能の1つをアップデートすることとなり、30 年ほど運用している API の改修に着手しました。
API は TAL という C 言語に似た言語で書かれており、マイナーな言語のため英語のリファレンスマニュアルしかなく扱いに苦慮しました。
改修作業では 2 万行ほどに及ぶソースコードを解析して新規機能の追加、不要機能の削除に着手しました。
英単語が省略されすぎているため意図不明の変数が存在したり、ソースコードにコメントがほぼ書かれていないことで解析に苦慮しましたが、
入念にデバッグし処理を理解することで無事改修に至りました。
改修は困難でしたがデバッグやソースコード解析スキルの向上と英語マニュアルが理解できるようになるなど良い勉強になりました。
使用技術
- 使用言語: C 言語 (C11) / COBOL / VBA / TAL / TACL
- DB: Hewlett-Packard NonStop SQL / Hewlett-Packard Nonstop Enscribe / Redis
- サーバ OS: Hewlett-Packard Nonstop Guardian / RedHat Linux
- FW・MW・ツール等: CrystalPoint OutsideView32 / Tera Term / Wireshark