| 項目 | 内容 |
| ---------- | ----------------------------------------------------------------------------------------- |
| 期間 | 2023年1月〜現在 |
| 職種 | ソフトウェアエンジニア |
| 仕事内容 | デスクトップアプリケーション開発 |
| チーム規模 | 6人 |
| 利用技術 | TypeScript, Node.js, Go, C++, React, Electron, SQLite, ZeroMQ, GitHub Actions, Playwright |
#### プロジェクト詳細・担当業務・主な実績
創業2か月後に創業期のソフトウェアエンジニアとして参画し、分割式キーボード向けデスクトップアプリケーションの立ち上げを技術面からリードしました。要件定義からアーキテクチャ設計、実装、CI/CD、品質保証まで一貫して推進しました。
##### 0→1プロダクトの立ち上げ
- ハードウェア・UI/UXチームへのヒアリングを通じて曖昧なアイデアを要件へ落とし込み、機能要件・画面設計・アプリケーションアーキテクチャを策定。ユーザーストーリーを基に開発タスクを整理・優先順位付けし、アジャイル開発による迅速なプロダクト立ち上げを推進。
- 日本語ローカライズ機能を提案・実装し、日本のユーザーが初期設定や各種機能を母国語で利用できる環境を構築することで、日本市場への展開を支援。Makuakeでは目標30万円に対して約3,583万円の支援を獲得し、日本市場でのプロダクト認知拡大に貢献。
- 翻訳リソースとアプリケーションロジックを分離し、動的な言語切り替えに対応した国際化基盤を設計することで、日本語以外の言語も追加しやすい構成を実現
- 2名のジュニアエンジニアへのタスクアサインやコードレビューを担当し、メンバーの自走を促進するとともに、少人数でも継続的に機能開発を進められる開発体制を確立
##### CI/CD・リリース基盤の構築
- GitHub Actionsを利用し、Windows・macOS・Linux向けビルド、コード署名、リリースまでを自動化
- 従来は手動でのビルド・コード署名・クラウドへのアップロード・チームへのリンク共有を各プラットフォームごとに行っており、1回あたり計40分程度を要していたが、GitHub Actionsによりコード署名を含む全プラットフォーム向けビルドを自動化し、Pull Requestごとにダウンロードリンクを自動生成する仕組みを構築。所要時間を10〜15分に短縮し、レビューサイクルを大幅に効率化
- Electronの自動アップデート機能を実装し、新機能や不具合修正を迅速かつ継続的にユーザーへ提供できるリリース体制を構築
##### アプリケーション基盤・開発基盤の構築
- ZeroMQを利用したイベント駆動型のプロセス間通信基盤を設計・実装し、デバイス通信とUIを疎結合化することで、拡張性・保守性の高いアーキテクチャを実現
- SQLiteのデータベーススキーマを設計し、ユーザー設定、デバイス設定、プロファイルなど約15テーブルを管理するデータ基盤を構築。さらに型安全なデータアクセスとマイグレーションの仕組みを導入し、10回以上のスキーマ変更をユーザーデータを維持したまま適用することで、既存ユーザーへの影響を最小限に抑えながら継続的な機能改善を可能にした。
- WindowsのDLL読み込みやmacOSのコード署名・公証など、OS固有の課題を解決し、Windows・macOS向けアプリケーションの安定したビルド・配布基盤を構築。
- ドキュメント化されていないパケットやデバイスコマンドについて、AI支援ツールを活用したファームウェアコードの読解や仮説整理、通信ログ・実機挙動の検証、ファームウェアエンジニアとの確認を通じて通信仕様を把握。その知見を基に、シリアルポート経由のデバイス通信、パケットの送受信・解析・再構成を担うGo製バックグラウンドワーカーを設計・実装し、ハードウェアとアプリケーション間の安定した通信を実現。
- Playwrightを用いたElectronアプリケーションのE2Eテスト基盤を構築し、主要機能の回帰テストを自動化
- GitHub Actionsと連携し、Pull RequestごとにE2Eテストを自動実行することで、品質を担保した継続的な開発フローを実現