Роли · Language Tooling Engineer · Senior

Что должен уметь Senior }

36 ключевых навыков, всего 51. Ожидания по каждому навыку и что меняется на следующем уровне.

На этой странице — что ожидается от Senior }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, API и интеграции, DevOps и CI/CD.

36ключевых навыков
15дополнительных навыков
8областей
100%на уровне Продвинутый или Эксперт
Оценить себя как Senior Полная матрица роли

Ключевые навыки для Senior

Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.

Основы программирования · 13

Применяет алгоритмическую экспертизу к разработке компиляторов: оптимизация алгоритмов парсинга (LL/LR/PEG), проектирование алгоритмов вывода типов, алгоритмы выделения регистров для кодогенерации. Проектирует алгоритмы инкрементальной компиляции, минимизирующие область перекомпиляции для больших кодовых баз.

Алгоритмы на графах Продвинутый

Проектирует проходы оптимизации IR с использованием фронтов доминирования, графов потока управления и алгоритмов построения SSA. Архитектурит инкрементальный перепарсинг с граф-диффингом для отзывчивости IDE. Менторит разработчиков по продвинутым графовым алгоритмам для вывода типов, escape-анализа и межпроцедурного потока данных.

Проектирует async-архитектуры для языковых инструментов: стратегии параллельной компиляции, архитектура async LSP-сервера, конкурентное наблюдение за файлами и инкрементальная компиляция. Менторит команду по async-паттернам для оптимизации производительности компилятора.

Проектирует кросс-языковый тулинг для generic-систем типов: реализует constraint solvers для вывода generic-типов (расширения Hindley-Milner, локальный вывод типов), строит инкрементальные type checkers с эффективным кэшированием generic-инстанцирований. Архитектурит IDE-фичи для generic-кода — smart completion с выводом type-параметров, generic-рефакторинг (extract type parameter, inline type alias) и диагностические сообщения, ясно объясняющие цепочки нарушений constraints в сложных generic-контекстах.

Проектирует архитектуры языковых инструментов, использующие иммутабельность для инкрементального анализа, конкурентной обработки и надёжного IDE-опыта. Внедряет продвинутые паттерны — фреймворки инкрементальных вычислений в стиле Salsa с иммутабельными входами, дизайн персистентных синтаксических деревьев для zero-copy редактирования и lock-free конкурентный анализ на общих иммутабельных снапшотах. Оптимизирует иммутабельные структуры данных для отзывчивой производительности IDE с эффективным structural sharing и ленивым вычислением.

Проектирует стандарты качества кода для компиляторов и языкового инструментария: ясность работы с AST, консистентность visitor-паттернов, сопровождаемость парсеров. Рефакторит сложные пайплайны кодогенерации для тестируемости. Устанавливает практики ревью для семантической корректности, предотвращения регрессий производительности и кросс-платформенной совместимости.

Обладает глубокой экспертизой в многопоточности для компиляторов: проектирует архитектуры параллельной компиляции для оптимизации скорости сборки, внедряет конкурентную проверку типов и проходы анализа кода, оптимизирует планирование потоков для инкрементальной компиляции. Менторит команду по паттернам конкурентного программирования для производительности языковых инструментов.

Архитектурит внутренности компиляторов с продвинутым ФП: проходы оптимизации как композируемые чистые трансформации, type checkers на монадических constraint solvers, моделирование семантики через GADT. Менторит команду по recursion schemes для трансформаций AST и катаморфизмам для кодогенерации.

Обладает глубокой экспертизой в паттернах проектирования для компиляторов: проектирует расширяемые архитектуры компиляторов с паттернами посетитель и интерпретатор, внедряет plugin-системы для проходов компилятора и генераторов кода, оптимизирует использование паттернов для производительности компиляции. Менторит команду по паттернам проектирования компиляторов для инструментов языковой экосистемы.

Принципы ООП и SOLID Продвинутый

Применяет ООП/SOLID в архитектуре компилятора: visitor pattern для обхода AST, abstract factory для создания узлов синтаксиса, strategy pattern для бэкендов кодогенерации. Проектирует расширяемые пайплайны компилятора с чистым разделением между фазами парсинга, семантического анализа и кодогенерации.

Структуры данных Продвинутый

Выбирает оптимальные структуры данных для внутренних компонентов компилятора: rope-структуры для текстовых буферов редактора, таблицы интернированных строк для разрешения символов, персистентные синтаксические деревья для инкрементальной компиляции. Оптимизирует представление узлов AST для минимального объёма памяти. Проектирует эффективные структуры данных для движков вывода типов и проходов семантического анализа.

Обладает глубокой экспертизой в теории и реализации систем типов — проектирует движки вывода типов, реализует constraint-based type solvers и строит type-aware инструменты рефакторинга. Архитектурирует системы постепенной типизации, балансируя soundness с эргономикой принятия. Менторит команду по основам формальной теории типов, компромиссам разрешимости в проверке типов и практическим паттернам дизайна систем типов.

