Экспертно применяет algorithms complexity для compiler engineer для проектирования сложных систем. Оптимизирует существующие решения и предотвращает архитектурные ошибки. Проводит code review и обучает коллег лучшим практикам.
Роли · Compiler Engineer · Senior
Что должен уметь Senior }
12 ключевых навыков, всего 55. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Senior }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Контроль версий и коллаборация, Компиляторы и языки.
Ключевые навыки для Senior
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 3
Экспертно применяет code quality для compiler engineer для проектирования сложных систем. Оптимизирует существующие решения и предотвращает архитектурные ошибки. Проводит code review и обучает коллег лучшим практикам.
Экспертно применяет data structures для compiler engineer для проектирования сложных систем. Оптимизирует существующие решения и предотвращает архитектурные ошибки. Проводит code review и обучает коллег лучшим практикам.
Контроль версий и коллаборация · 1
Экспертно применяет code review skill для compiler engineer для проектирования сложных систем. Оптимизирует существующие решения и предотвращает архитектурные ошибки. Проводит code review и обучает коллег лучшим практикам.
Компиляторы и языки · 8
Проектирует пайплайн AST трансформаций для оптимизирующего компилятора. Реализует type checking и name resolution на уровне AST. Строит Symbol Table с корректным scoping.
Проектирует instruction selection и register allocation для нового target. Реализует calling convention для custom ABI. Оптимизирует codegen для специфических CPU архитектур (x86/ARM/RISC-V).
Проектирует сложные оптимизационные проходы: автовекторизация, loop fusion, interprocedural анализ. Реализует alias analysis для unsafe трансформаций. Диагностирует регрессии от passes.
Проектирует high-performance интерпретатор с inline caching для динамических операций. Реализует specialization для часто выполняемых hot paths. Профилирует и оптимизирует interpreter overhead.
Проектирует многоуровневый JIT: interpreter → baseline JIT → optimizing JIT с profiling. Реализует deoptimization и on-stack replacement (OSR). Профилирует и оптимизирует overhead JIT компиляции.
Проектирует полный frontend компилятора: лексер, recursive descent парсер, AST builder. Реализует Pratt parsing для operator precedence. Оптимизирует производительность парсинга для больших кодовых баз.
Разрабатывает custom LLVM backend или target lowering для нестандартной архитектуры. Оптимизирует LLVM pipeline для специфических workload. Пишет target-специфичные instruction selection patterns.
Проектирует type system для нового языка: variance, higher-kinded types, existential types. Реализует incremental type checking для language server. Оптимизирует производительность type checker.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Lead
55 навыков получают более высокое ожидание или становятся ключевыми при переходе с Senior на Lead. Сначала самые большие скачки.
- Алгоритмы и сложность: Продвинутый → Эксперт
- Качество кода и рефакторинг: Продвинутый → Эксперт
- Структуры данных: Продвинутый → Эксперт
- AST и IR Manipulation: Продвинутый → Эксперт
- Code Generation: Продвинутый → Эксперт
- Code Review: Продвинутый → Эксперт
- Compiler Optimization Passes: Продвинутый → Эксперт
- Interpreter Design: Продвинутый → Эксперт
- JIT Compilation: Продвинутый → Эксперт
- Lexing и Parsing: Продвинутый → Эксперт
} в открытой матрице компетенций: 55 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.