LESSON 30分

ストーリー

高橋アーキテクト
L2を修了したら、次はどこへ向かうべきか
高橋アーキテクト
技術者のキャリアは一本道じゃない。スペシャリストとして深く掘るか、アーキテクトとして広く設計するか、マネージャーとして人を導くか。自分の強みと情熱に合った道を選んでほしい

エンジニアのキャリアラダー

// ICトラック(Individual Contributor)
const IC_TRACK = {
  junior: {
    title: "ジュニアエンジニア",
    level: "L0-L1",
    focus: "指示された機能の実装、基礎技術の習得",
    scope: "タスク単位",
  },
  midLevel: {
    title: "ミッドレベルエンジニア",
    level: "L1-L2",
    focus: "自律的な機能開発、コードレビュー",
    scope: "機能単位",
  },
  senior: {
    title: "シニアエンジニア",
    level: "L2",
    focus: "技術設計、メンタリング、チームの技術リード",
    scope: "プロジェクト単位",
  },
  staff: {
    title: "スタッフエンジニア",
    level: "L3",
    focus: "組織横断の技術課題解決、アーキテクチャ設計",
    scope: "複数チーム・プロダクト",
  },
  principal: {
    title: "プリンシパルエンジニア",
    level: "L4",
    focus: "会社全体の技術方向性、業界への影響",
    scope: "組織全体・業界",
  },
};

// マネジメントトラック
const MANAGEMENT_TRACK = {
  techLead: {
    title: "テックリード",
    focus: "チームの技術方針決定、ピープルマネジメント開始",
    balance: "コーディング60% / マネジメント40%",
  },
  engineeringManager: {
    title: "エンジニアリングマネージャー",
    focus: "チーム運営、採用、1on1、プロジェクト管理",
    balance: "コーディング20% / マネジメント80%",
  },
  director: {
    title: "ディレクター",
    focus: "複数チームの方針策定、組織設計",
    balance: "コーディング5% / 戦略・マネジメント95%",
  },
  vp: {
    title: "VP of Engineering",
    focus: "技術組織全体の経営、ビジネスとの連携",
    balance: "戦略・組織運営100%",
  },
};

スタッフエンジニアへの道

// L2(シニアエンジニア)からL3(スタッフエンジニア)へのギャップ
const STAFF_ENGINEER_SKILLS = {
  technicalExcellence: {
    description: "複数ドメインにまたがる技術的専門性",
    examples: [
      "バックエンド + インフラ + データベースの深い知識",
      "パフォーマンスの根本原因分析と系統的な改善",
      "セキュリティ脅威モデリングの実施",
    ],
  },
  architecturalThinking: {
    description: "システム全体を俯瞰した設計力",
    examples: [
      "マイクロサービスの適切な境界設計",
      "技術的負債の定量的評価と改善計画",
      "新技術導入のリスク評価とPoC実施",
    ],
  },
  organizationalImpact: {
    description: "チームを超えた影響力",
    examples: [
      "全社的なコーディング規約の策定と推進",
      "他チームの技術課題へのコンサルティング",
      "社外への技術発信(ブログ、登壇、OSS)",
    ],
  },
  technicalLeadership: {
    description: "技術的なリーダーシップ",
    examples: [
      "困難な技術判断でのファシリテーション",
      "ジュニアメンバーの成長支援",
      "チーム横断のRFCプロセスの確立",
    ],
  },
};

スキルマップと成長計画

// 自己評価マトリクス
interface SkillAssessment {
  category: string;
  skills: Skill[];
}

interface Skill {
  name: string;
  currentLevel: 1 | 2 | 3 | 4 | 5;
  targetLevel: 1 | 2 | 3 | 4 | 5;
  actionPlan: string;
}

const SKILL_MAP: SkillAssessment[] = [
  {
    category: "設計力",
    skills: [
      { name: "API設計", currentLevel: 4, targetLevel: 5, actionPlan: "社内APIガイドライン策定" },
      { name: "データモデリング", currentLevel: 3, targetLevel: 4, actionPlan: "DDD読書会参加" },
      { name: "分散システム", currentLevel: 3, targetLevel: 4, actionPlan: "Designing Data-Intensive Applications完読" },
    ],
  },
  {
    category: "リーダーシップ",
    skills: [
      { name: "メンタリング", currentLevel: 3, targetLevel: 4, actionPlan: "ジュニア2名のメンターを担当" },
      { name: "技術発信", currentLevel: 2, targetLevel: 4, actionPlan: "月1回の技術ブログ + 年2回の登壇" },
      { name: "意思決定", currentLevel: 3, targetLevel: 4, actionPlan: "ADRプロセスをチームに導入" },
    ],
  },
];

継続的な学習

const LEARNING_RESOURCES = {
  books: {
    architecture: [
      "Designing Data-Intensive Applications (Martin Kleppmann)",
      "Software Architecture: The Hard Parts (Neal Ford)",
      "Building Microservices (Sam Newman)",
    ],
    leadership: [
      "Staff Engineer (Will Larson)",
      "The Manager's Path (Camille Fournier)",
      "An Elegant Puzzle (Will Larson)",
    ],
  },
  practices: [
    "社内の設計レビューに積極的に参加する",
    "オープンソースプロジェクトのアーキテクチャを読む",
    "障害レポートを分析して教訓を抽出する",
    "技術カンファレンスで登壇する",
    "RFCを書いて組織に提案する",
  ],
  communities: [
    "社内の設計ギルド / アーキテクチャ委員会",
    "地域の技術コミュニティ(勉強会、カンファレンス)",
    "オンラインコミュニティ(Zenn, Qiita, Dev.to)",
  ],
};

まとめ

ポイント内容
2つのトラックICトラック(技術深化)とマネジメントトラック
スタッフエンジニア技術+組織的影響力。L3への道
スキルマップ現在と目標のギャップを可視化して計画を立てる
継続的学習書籍、実践、コミュニティの3軸で成長し続ける

チェックリスト

  • ICトラックとマネジメントトラックの違いを理解した
  • スタッフエンジニアに求められるスキルを把握した
  • 自分のスキルマップを作成した
  • 継続的な学習の計画を立てた

次のステップへ

次は「L2の振り返りとL3への道」を学びます。10ヶ月間の学びを振り返り、次のステージへの道筋を確認しましょう。


推定読了時間: 30分