「個人開発をしているソフトウェアエンジニア」に聞いた 自分のプロダクトを信じて行動する大切さ

「LAPRASユーザーインタビュー」では、LAPRASをきっかけとして転職や副業を経験されたエンジニアの方へのインタビュー記事をご紹介しています。今回は広告代理店からソフトウェアエンジニアに転職し、個人開発もされている酒井さんにお話を伺いました。
今後のキャリア形成に悩んでいるエンジニアの方や、エンジニア採用担当の方はぜひご一読ください!

<プロフィール>

酒井大地 さん
広告代理店で勤務したのち、某ロックアニメと路上ライブに刺激を受け偶発的に出来上がる音楽のよろこびに気づき、音楽ライブマッピングアプリの個人開発をスタートする。その後、株式会社ヌーラボに転職しソフトウェアエンジニアとして勤務しながら、アーティストのライブを地図上にマッピングしてリアルタイムに検索できるサービス"LiveGT"の開発をしている。

なぜ個人開発を始めたのか

―現在の業務内容について教えてください

株式会社ヌーラボでソフトウェアエンジニアをしております。
サービスとしては主にコラボレーションツールの開発と提供で、私はBacklogの運用をメインにしております。

―エンジニア歴はどれくらいでしょうか?

1年半になります。

―お仕事しながら個人開発をされていると伺ったのですが、始めたキッカケなどはありますか?

ヌーラボに入社する前はインターネット広告代理店で働いていたのですが、その時に1人で個人開発を始めました。

私は元々趣味でギターを弾いていて音楽が好きだったので、就職で上京した際に東京の路上ライブを見に行きたく、Twitter(現X)やGoogleで今やっている路上ライブを探したのですが、過去の情報はあってもリアルタイムの情報がないことに気づきました。

最初は、エンジニアでもない私がシステム開発なんてできないと思っていましたが、その時に家でたまたま某ロックアニメを見たんです。路上で自分達のライブの券を売らないといけないという難題にぶつかりながらベーシストの先輩と一緒に路上ライブをして、券を売っている姿を見て、偶発的に出来上がる音楽のよろこびをあらためて感じました。熱意やなにかそういうものがふつふつと湧き上がって、「よし、これはやろう」と思いパソコンを買うところからスタートしました。

―元々趣味だった音楽繋がりでスタートしたのですね

はい、そうですね。今まで私は目先の楽しみを犠牲に将来を重視して行動していましたが、このタイミングをきっかけに瞬間的な感動と向き合って全力を注ぎたいという考えに変わりました。

―個人開発していく上で、楽しい部分と大変な部分を教えてください

フロントエンドでブラウザ画面が出て、自分の作ったものがwebページとして出るだけでもすごく興奮しました。私の場合は地図を操作するものだったのでLeaflet.jsというライブラリを使い、地図をクリックしてシュっと動かし、地図が移動しただけでも、おお、すごいと思い、友達にも「ちょっと見て見て」と声をかけて触らせてみたりと自分の作ってきたものが完成されていくのが楽しかったです。
開発を続けていくと、実際にライブを投稿してそれが地図上にポインターとして表示できるようになりました。Twitter(現X)やGoogleマップなど、我々が日常的に無意識に触ってるアプリケーションの形に自分が作ってるものが近づくにつれて、興奮度とか自分がどんどんエンジニアリングに足を踏みしめているという感覚が目に見えてわかっていくわけです。その過程はすごくエキサイトするものでした。

一方、大変だったところは、エンジニア的な面と精神的な面の2つが主にあります。 エンジニアリングの面では、やりたいことがあっても、外部のAPIを使うにあたってお金がかかることなど利益率的にできるけどできないこともありました。そこをどういう風にアイデアの転換で回避するか1週間考えたり、大変ですがやりがいもありましたね。
精神的なところでいくと、個人開発に全力投下するために1年で会社を辞めた経験が挙げられます。これは私にとってはイレギュラーなことでした。今までは、社会のレールに従う生き方をしてきたのでこの決断には慢性的な不安がつきまといます。そんな不安を論理で封じ込みながら開発を続けるものの、やはり気持ちの制御がつかなくなることもありました。寝る前に、明日に着手するタスクや、その詳細な実装方法、ボトルネック、そもそもこのプロジェクトは上手くいくのかなどを考えてしまい寝れなくなることもありました。日銭を稼ぐためにアルバイトをしていたこともあります。バイト先もエンジニアに関連した仕事ではなくうまくいかないことの方が多いこともありました。そういうことが重なると、精神的な疲れや不安、焦燥感を覚えます。とはいえ、転職活動していくにあたって、自分のこれまでのスキルとやってきたことを棚卸ししていくと、案外「自分はちゃんとやってきたんだな」という報われた感覚もあり、山あり谷ありでした。


(LiveGTの実際のサービス画面)

―精神面の支えなどはあったのでしょうか?

