ソフトウェアエンジニアのキャリアパス
目次
ソフトウェアエンジニアには一般にどのようなキャリアパスがあるのか、ということを考えます。組織によっても異なるでしょうが、一般的には以下のようにまとめられそうです(Will (2021), James (2022) より筆者作成) 。“L"はレベル、“IC"はIndividual Contributorです。

注意点です。
- ICトラックとマネジメントトラックを行き来する人もいると思いますが、両者は別物と考えた方が良さそうです。
- 同じ名前で呼ばれていても、組織の規模によってレベル感は異なります。極端な話、CEOとCTOのふたりだけのスタートアップのCTOと、GAFAM的な企業のCTOでは、一般的に後者の方がレベル感が高いとみなされるでしょう。
ジュニアエンジニア〜エンジニア
ソフトウェアエンジニアとしての仕事は、ジュニアエンジニアから始まります。組織によって定義は異なるでしょうが、仕事を進めるために手助けが必要な段階です。手助けが不要になり、ひとりで仕事が進められるようになれば、「ジュニア」が外れて「エンジニア」と呼ばれることになるでしょう。
このレベルには、マネジメントトラックは存在しません。
シニアエンジニア
エンジニアからレベルが上がって、ICトラックに進んだ場合はシニアエンジニアと呼ばれるようになります。しっかりとした知識を持ち、周囲から頼りにされるようになるレベルです。ジュニアエンジニアやエンジニアにアドバイスができたり、プロジェクトの主力メンバーだったりするでしょう。
スタッフエンジニア
シニアエンジニアからさらにレベルが上がると、スタッフエンジニアと呼ばれるようになります。スタッフエンジニア以上のソフトウェアエンジニアには、以下の4つの類型があります(Will (2021) )。より困難で、答えのない問題に取り組んでいくことになるでしょう。
- テックリード(Tech Lead):チームに対するリーダーシップを発揮する役割。
- アーキテクト(Architect):特定の技術分野の技術的リーダーシップを発揮する役割。
- ソルバー(Solver):難しい技術的課題を解決する役割。
- ライトハンド(Right Hand):エグゼクティブの右腕となる役割。
プリンシパルエンジニア
ICとして極まった人です。
エンジニアリングマネージャー
エンジニアからレベルが上がって、マネジメントトラックに進んだ場合はエンジニアリングマネージャーと呼ばれるようになります。レベル感としてはシニアエンジニアと同じL3です。
エンジニアリングディレクター
エンジニアリングマネージャーからレベルが上がるとエンジニアリングディレクターと呼ばれるようになります。レベル感としてはスタッフエンジニア相当のL4です。
エンジニアリング担当VP(Vice President)
エンジニアリングディレクターからさらにレベルが上がるとエンジニアリング担当VPと呼ばれるようになります。VPoEなどでしょうか。レベル感としてはスタッフエンジニアやプリンシパルエンジニアに相当するL5〜L6です。
CTO
マネジメントトラックを極めるとCTOと呼ばれるようになるようです。レベルはL7になるので、ソフトウェアエンジニアの最上位職種と言えるかもしれません。
References
- Will Larson, (2021), Staff Engineer Leadership beyond the management track
- James Stanier, (2022), エンジニアリングマネージャーのしごと チームが必要とするマネージャーになる方法, オライリー・ジャパン
- Camille Fournier, (2018), エンジニアのためのマネジメントキャリアパス テックリードからCTOまでマネジメントスキル向上ガイド, オライリー・ジャパン
書いている人 😎

茨城県つくば市在住のモバイルアプリケーションアーキテクト(Androidが得意です)。モバイルアプリのアーキテクチャ、自動テスト、CI/CDに興味があります。いわゆる「レガシーコード」のリファクタリング・リアーキテクチャが好きです。
👉 もっと詳しく
著書 ✍
Android 依存性注入 ヒッチハイク・ガイド🧳
Androidアプリでの依存性注入(Dependency Injection)に入門するためのガイダンスです。依存性注入の概念やメリットを理解し、Dagger Hiltを用いてAndroidアプリに適用する方法を解説しています。
ソフトウェアデザイン 2023年6月号📚
特集「クリーンアーキテクチャとは何か?」の第5章「モバイルアプリ開発における実践」を執筆しました。
Android クリーンアーキテクチャ ヒッチハイク・ガイド🧳
Androidアプリでのクリーンアーキテクチャに入門するためのガイダンスです。クリーンアーキテクチャの概念を理解し、Androidアプリに適用する方法を解説しています。
Android ユニットテスト ヒッチハイク・ガイド🧳
Androidアプリのユニットテストに入門するためのガイダンスです。初学者が混乱せずにAndroidアプリのユニットテストを書き始めることができる、ということを目的としています。
Android MVVMアーキテクチャ入門🛠
Androidアプリ開発の初学者に向けた、MVVM(Model-View-ViewModel)アーキテクチャの入門書を書きました。初学者の方を確実にネクストレベルに引き上げる技術書です。NextPublishingより出版されています。