Роли · Compiler Engineer · Junior

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

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

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

12ключевых навыков
43дополнительных навыков
3областей
0%на уровне Продвинутый или Эксперт
Оценить себя как Junior Полная матрица роли

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

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

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

Алгоритмы и сложность Осведомлённость

Знает базовые концепции algorithms complexity для compiler engineer и умеет применять их в типовых задачах. Использует стандартные инструменты и следует установленным практикам команды. Понимает когда и почему применяется данный подход.

Знает базовые концепции code quality для compiler engineer и умеет применять их в типовых задачах. Использует стандартные инструменты и следует установленным практикам команды. Понимает когда и почему применяется данный подход.

Структуры данных Осведомлённость

Знает базовые концепции data structures для compiler engineer и умеет применять их в типовых задачах. Использует стандартные инструменты и следует установленным практикам команды. Понимает когда и почему применяется данный подход.

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

Code Review Осведомлённость

Знает базовые концепции code review skill для compiler engineer и умеет применять их в типовых задачах. Использует стандартные инструменты и следует установленным практикам команды. Понимает когда и почему применяется данный подход.

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

AST и IR Manipulation Осведомлённость

Понимает структуру Abstract Syntax Tree и умеет рекурсивно обходить дерево. Применяет visitor паттерн для простых трансформаций. Знает основные типы узлов AST для популярных языков.

Code Generation Осведомлённость

Понимает что такое кодогенерация и разницу между native code, bytecode и интерпретацией. Знает базовые концепции register allocation и instruction selection. Умеет читать x86/ARM assembly.

Compiler Optimization Passes Осведомлённость

Знает классические компиляторные оптимизации: constant folding, DCE, CSE. Понимает когда оптимизации корректны и безопасны. Умеет читать и сравнивать оптимизированный IR.

Interpreter Design Осведомлённость

Понимает разницу между компилятором и интерпретатором, знает tree-walking interpreter паттерн. Реализует простой интерпретатор для арифметических выражений с переменными.

JIT Compilation Осведомлённость

Понимает разницу между AOT и JIT компиляцией и ситуации применения каждого. Знает концепции hot path, профилирование выполнения, deoptimization. Изучал работу JIT в JVM (HotSpot) или V8.

Lexing и Parsing Осведомлённость

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

LLVM Framework Осведомлённость

Знает архитектуру LLVM: frontend, IR, backend, и роль каждого компонента. Понимает структуру LLVM IR и базовые инструкции. Умеет компилировать C через clang и изучать сгенерированный IR.

Type Inference и Type Checking Осведомлённость

Понимает базовые алгоритмы вывода типов: unification, Hindley-Milner inference. Знает разницу между structural и nominal type systems. Умеет работать с simple generics.

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

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

Алгоритмы на графахАсинхронное программированиеДженерики и параметрический полиморфизмИммутабельность и персистентные структурыИнтеграционное тестированиеМногопоточное программированиеМонады и функторыОсновы сетейОсновы функционального программированияОсновы System DesignПаттерны проектированияПрактики безопасного кодаПринципы ООП и SOLIDПрофилирование памятиСтруктурированное логированиеТипобезопасность и системы типовУправление памятьюAWSBenchmarking ToolsChatGPT / ClaudeCPU ProfilingDockerDSL Design и ImplementationGit AdvancedGitHub Actions / GitLab CIGitHub CopilotI/O и Disk ProfilingKubernetes CoreLanguage Server ProtocolLatency OptimizationMemory ProfilingOWASP и безопасность приложенийPerformance BudgetsPostgreSQLPrometheus и GrafanaPrompt Engineering для кодаProperty-Based TestingRedisResource Optimization FinOpsREST API DesignTDD и BDDThroughput OptimizationUnit-тестирование

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

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

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

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