Управление памятью Продвинутый

Проектирует memory-efficient архитектуры компиляторов/LSP: инкрементальная компиляция с выборочной инвалидацией, persistent структуры данных для иммутабельных AST и memory-mapped исходные файлы. Реализует кастомные аллокаторы для проходов проверки типов и генерации кода. Оптимизирует отзывчивость IDE через ленивые вычисления и demand-driven вычисления. Менторит команду по профилированию памяти для языковых инструментов.

API и интеграции · 2

Документирование API Продвинутый

Проектирует комплексную архитектуру API-документации для продуктов языкового тулчейна. Определяет стандарты документирования для расширений LSP, API компилятора и интерфейсов debug adapter с матрицами соответствия протоколам. Формирует автоматическую генерацию документации из спецификаций языков и определений схем протоколов.

REST API Design Продвинутый

Проектирует архитектуру API для языковых сервисов: API анализа кода в масштабе, эндпоинты compilation-as-a-service, API интеграции с IDE с возможностями реального времени. Определяет API-контракты для экосистемы языковых инструментов. Менторит команду по дизайну API для инструментов разработчика.

DevOps и CI/CD · 1

GitHub Actions / GitLab CI Продвинутый

Проектирует архитектуру CI/CD для языковых инструментов: оптимизирует мультиплатформенные пайплайны сборки компилятора, внедряет стратегии прогрессивного релиза для пакетов языковой экосистемы, архитектурит обнаружение регрессий бенчмарков в CI. Менторит команду по лучшим практикам CI/CD компилятора.

Тестирование и QA · 4

Проектирует стратегию интеграционного тестирования компонентов языкового тулчейна от лексера до генерации кода. Внедряет автоматизированное тестирование на уровнях парсера, type checker и интеграции с IDE. Оптимизирует тестовую пирамиду, балансируя юнит-тесты грамматик с end-to-end валидацией интеграции компиляции. Менторит команду по тестированию соответствия протоколу Language Server и кросс-редакторной совместимости.

Property-Based Testing Продвинутый

Проектирует стратегию property-based тестирования для всего языкового тулчейна. Реализует автоматическую верификацию корректности компилятора, инвариантов оптимизатора и свойств кодогенерации. Менторит команду по эффективному проектированию генераторов и сжатию.

TDD и BDD Продвинутый

Проектирует архитектуру тестирования для платформы языкового тулинга: наборы тестов конформности для спецификации языка, fuzz-тестирование для робастности парсера и BDD-driven приёмка фич. Реализует golden file тестирование для генерации и форматирования кода. Создаёт тестовую инфраструктуру для кросс-платформенной валидации языковых инструментов. Менторит команду по test-driven разработке компиляторов/LSP.

Unit-тестирование Продвинутый

Проектирует стратегию тестирования для языковых инструментов: пирамида тестирования для этапов lexer/parser/analyzer/codegen, conformance тест-сьюты для спецификации языка, фаззинг для устойчивости парсера. Оптимизирует выполнение тестов компилятора с инкрементальным выбором тестов. Менторит команду по snapshot-тестированию и предотвращению регрессий.

AI-ассистированная разработка · 2

ChatGPT / Claude Продвинутый

Обладает глубокой экспертизой применения ChatGPT/Claude для разработки языковых инструментов. Проектирует AI-ассистированные процессы для прототипирования грамматик, реализации системы типов и автоматической генерации тестового корпуса. Оптимизирует prompt engineering для задач компиляторной инженерии и менторит команду по использованию LLM для исследования дизайна языков и документации.

GitHub Copilot Продвинутый

Проектирует стратегии внедрения GitHub Copilot для команд языковых инструментов: оптимизирует prompt engineering для кода компилятора и парсера, внедряет валидацию корректности для AI-сгенерированных трансформаций AST, оценивает точность Copilot для соответствия спецификации языка. Менторит команду по критической оценке AI-ассистированного кода компилятора.

Контроль версий и коллаборация · 3

Проектирует комплексные системы документации для языковых инструментов: интерактивная документация с встроенным выполнением кода, version-aware API-референсы и руководства по миграции, генерируемые из детекции breaking changes. Реализует тестирование документации (doctests) как часть CI. Менторит команду по архитектуре документации.

Code Review Продвинутый

Проектирует процессы код-ревью для языковых инструментов: стандарты ревью корректности компилятора, чек-листы ревью устойчивости парсера, gates ревью соответствия спецификации языка. Менторит команду по ревью кода компилятора на корректность и производительность.

Git Advanced Продвинутый

Проектирует Git-воркфлоу для команд языковых инструментов: внедряет стратегии ветвления для версионирования спецификации совместно с релизами компилятора/рантайма, оптимизирует управление monorepo для пакетов экосистемы языка, автоматизирует обнаружение регрессий через интеграцию bisect в CI. Менторит команду по поддержанию обратной совместимости через аккуратное управление ветками.

