Establishes algorithms and complexity standards for the compiler engineering team and makes architectural decisions. Defines technical roadmap considering this skill. Mentors senior engineers and influences practices of adjacent teams.
Roles · Compiler Engineer · Lead
What a Lead } should know
12 core skills, 55 in total. Expectations per skill, and what changes at the next level.
This page lists what a Lead } is expected to know and do, skill by skill. Core skills are the ones a manager and peers assess in a review cycle; the rest count only in self-assessment. Main areas: Programming Fundamentals, Version Control & Collaboration, Compilers & Languages.
Core skills for a Lead
Grouped by area. The label on the right is the expected depth: Awareness, Working, Advanced or Expert.
Programming Fundamentals · 3
Establishes code quality standards for the compiler engineering team and makes architectural decisions. Defines technical roadmap considering this skill. Mentors senior engineers and influences practices of adjacent teams.
Establishes data structure standards for the compiler engineering team and makes architectural decisions. Defines technical roadmap considering this skill. Mentors senior engineers and influences practices of adjacent teams.
Version Control & Collaboration · 1
Establishes code review standards for the compiler engineering team and makes architectural decisions. Defines technical roadmap considering this skill. Mentors senior engineers and influences practices of adjacent teams.
Compilers & Languages · 8
Architects AST transformation system for the compiler project. Makes decisions about IR representation and optimization passes. Introduces transformation testing.
Architects compiler backend and codegen pipeline. Makes decisions about instruction scheduling and peephole optimization. Manages the backend engineering team.
Defines strategy and order of the optimization pipeline for the compiler. Manages balance between compilation time and code quality. Makes decisions about optimization aggressiveness.
Architects interpreter as part of a complete language runtime. Makes decisions about interpreter/JIT balance. Manages execution strategy evolution.
Architects JIT subsystem for the language runtime platform. Makes decisions about compilation strategy, tiering policy and JIT code memory management. Manages the JIT engineering team.
Defines frontend architecture for a new language or dialect, makes grammar decisions. Establishes parser quality standards for the team, conducts code reviews focusing on correctness.
Leads LLVM integration in the team's compiler project. Makes architectural decisions about LLVM version and custom passes strategy. Evaluates trade-offs of LLVM vs QBE vs MLIR.
Architects type system evolution for the language with backward compatibility in mind. Makes decisions about breaking changes. Manages the type system engineering team.
Additional skills
Not assessed by the team, but part of the self-assessment and the development plan.
What changes at Principal
0 skills get a higher expectation or become core when moving from Lead to Principal. The biggest jumps first.
} in the open competency matrix: 55 skills across 5 levels. The matrix is free for individuals and stays free.