32歳の子持ちエンジニアがキャリアパスに悩んだ話(結論:フルスタックを目指します)

前書き:新築一戸建ての検討、迫りくる恐怖

マイホームの購入の検討を始めました!検討が加速しているだけですが!

   

家の購入を検討し始めた理由は、息子が1歳になった時期に「深夜はあなたが思うより音が響く。眠れない」旨の苦情の手紙を受け取ったことです。手紙を呼んだ時は精神的なダメージが大きく、かつ「親でさえ泣き声に参っているから他人なら尚更」と反省しました。

この手紙では子供について言及していませんが、4年間同じ賃貸に住んでいて初めて苦情を受けたので、原因は息子だと思われます。手紙のおかげで、息子が初めて病院から家に帰ってきた日に「こんな大きな声で泣いているけど、苦情こないかな」と心配になったことを思い出しました。今は赤子の時より大きな声で泣きますが、親(私)にとっては日常になっていました。しかし、隣人にとっては目障りだったことでしょう。

 

私は問題が発生したら、即座に対策を考えるタイプです。

結論には、一瞬でたどり着きました。

「賃貸を出て、マイホームに住もう」「 引っ越しまでは静かに暮らそう」と。定年過ぎても賃料払うなんて厳しいし、マイホームは新潟だから3000万ぐらいあれば買えるだろうと、楽観視していました。

 

しかし、現実は非常でした。

建築業者に話を聞いたら、世間知らずの私は脳を揺さぶれた感覚に陥りました。

  • 施工面積40坪程度で、4000〜4500万(坪単価は70〜72万、土地代、基礎代、その他諸々を合計すると4000万近い)
  • 最近は5000万出してもおかしくない(10年前は材料費が安かったので500〜1000万程度、値段が安かったらしい)
  • 施工面積30坪の場合は、二階の部屋が机とベットを置いたら終わる(一部屋辺り4〜5畳前後)
  • 介護を考えると、建売住宅は立地が悪かった

 

上記の話を聞いた後、「あの家はお金を浮かすため、2階が小さいんだな」「あの家は間違いなく5000万」などを考えるダークサイドに落ちました。

我が家は、嫁がいつ働けるか分からない状態なので、自分で稼ぐしか無いと覚悟を決めました。お金を稼ぐには、キャリアパスが大事です。ベストなキャリアパスをどのように選択したか、判断基準は何だったかを本記事に備忘録として残します(どうせ暫く後に考えが変わるので、32歳時点の考えとしてメモります)

   

思いついたキャリアパスは3個

私は20代後半に契約/委託の管理、GUI/組み込み開発を担当していたおかげで、「良く言えばマネージメントも開発もイケる、悪く言えば各領域に強みがない」という器用貧乏型エンジニアとして生き残れています。

そんな私がキャリアパスをボンヤリと考えた時、以下の3個が思い浮かびました。

上記の①〜③に対して、どのように結論づけたかを後述します。ちなみに選択したのは、③Androidとサーバーが扱えるフルスタックエンジニア(この程度はフルスタックとは思わないけども……)です。

    

PM系は、ただ辛いだけ

私はマネージメントも少し出来ますが、プロには勝てません。プロのような「100人月ぐらいのプロジェクトなら安定して回せるよ」「複数のプロジェクトを同時にグロースさせたよ」という経験はありません。

私の経験は、ある製品を開発期間内に自社および受託先と協力して無事に開発しきった、ぐらいです。しかも、私を管理するグループが別途存在したので、私の独力で全て上手くいった訳ではありません。

端的に言えば、管理者としては経験不足です。

 

では、「これから努力してプロジェクトマネジメントスキルを身につけるか」と考えた時、そのモチベーションが全く湧き上がってきませんでした。そもそも私はマネージメントが嫌で転職したぐらいですし、給料が少し上がった程度でコーディングを止められるとは思いません(実装が好き)

性格上、PMを受け入れ難い。

 

