Роли · Systems Programmer (C/C++) · Senior

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

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

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

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

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

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

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

Проектирует высокопроизводительные алгоритмы: SIMD-ускоренные, cache-aware, branch-free. Применяет amortized analysis для memory allocators.

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

Проектирует lock-free конкурентные графовые структуры для управления ресурсами на уровне ядра и планирования I/O. Архитектурит эффективные по памяти графовые представления для крупномасштабных таблиц маршрутизации и отслеживания зависимостей page cache. Менторит разработчиков по продвинутым алгоритмам для трассировки сборки мусора, обхода дерева устройств и графов привязки прерываний.

Архитектурит generic-абстракции для системной инфраструктуры: проектирует generic-интерфейсы аллокаторов и type-параметризованные memory pools с compile-time валидацией размеров через const generics. Реализует generic lock-free структуры данных с корректными Send/Sync bounds, применяет паттерны generic specialization для SIMD-оптимизированных code paths. Оценивает стоимость мономорфизации в масштабных системах — управляет binary bloat через стратегическое использование trait objects, type-erased обёрток и техник generic function outlining.

Проектирует системные архитектуры с ФП для корректности и производительности: type-state паттерны для проверки протоколов при компиляции, линейные типы для управления ресурсами, чистые ядра с тонкими unsafe-границами. Менторит команду по балансу чистоты ФП и zero-cost abstractions.

Проектирует с advanced patterns: Actor model, zero-copy pipeline, lock-free observer, compile-time strategy через template specialization.

Обладает глубокой экспертизой в профилировании памяти на уровне ОС, оптимизирует конфигурации ядерных аллокаторов, минимизирует накладные расходы page faults и настраивает memory-mapped I/O для продакшн-систем. Снижает overhead системных вызовов через кастомные стратегии аллокации.

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

Проектирует custom data structures: lock-free queues (MPSC/MPMC), memory-mapped B+ trees, SIMD-friendly AoS vs SoA layouts.

Обладает глубокой экспертизой в типобезопасности системного уровня — проектирует типобезопасные интерфейсы ядра с zero-cost абстракциями, реализует верификацию стейт-машин на этапе компиляции через typestate-паттерны и использует программирование на уровне типов для гарантий layout памяти. Архитектурирует типобезопасные границы FFI и слои абстракции аппаратуры. Менторит команду по аудиту unsafe-кода, type-driven доказательствам корректности и балансу выразительности системы типов с производительностью компиляции.

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

Проектирует memory management: jemalloc/mimalloc tuning, NUMA-aware allocation, transparent huge pages, memory compaction strategies.

Облако и инфраструктура · 2

Основы сетей Продвинутый

Проектирует высокопроизводительные сетевые стеки для системных приложений — kernel bypass с DPDK/io_uring, реализации кастомных протоколов и сетевое взаимодействие с zero-copy. Настраивает внутреннее устройство service mesh и понимает сетевое программирование на eBPF. Владеет внутренним устройством gRPC, управлением потоками HTTP/2 и транспортом QUIC. Проектирует реализации DNS-резолверов и оптимизирует сетевую задержку на уровне системных вызовов.

Docker Продвинутый

Проектирует инфраструктурные решения с Docker. Оптимизирует стоимость и производительность. Внедряет best practices и security hardening.

DevOps и CI/CD · 1

Проектирует CI/CD платформу для нескольких проектов. Создаёт reusable workflows/templates. Оптимизирует время build на уровне организации. Настраивает security scanning в pipeline. Внедряет deployment strategies (blue-green, canary). Интегрирует с ArgoCD/FluxCD.

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

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

Проектирует стратегию тестирования для системного ПО: пирамида тестирования для слоёв kernel/driver/userspace, тестирование на основе санитайзеров (ASan/MSan/TSan), стресс-тестирование корректности конкурентности. Оптимизирует выполнение тестов с тестовыми окружениями на QEMU. Менторит команду по тестированию кода safety-critical систем.

Архитектура и проектирование · 1

Основы System Design Продвинутый

Проектирует сложные системные архитектуры: microkernel vs monolith tradeoffs, multi-layer HAL, cross-platform abstraction. Обеспечивает backward compatibility и extensibility.

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

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

Проводит архитектурный review системных компонентов. Проверяет lock ordering, memory safety, ABI compatibility. Выявляет тонкие concurrency-баги и нарушения memory model.

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

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

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

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

Проектирует бэкенды генерации кода для кастомного оборудования и специализированных ISA. Архитектурирует стратегии автовекторизации и SIMD-эмиссии кода. Менторит инженеров по низкоуровневой оптимизации и совместному проектированию hardware-software.

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

Проектирует compiler passes и оптимизации с Compiler Optimization Passes. Работает с type systems. Менторит команду.

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

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

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

Проектирует высокопроизводительные рантаймы интерпретаторов с inline-кэшированием и спекулятивной оптимизацией. Архитектурирует FFI-слои и interop с нативным кодом для интеграции интерпретатора с системными библиотеками. Менторит инженеров по внутренностям VM, тюнингу GC и корректности рантайма.

JIT Compilation Продвинутый

Проектирует compiler passes и оптимизации с JIT Compilation. Работает с type systems. Менторит команду.

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

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

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