Компиляторы и языки · 7

AST и IR Manipulation Продвинутый

Проектирует AST-фреймворки для функций IDE: автодополнение, семантическая подсветка. Архитектурирует инкрементальный парсинг и type-aware трансформации. Менторит команду по методам анализа программ на основе деревьев.

Code Generation Продвинутый

Проектирует пайплайны генерации кода с подключаемыми бэкендами для нескольких целевых платформ. Архитектурирует стратегии JIT-компиляции и инкрементальной генерации кода. Менторит команду по проектированию компиляторных бэкендов и компромиссам оптимизации.

DSL Design и Implementation Продвинутый

Архитектурирует экосистемы DSL с компонуемыми грамматиками, системами типов и целями компиляции. Проектирует протоколы языковых серверов для поддержки DSL в IDE. Менторит команду по принципам проектирования языков и компромиссам пользовательского опыта.

Interpreter Design Продвинутый

Проектирует архитектуры интерпретаторов с уровнями JIT-компиляции и адаптивной оптимизацией. Архитектурирует инфраструктуру отладки и профилирования для рантаймов интерпретируемых языков. Менторит команду по компромиссам проектирования VM и инженерии производительности рантайма.

Language Server Protocol Продвинутый

Проектирует архитектуру языкового сервера с анализом всего workspace, поддержкой рефакторинга и code actions. Оптимизирует производительность сервера для больших кодовых баз с ленивым вычислением и стратегиями кэширования.

Lexing и Parsing Продвинутый

Проектирует архитектуры инкрементального парсинга (в стиле tree-sitter) для обратной связи редактора в реальном времени. Реализует композицию грамматик для встроенных языков и оптимизирует производительность парсера для больших исходных файлов.

Type Inference и Type Checking Продвинутый

Проектирует продвинутые возможности системы типов, включая зависимые типы, GADT и вычисления на уровне типов. Архитектурно проектирует оптимизационные проходы компилятора, использующие информацию о типах для улучшения кодогенерации. Менторит команду по теории типов.

Performance Engineering · 4

Benchmarking Tools Продвинутый

Проектирует инфраструктуру бенчмаркинга для проектов языкового тулинга с автоматическим отслеживанием регрессий между релизами. Создаёт репрезентативные benchmark-корпуса для разнообразных кодовых баз и сценариев компиляции. Внедряет performance budget для compiler pass и отзывчивости IDE. Менторит команду.

CPU Profiling Продвинутый

Проектирует стратегии CPU-профилирования для сложных языковых тулчейнов, включая LSP-серверы, компиляторы и отладчики. Создаёт специализированные профилировочные стенды для измерения производительности на уровне инструкций. Обучает команду интерпретации данных IPC, промахов кэша и предсказания ветвлений с аппаратных счётчиков.

Latency Optimization Продвинутый

Проектирует latency-оптимизированные архитектуры языковых инструментов: demand-driven компиляция с минимальным пересчётом, параллельные пайплайны анализа с объединением результатов и предиктивный prefetching кандидатов автодополнения. Реализует бюджеты латенси для операций IDE (16мс для отклика на нажатие, 100мс для автодополнения). Создаёт детекцию регрессий производительности в CI. Менторит команду по дизайну инструментов с учётом латенси.

Memory Profiling Продвинутый

Проектирует инфраструктуру профилирования памяти для языковых инструментальных цепочек — отслеживание пользовательских аллокаторов, регрессионные тесты памяти на этапе компиляции и автоматическое обнаружение утечек в CI. Оптимизирует расположение в памяти ключевых структур данных компилятора (AST, таблицы символов, графы типов) на основе данных massif, heaptrack и кастомной инструментации. Наставляет команду по проектированию IR с эффективным использованием памяти и выявляет системные горячие точки аллокаций на различных стадиях многопроходной компиляции.

Дополнительные навыки

Команда их не оценивает, но они входят в самооценку и план развития.

Основы сетейОсновы System DesignПрактики безопасного кодаСтруктурированное логированиеAWSCursor IDEDockerGraphQL DesignKubernetes CoreOpenTelemetryOWASP и безопасность приложенийPostgreSQLPrometheus и GrafanaPrompt Engineering для кодаRedis

Что меняется на Lead

51 навыков получают более высокое ожидание или становятся ключевыми при переходе с Senior на Lead. Сначала самые большие скачки.

Страница Lead →
Прогоните это со всей командой
Самооценка плюс оценка руководителя и коллег по одной матрице, зоны роста и готовность к следующему уровню для каждого инженера. Team Pro бесплатно 14 дней; личные инструменты бесплатны всегда.
Попробовать с командой (14 дней бесплатно) Отправить тимлиду

} в открытой матрице компетенций: 51 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.