ベンチャー企業での3ヶ月間:iOSアプリ、基板、ファームウェア、そしてAIモデルを作り上げた話
私がスタートアップに飛び込んだのは、好奇心と何か新しいことに挑戦したいという衝動だった。技術の進化を感じながら自分もその波に乗りたいという気持ちが常にあり、これまでのキャリアでも多くのプロジェクトに関わってきた。しかし、今回のプロジェクトは、これまでとは次元が違っていた。iOSアプリ、基板、ファームウェア、そして機械学習モデルまでを3ヶ月という短期間で一から作り上げるという、文字通り命を削るような挑戦だった。
iOSアプリ開発:Swift未経験からのスタート
最初の試練は、iOSアプリの開発だった。周囲からは「iOSアプリ?Swiftを書けるんだっけ?」と聞かれることも多かったが、実はその時点でSwiftは一度も書いたことがなかった。経験者ならば、きっとその重みを感じ取れるだろう。初めての言語でアプリを作るのは簡単なことではない。だが、プロジェクトは待ってはくれない。
まずは既存のコードベースを理解するところからスタートした。幸いにもある程度のベースは用意されていたが、それをどう動かし、どう改良していくかは私の手にかかっていた。1週間、毎日朝から晩まで、ひたすらコードを読み解き、エラーと格闘した。英語のドキュメントを読むのも、長年の技術者生活で慣れていたつもりだったが、初めて触れるフレームワークやライブラリが絡むと、理解するのは一筋縄ではいかない。
2週間目に入る頃には、コードの構造が少しずつ頭に入ってきた。「やれるかもしれない」と感じた瞬間、それまでの不安が少しだけ和らいだ。しかし、時間は限られている。週末を使い、徹夜もしながら、どうにか3週目にはアプリを仕上げることができた。納期直前、テストにも合格し、何とか一つの壁を乗り越えたが、これはまだ序章に過ぎなかった。
ギリギリの基板到着とファームウェアの試練
アプリが完成した後、次に待っていたのは、基板とファームウェアの開発だった。私の役割は、基板上で動作するファームウェアを作り、それをiOSアプリと連携させること。プロジェクトは順調かと思われたが、ここで大きな壁が立ちはだかることになる。
納期の1日前にようやく基板が到着した。焦りとプレッシャーが一気に押し寄せた。「これで動かなかったらどうするんだ?」という不安が頭を駆け巡る。自分自身、ファームウェアの設計にはある程度自信があったものの、実際に基板が手元に届くまで動作を確認する手段は限られていた。
一度基板が手元に届いた後、さっそくファームウェアを書き込み、テストを始めたが、予想通り一筋縄ではいかなかった。特に大きな問題だったのが、音声再生と画像取得が同時にできないこと。この二つはプロジェクトの核となる機能だったため、これがうまく動かないと、すべてが崩れてしまう。何度も試行錯誤を繰り返し、スレッド処理の最適化を試みるも、問題は解決せず、ストレスが頂点に達した。
ただ、この状況で逃げ出すわけにはいかなかった。最終的には、ライブラリの設定が原因であることがわかり、そこを調整することで問題は解決した。この瞬間、長く続いた不安が一気に解消され、達成感に包まれた。とはいえ、この経験から、どれだけ計画を立てていても、現実には思わぬトラブルが発生することを改めて思い知らされた。
AIモデルの構築:Colabでの挑戦
プロジェクトが進む中、次のタスクは機械学習モデルの構築だった。具体的には、物体検出用のYolov5モデルをトレーニングし、画像処理機能を実装する必要があった。ここでの課題は、適切なデータセットの収集と、そのデータを効率的にトレーニングするための環境を整えることだった。
まずは、画像取得環境を整え、データ収集を行った。データセットの収集には多くの時間と労力を要したが、Google Colabを活用してトレーニングを進めていく計画を立てた。だが、無料版のColabではGPUの性能が不足しており、時間もかかりすぎることが判明。ここで、思い切って有料版にアップグレードし、リソースをフル活用することにした。
ColabのGPUを使いながら、何度もトレーニングを繰り返し、モデルの精度を高めていく作業は地道で根気のいるものだった。失敗するたびにパラメータを調整し、少しずつ改善していくプロセスは、まさに試行錯誤そのものだった。それでも、最終的に精度の高いモデルが完成し、無事にプロジェクトに組み込むことができた瞬間は、言葉では言い表せないほどの達成感があった。
内面的な変化と学び
この3ヶ月間のプロジェクトを振り返ると、技術的な成長だけでなく、精神的にも多くの学びがあった。限られた時間の中で、これだけ多くの課題を一つ一つクリアしていく過程は、まさに自分の限界を超える経験だった。そして、常にギリギリのラインで動き続ける中で、自分が本当に何を大切にしているのか、そしてどこまで自分が耐えられるのかを見つめ直す機会でもあった。
技術的な挑戦だけでなく、心の中で戦っていたのは、「本当にこのままでいいのか?」という自問だった。失敗することへの恐怖と、同時に成功することへの期待。その間で揺れ動きながらも、最後までやり遂げることで得たものは大きかった。結果として、プロジェクトは無事に成功を収めたが、その過程で得た経験こそが、私にとって最も大きな財産だったのかもしれない。
プロジェクトが終了した後、しばらくは疲労感が抜けなかった。それでも、この経験を通じて、どんな困難な状況でも乗り越える力が自分にはあると確信できた。そして、技術的にはまだまだ成長する余地があると同時に、内面的にも自分を鍛え続けることの重要性を再認識した。
3ヶ月という短期間で、iOSアプリから基板、ファームウェア、機械学習モデルまでを作り上げたこの経験は、これからの私の技術者人生において大きな糧となるだろう。次なる挑戦に向けて、新たなエネルギーを得た気がする。