Проектирует архитектуры front-end компилятора с генераторами лексеров и GLR/Earley-парсерами для сложных грамматик. Реализует трансформации с сохранением source map и менторит команду по теории формальных языков.

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

Проектирует типобезопасные абстракции для системных API, обеспечивающие корректность на этапе компиляции. Оценивает и влияет на решения по проектированию системы типов в языках вроде Rust, внося вклад в более безопасные паттерны системного программирования.

Embedded и IoT · 6

Bare Metal Programming Продвинутый

Глубоко владеет Bare Metal Programming. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.

C для Embedded Продвинутый

Глубоко владеет C для Embedded. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.

C++ для Embedded Продвинутый

Глубоко владеет C++ для Embedded. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.

Real-Time Systems Design Продвинутый

Глубоко владеет Real-Time Systems Design. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.

RTOS Fundamentals Продвинутый

Глубоко владеет RTOS Fundamentals. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.

Rust для Embedded Продвинутый

Глубоко владеет Rust для Embedded. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.

Performance Engineering · 8

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

Проектирует production-grade инфраструктуру бенчмаркинга для системного ПО с автоматическим обнаружением регрессий и отслеживанием производительности. Разрабатывает бенчмарки, моделирующие реальные взаимодействия с оборудованием и поведение на уровне ядра. Внедряет performance budget в release pipeline. Менторит команду.

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

Проектирует решения CPU-профилирования для низкоуровневых систем, включая ядра ОС, гипервизоры и встроенное ПО. Использует события PMU, PEBS и LBR для микроархитектурного анализа. Оптимизирует критические пути исполнения на основе поведения кэш-иерархии и анализа pipeline-стопов. Обучает команду продвинутым техникам профилирования.

I/O и Disk Profiling Продвинутый

Проектирует продвинутые решения для профилирования I/O с использованием кастомных eBPF-программ и kernel tracepoints. Оптимизирует I/O-пути на уровне блочных устройств, файловых систем и VFS для продакшн-систем. Реализует zero-copy I/O и стратегии direct I/O. Менторит инженеров по диагностике сложных проблем I/O-латентности через весь storage stack.

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

Проектирует архитектуры систем с ультра-низкой латенси: kernel bypass networking (DPDK, io_uring), политики планирования реального времени и memory-mapped I/O для zero-copy путей данных. Реализует детерминированные гарантии латенси через изоляцию CPU и steering прерываний. Проектирует инфраструктуру измерения латенси с наносекундной точностью. Менторит команду по техникам hardware-aware оптимизации.

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

Проектирует комплексные стратегии профилирования памяти для системного ПО, включая подсистемы ядра, среды выполнения и высокопроизводительные сервисы. Создаёт фреймворки отслеживания памяти, интегрирующие perf, eBPF-пробы для памяти и API интроспекции jemalloc. Оптимизирует расположение данных в памяти для кэш-эффективности через редизайн структур данных на основе профилирования. Наставляет команду по диагностике сложных проблем: false sharing, NUMA-aware аллокации и поведение transparent huge pages.

Performance Budgets Продвинутый

Проектирует сквозные системы performance budgets для ПО уровня ОС и инфраструктуры: бюджеты CPU по подсистемам, стратегии выделения памяти с жёсткими лимитами, бюджеты I/O-планирования и целевые задержки прерываний. Оптимизирует критические пути через анализ cache-line и NUMA-aware выделение. Менторит команду по hardware-aware performance engineering и контролю бюджетов.

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

Проектирует эффективные подсистемы управления ресурсами: кастомные аллокаторы, zero-copy I/O пайплайны и NUMA-aware планирование. Оптимизирует утилизацию ресурсов на уровне ядра для высокопроизводительных нагрузок. Менторит команду по системной настройке производительности.

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

Проектирует архитектуры обхода ядра на основе DPDK или io_uring для обработки пакетов на скорости линии. Создаёт системы lock-free очередей, масштабируемые между NUMA-узлами с минимальным обменом кэш-линий. Реализует движки пакетной обработки с адаптивным объединением, динамически балансирующие задержку и пропускную способность с учётом профилей нагрузки и топологии оборудования.

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

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

Аппаратные интерфейсыАрхитектура CPUВиртуализацияДокументирование APIИндексирование БДИнструменты отладкиИнтеграционное тестированиеКросс-компиляцияЛинкер и загрузчикОбработка прерыванийОбработка сигналов (embedded)Операционные системыОптимизация компилятораПрактики безопасного кодаПринципы ООП и SOLIDПрограммирование на CПрограммирование реального времениПрофилирование и бенчмаркингПрофилирование кодаПрофилирование производительностиРазработка драйверовРазработка прошивокРазработка ядра ОСРазработка RTOSСертификация безопасностиСинхронизация потоковСистемное программирование на GoСтатический анализСтруктурированное логированиеТестирование embeddedУправление памятью (системное)Чистый кодAWSBare Metal программированиеChatGPT / ClaudeCursor IDEFrontend компилятораGit AdvancedGitHub CopilotGraphQL DesignKubernetes CoreLLVM FrameworkLow-Latency системыOpenTelemetryOWASP и безопасность приложенийPostgreSQLPrometheus и GrafanaPrompt Engineering для кодаRedisREST API DesignRustTerraformUnit-тестирование

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

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

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

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