はい、「挑戦しよう!」と思った時の気持ちに立ち返ることが精神的な支えになっていたと思います。開発において単純な作業が続くと、ときに頭の中が色を失い、創造性が低下していることを感じることがあります。そうすると「これって何のためにやってるんだっけ。ここってどこまで妥協できるんだっけ。」ということが不鮮明になるので、当初思い描いたUIと実際の姿に乖離がでてしまうことがあります。そういうときは自分が感動した音楽を改めて聴いて、この活動を始めた理由を思い出すようにしています。そうすると感動が蘇ってきて、頭の中が色を取り戻し、すべてが鮮明に感じられるようになっていきます。人によっては、音楽に限らずスポーツなどいろいろなものに「初めて興味を持ったときの体験」があるはずです。エンジニアをやろうと思ったときの体験をもう一度振り返ってみるのは、自分の気持ちを後押しする上でもすごく大事だと思います。

―エンジニアとして日々どのようなアウトプットや貢献をされていますか?

メインは個人開発で、"LiveGT"の開発作業になります。 今の会社に入ってからはそれ以外の視点ができたので、 Backlogの使用技術を普段の開発タスクであったり、余暇時間の個人開発に取り入れたりして学習を進めています。また、入社前の時期には"LiveGT"が開発の諸事情から止まっていました。そこで、個人的に学習したことや理解に時間がかかったものを忘れないよう、記事を書いたりWordPressを使わずに自分で投稿できるようなシステムが作れないかといったことを考えたりしてアウトプットしていました。

「ユニークさ」と「情報の開示度」が気になったポイント

―今回、LAPRASを使って転職をされたと伺ったのですが、どのような理由で転職をされたのでしょうか?

理由は2つあります。1つは"LiveGT"をリリースして利益が出るまでに1、2年かかる見込みだったため、その間の日銭が必要だったことです。もう1つは、安定したサービスとして運営していくにあたって、技術力の不足を感じていたことです。既に安定して稼働している大規模なサービスに関わることで自分の技術力を高めたいという思いがありました。そのため、今回大規模サービスを運営する自社開発企業を探して転職したという流れです。

―ご自身で求人をご覧になり応募されたと伺ったのですが、求人の「この部分が工夫されている」などと思った部分や気になったポイントなどはありますか?

私がエンジニアをしている1番の目的は「ユニークなサービスを作りたい」ということですので、企業の提供するサービスのユニークさは特に気になる点でした。
LAPRASの求人だと、詳細などがカテゴライズされて書きやすい形になってるので、企業によって書く内容にそれぞれ違いがあります。一覧から絞り込みをしてからそれぞれの企業のサービスを1つ1つ時間をとって確認していましたね。

―LAPRASで受けたカジュアル面談で気になったポイントを教えてください

カジュアル面談は、会社によって差があんまり出ないようなイメージがあります。その中でも事前に色々情報を開示してくれると、カジュアル面談時の情報を咀嚼するコストが減るので、楽に進行できると感じます。聞きたいことなどもある程度こっちで考えられますし、向こうから得た情報が知らないことだったとしても事前に調べられるので。こちらとしてはその辺がしっかりされている企業だと最初から良いイメージが持てますし、自分から企業のホームページをリサーチするなど、前向きな行動につながっていくと思います。そのため「情報の開示度」は注目しているポイントです。

目的志向のインプットと偶発的なインプットがアウトプットを加速させる

―今回の転職はどのくらい「自分にとって最も良いもの」でしたか?

かなり良かったと思います。
理由は2つありまして、1つは技術力です。選考に技術課題があったので、私が何ができて何ができないかを企業側も事前に把握できています。私の側からしても「これを突破した人が社内にいる」ということがわかりますのでお互いの技術力への信頼関係にも繋がると思います。

もう1つは、ヌーラボはオファーの条件がよくエンジニアのサポートが手厚いと感じたところです。エンジニアに対して待遇がいい会社は、自己学習する上でのサポートやエンジニア間でお互いに学習し合ったりする環境が整備されていると考えています。自分が達成したい目的に「エンジニアとして安定的なサービスを継続して運営し続けられるようになる」ということがありますが、その基礎力を醸成するにあたって適した環境ではないかという期待がありました。実際に入社してみたところ、期待していた通りの環境で安心しました。

エンジニアに対する各種支援を利用して入社してから技術書を初めて購入したのですが、その中で偶発的なインプットを得る機会も生じました。偶発的なインプットをしてからアウトプットを試みると、今までの自分にはなかった新しい選択肢が一気に広がるのを実感します。やってみようかなという気持ちが生まれるので、自分の選択肢が一気に広がりました。今までは「アウトプットありき」でインプットをしていたので、会社の環境によってこういった技術的な恩恵が受けられるのは非常にありがたいですね。

また、20年間動かしてきたサービスで、安定した運営をする上での勘所をつかむ機会が得られました。保守性や拡張性に対するセンサーが働きやすい環境があるといえますね。コードレビューをする場合を例に挙げると「こういうところはちょっと気持ち悪いよね」とか、「こういうところ良いよね」といったポイントに気がつく視点が必要になります。そのとき、 今まで私が自分で"LiveGT"のコードを見た際に感じるセンサーよりも、もっと細かい粒度で今まで思いもつかなかったポイントに気がつく、新しい気付きが常にあります。

