Устанавливает стандарты применения algorithms complexity для compiler engineer в команде и принимает архитектурные решения. Определяет технический roadmap с учётом данного навыка. Менторит senior инженеров и влияет на практики смежных команд.
Роли · Compiler Engineer · Lead
Что должен уметь Lead }
12 ключевых навыков, всего 55. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Lead }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Контроль версий и коллаборация, Компиляторы и языки.
Ключевые навыки для Lead
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 3
Устанавливает стандарты применения code quality для compiler engineer в команде и принимает архитектурные решения. Определяет технический roadmap с учётом данного навыка. Менторит senior инженеров и влияет на практики смежных команд.
Устанавливает стандарты применения data structures для compiler engineer в команде и принимает архитектурные решения. Определяет технический roadmap с учётом данного навыка. Менторит senior инженеров и влияет на практики смежных команд.
Контроль версий и коллаборация · 1
Устанавливает стандарты применения code review skill для compiler engineer в команде и принимает архитектурные решения. Определяет технический roadmap с учётом данного навыка. Менторит senior инженеров и влияет на практики смежных команд.
Компиляторы и языки · 8
Архитектурирует систему AST трансформаций для компиляторного проекта. Принимает решения об IR представлении и оптимизационных проходах. Внедряет тестирование трансформаций.
Архитектурирует backend компилятора и codegen pipeline. Принимает решения об instruction scheduling и peephole optimization. Управляет командой backend инженеров.
Определяет стратегию и порядок optimization pipeline для компилятора. Управляет балансом между compilation time и code quality. Принимает решения об агрессивности оптимизаций.
Архитектурирует interpreter как часть полного language runtime. Принимает решения о балансе interpreter/JIT. Управляет развитием execution strategy.
Архитектурирует JIT подсистему для language runtime платформы. Принимает решения о стратегии компиляции, tiering policy и memory management JIT кода. Управляет командой JIT инженеров.
Определяет архитектуру frontend для нового языка или диалекта, принимает решения о грамматике. Устанавливает стандарты качества парсера в команде, проводит code review с фокусом на correctness.
Руководит интеграцией LLVM в компиляторный проект команды. Принимает архитектурные решения о версии LLVM и custom passes стратегии. Оценивает trade-offs LLVM vs QBE vs MLIR.
Архитектурирует эволюцию type system языка с учётом backwards compatibility. Принимает решения о breaking changes. Управляет командой type system инженеров.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Principal
0 навыков получают более высокое ожидание или становятся ключевыми при переходе с Lead на Principal. Сначала самые большие скачки.
} в открытой матрице компетенций: 55 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.