この度某社から内定が出たので、なんちゃってフルスタックエンジニアとして5年くらいやっていて転職活動をしたときに、フルスタックとしてやっていくのか、どれかに専念するのか、で悩んだので自分はこうした、というのをメモがてら残すことにした。
現在の自分
スキルセット的にはこんな感じ。
- サーバーサイド
- Java
- PHP
- Ruby (個人サービス)
- フロントエンド
- jQuery
- Backbone.js
- React (個人サービス)
- インフラ
- Ansible
- Docker
- Vagrant
- Chef
- AWS, GCP
- Android アプリも昔つくった。
ざっくり年収の遷移
- 前職 (300万〜350万)
- ホームページ作ったりECサイト作ったり
- SESでいろいろやってた
- 現職 (400万〜450万)
- 業務システム開発
強みと弱み
- 強み
- ひとりでサービス作る分には環境づくり含め普通に作り切ることはできる。(出来が良いかはともかく)
- 弱み
- 専業でやってきた人よりもその分野に対しての知識量が足りない。(と思ってしまう)
弱みの部分が物凄く響いてきて、転職活動中に自信を失うことが多々あった。
フルスタックエンジニアの募集は少なめ
転職活動をしていて感じたのは、大きい会社になればなるほどフルスタックエンジニアが求められることはなく、いずれか1本になるケースが多い。
ベンチャーだと需要はあるけど、より高度なフルスタックさが求められていた。
フルスタックさという単語が適切かはよくわからないが、「幅広くやっていた」だけではなく「それぞれに精通している」必要があると感じた。
平均70点の自分に対して、求められていることは平均85点くらいありそうだと思った。
ベンチャーのフルスタックエンジニアでやっていくには経験が足りないなーと感じたので断念した。
サーバーサイド or フロントエンド
特にどっちをやりたいというこだわりもなく両方好きなので、会社によって受ける分野を変えて応募してみた。
あえて言うならフロントエンドの方がユーザーに近いので好きだと思う。
サーバーサイドでの難しいところ
応募先の会社の扱うサービスの規模感によって使用する技術が異なってくるので、サーバーサイドでは今まで経験したサービスの規模感を大幅に超えた会社は厳しいかなーと感じた。
現職で開発しているサービスは業務向けかつそこまで速度等は求められていなかったが、一方で応募先は BtoC で数万リクエストを軽く超える世界だったので、それに対処する技術について全くと言ってよいほど知識がなかった。
面接では、言語の知識というよりは設計周りについて聞かれる方が多かった気がする。
フロントエンドでの難しいところ
フロントエンドは現状 JavaScript 一択で ES2015 以降の技術を覚えておけばさほど苦労はしない雰囲気だったが、一方でその分深いところまで聞いてくるケースが多く、「仕様を把握していないので想像になってしまうんですけど…」みたいな受け答えが結構出てしまった。
まとめ
フルスタックエンジニアはなかなか修羅の道かなぁと感じた。
フルスタックでやっていくとしても1つ武器を持ったほうが精神衛生上良いと思う。
余談
基本的に書類選考で連絡遅いところはお祈りしてきた。2週間近く待たせてこれは心象最悪なので落とすならサクッと落として欲しい。