また、PMは報われる場面が少なく、開発現場と距離が生まれやすい職種だと考えてます。さらに、自分が開発(実装)していない製品が売れても全く嬉しくないと私は考えるタイプです。36協定ギリギリまで必死こいて残業しているのに誰からも褒められずに、ある日虚しくなりそうなので、PMのキャリアパスはあり得ないと結論づけました

(PMが必要な職種であることは認識していますし、上記の記述にPMとして働いている方を貶める意図はありません)

    

サーバーサイドを極めるのも悪くはないが…

私が現在所属する会社におけるサーバーサイドは、「RESTful API開発」「DBスキーマ設計」「インフラ構築」がメインの業務です。私は以前の記事で「サーバーサイドの実装つまらん」と書きましたが、最近は面白い部分が見つけられています。

以下に、面白さを感じている部分を列挙します。

  • DDD(Domain Driveb Design)に適合した形へのリファクタリング。一年間かけて徐々にDDDへの理解度が上がったため、コードの駄目なポイントを探せるようになりました。少しずつコードを改善するのは楽しい
  • ユーザー規模やコード規模の増加への対策(規模と向き合う)
  • RDBMSは、それ自体が楽しい。スキーマを考えるのも楽しい(Linux Kernelのように、洗練されたソフトを見るのが好き)
  • テストを考慮した実装。つい最近、テスト並列化が完了しました。次はE2Eテストを導入する予定

 

上記のような面白ポイントがありますが、私はサーバーサイドを極める道を選ばないことにしました。以下の懸念2点にもとづいて判断しました。

  1. 自信の強みになるまで、サーバー関連スキルを昇華できなさそう
  2. インフラに対するモチベーションが低い

上記1.は「自分がこのままコードを書き続けたとしても、現職のテックリードレベルまでは達しないだろう」という漠然とした予感がありました。私は受託開発エンジニアとして過ごした期間が長いため、自信のコーディング評価軸として「速さ」が大きな割合を締めています(次点がテスト)。

このような生き方をしたため、何かを深堀して突き詰めるスキルが低めです。また、興味の対象が変わりやすい傾向があるので、浅く習得しがちです。このまま漠然と勉強しても、尖ったエンジニアにはなれないと判断しました。

 

上記2.は、私自信が困っている問題で、全くインフラ(AWS)にモチベが湧きません。CloudFormationを嫌々書いて、イライラしながら環境構築をしています。何が楽しいかがサッパリ分かりません。また、開発中にインフラ変更する頻度が低く、AWSの勉強に投資したコストが回収できないことにも不満があります。

このような状態なため、サーバーを極める案を断念しました。

     

Androidとサーバーのフルスタック

フルスタックエンジニアになる案は、複数の問題を一気に解決しているように思えました。

  • コーディングが好きな性格と一致(実装できる領域の増加)
  • (現職の役職である)テクニカルマネージャーとして、プロジェクトの幅広い技術領域を把握可能になる
  • プロジェクト全体の開発計画を管理でき、かつモバイル/サーバーのコードを書けるエンジニアは希少(技術スキルがスケールし、市場価値が出る筈)

 

この判断の問題は、体力だけでした。仕事(残業あり)と家事や育児をしながら、Androidアプリ開発を覚えるのは間違いなく大変でしょう。しかし、定年までエンジニアとして生き残り、なおかつ少しでも多くのお金を稼ぐためであれば、頑張れます。

今の感触だと、Androidアプリ開発はプレゼンテーション層が特殊ですが、その他のレイヤーはMVVMかつクリーンアーキテクチャでしか無いので、サーバーサイドと考え方は変わらないかなと感じています。お作法は別物ですが。

(ただし、UIテストもあるし、流行のライブラリが目まぐるしく入れ替わるので、追いつくのが大変そうだなと感じました)

        

最後に

「える しつているか せたいねんしゅうをひとりでふやすと ぜいきんが つらい」

   

1件の返信

  1. 2023年12月28日

    […] […]