―個人開発にもいい影響を与えていると?

仕事の内容が全部楽しいのは、いい影響を与えていると感じています。仕事の開発で触れるものに対して「これって"LiveGT"だったらどういう風に使えるかな」という視点を持ちながら接することで、毎回新たな学びを得ることができます。 私としては、エンジニアリングは今や趣味の延長なので、前向きに楽しく学習ができています。

―エンジニアにとって「最善のマッチング」とは何だと思いますか?

やはり「自分が書いたコードを見てもらう」ことではないでしょうか。自分がどういうものにこだわりを持っているか、好き嫌いや 思考の形跡などが1番読みとれると思うからです。逆にいえば、人に見せるつもりで書いたコードであれば自分の考えた形跡が人に伝わらないといけないと思います。実際にはコードが正しく動く以上に、それを読む人とのコミュニケーションやその後の保守運用のことまで考えなければいけないので。

技術力を図る方法としては他にアルゴリズムのテストなどがあると思いますが、 転職するエンジニア側の理想としては、「毎日GitHubなどにアウトプットをしていき、転職の際にそれを見てもらったらすぐに技術力がわかるようにしておく」のが良いかと思います。 ヌーラボの通常の選考では、技術課題を新しく作ってもらう方法と、すでにあるアウトプットを見せてもらう方法、モブプロなど色々な形式があります。日常的なアウトプットがコードとしてGitHubに見える形で上がっていれば、開発思想などの企業側との共有がもっとシームレスにでき、労働市場の流動性も高まるのではと考えています。流動性が上がればエンジニアは自分が働きたい企業に出会える可能性が高くなりますし、転職先の企業で得た刺激が個人開発にもいい影響を与え、それが次の企業との出会いにつながるかもしれません。それは、社会全体にとっても良いことだと思いますね。エンジニアの業界に限りませんが、「自分のアウトプットを公開し、見ようと思えば誰でも見れるようにしておく」というのは「人々が転職しやすい社会をつくる上で良いアイデアだな」とエンジニアを始めてから思うようになりました。

―同じような立場で転職されるエンジニアへのメッセージ

一言で言えば、「自分を信じてほしい」ということだけです。

私と同じ境遇であれば、 おそらく何十社、何百社と選考に落ちる可能性もあると思っています。ただ、落ちる理由は純粋に業務経験がないからという点が大半になるはずです。
もしもそのとき自分が、
・自分で開発してきたものがある
・長期間考えに考えた上できたものであり、実際に動くものである
・アウトプットなど確かに学習してきた形跡もある
といった状態であるなら1人で物を作る能力はあるはずです。自分ではそのことがわかっていても他人には伝わっていないだけだと思います。

自分が自分のスキルをわかっているのならば、少なくとも自分はそれを信じてずっと努力し続けられるはずです。諦めずに努力し続けていれば、いつかは確率の問題で「面白いじゃん」って思ってくれる企業は絶対に出てくると思います。「エンジニアになれなくてもいいや」と途中で諦めてしまう必要はありません。好きなものであればいくらでも時間は使えると思うので、へこたれずに自分を信じてやり続けてほしいなと思います。

―これからのキャリアについて

まず第1は、"LiveGT"を事故なくリリースするところが目標ですね。
現状は、基本的にこれしか私の人生において目指していることはありません。ただ、このサービスがあまり使われずに拡大しない可能性も大いにあると思っています。新しく生まれたサービスのほとんどは確率的には失敗するので。私は好奇心としてこのサービスがどういう反応を受けて、どういう使われ方をするのかを見たくてやっている部分が非常に大きいです。

それ以外にも他に作りたいと思ってるものは実はどんどん思いついています。試したいアイデアはたくさんあります。
なので、「思いついたことを手当たり次第に出していきたい」ということしか、エンジニアのキャリアに関しては考えていないです。私の場合は、作りたいものありきで学習に取り組みます。ですので、例えば"LiveGT"を安定的に稼働させていくためにフロントエンド、バックエンド、インフラなどのスキルを今の水準からより高い水準に引き上げる必要があり、そのための学習を必要に応じて行うという流れですね。普段の業務からそうした行動を取る結果、目安としてこの領域のテックリードを目指すなどの展望が副次的に生まれるかもしれません。

私はお金を稼げるから開発をやっているのではなく、自分自身が感動するものをさらに発展させていきたいから開発に取り組んでいます。現状はその都度、自分自身が感動するものに従って行動し、それを作るにあたって高い視座が要求されれば、そのために必要な技術をBacklogの開発を通して獲得し、それを"LiveGT"に還元して、さらにそこで得られた技術を今度はBacklogの開発に還元することで会社と自分の人生にWinWinな関係を築けるのではと考えています。

ーー ありがとうございました!

取材・執筆/永井亮