Проектирует высокопроизводительные алгоритмы: SIMD-ускоренные, cache-aware, branch-free. Применяет amortized analysis для memory allocators.
Роли · Systems Programmer (C/C++) · Senior
Что должен уметь Senior }
41 ключевых навыков, всего 94. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Senior }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Облако и инфраструктура, DevOps и CI/CD.
Ключевые навыки для Senior
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 12
Проектирует lock-free конкурентные графовые структуры для управления ресурсами на уровне ядра и планирования I/O. Архитектурит эффективные по памяти графовые представления для крупномасштабных таблиц маршрутизации и отслеживания зависимостей page cache. Менторит разработчиков по продвинутым алгоритмам для трассировки сборки мусора, обхода дерева устройств и графов привязки прерываний.
Проектирует высокопроизводительные async системы: custom runtime с io_uring, zero-allocation async, structured concurrency.
Архитектурит 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.
Внедряет quality infrastructure: continuous fuzzing (OSS-Fuzz), formal verification tools, code coverage для critical paths.
Проектирует lock-free системы: MPMC queues на atomics, hazard pointers, epoch-based reclamation. Применяет formal verification (ThreadSanitizer).
Проектирует системные архитектуры с ФП для корректности и производительности: 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. Оптимизирует стоимость и производительность. Внедряет 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
Проектирует стратегию тестирования для системного ПО: пирамида тестирования для слоёв kernel/driver/userspace, тестирование на основе санитайзеров (ASan/MSan/TSan), стресс-тестирование корректности конкурентности. Оптимизирует выполнение тестов с тестовыми окружениями на QEMU. Менторит команду по тестированию кода safety-critical систем.
Архитектура и проектирование · 1
Проектирует сложные системные архитектуры: microkernel vs monolith tradeoffs, multi-layer HAL, cross-platform abstraction. Обеспечивает backward compatibility и extensibility.
Контроль версий и коллаборация · 1
Проводит архитектурный review системных компонентов. Проверяет lock ordering, memory safety, ABI compatibility. Выявляет тонкие concurrency-баги и нарушения memory model.
Компиляторы и языки · 9
Проектирует кастомные IR-представления, оптимизированные под целевые архитектуры. Архитектурирует многопроходные компиляторные пайплайны с продвинутыми оптимизациями. Менторит инженеров по интеграции систем типов и доказательствам корректности IR.
Проектирует бэкенды генерации кода для кастомного оборудования и специализированных ISA. Архитектурирует стратегии автовекторизации и SIMD-эмиссии кода. Менторит инженеров по низкоуровневой оптимизации и совместному проектированию hardware-software.
Проектирует compiler passes и оптимизации с Compiler Optimization Passes. Работает с type systems. Менторит команду.
Проектирует DSL для критичных к производительности доменов: сетевые правила, политики управления памятью. Архитектурирует компиляцию DSL в оптимизированный нативный код с абстракциями нулевой стоимости. Менторит инженеров по проектированию языков для контекста системного программирования.
Проектирует высокопроизводительные рантаймы интерпретаторов с inline-кэшированием и спекулятивной оптимизацией. Архитектурирует FFI-слои и interop с нативным кодом для интеграции интерпретатора с системными библиотеками. Менторит инженеров по внутренностям VM, тюнингу GC и корректности рантайма.
Проектирует compiler passes и оптимизации с JIT Compilation. Работает с type systems. Менторит команду.
Проектирует архитектуру LSP-сервера с продвинутыми возможностями: семантический анализ, кросс-проектное индексирование и кастомные расширения протокола. Менторит команду по интеграции системы типов и инкрементальной компиляции для инструментов редактора.
Проектирует архитектуры front-end компилятора с генераторами лексеров и GLR/Earley-парсерами для сложных грамматик. Реализует трансформации с сохранением source map и менторит команду по теории формальных языков.
Проектирует типобезопасные абстракции для системных API, обеспечивающие корректность на этапе компиляции. Оценивает и влияет на решения по проектированию системы типов в языках вроде Rust, внося вклад в более безопасные паттерны системного программирования.
Embedded и IoT · 6
Глубоко владеет Bare Metal Programming. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.
Глубоко владеет C для Embedded. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.
Глубоко владеет C++ для Embedded. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.
Глубоко владеет Real-Time Systems Design. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.
Глубоко владеет RTOS Fundamentals. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.
Глубоко владеет Rust для Embedded. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.
Performance Engineering · 8
Проектирует production-grade инфраструктуру бенчмаркинга для системного ПО с автоматическим обнаружением регрессий и отслеживанием производительности. Разрабатывает бенчмарки, моделирующие реальные взаимодействия с оборудованием и поведение на уровне ядра. Внедряет performance budget в release pipeline. Менторит команду.
Проектирует решения CPU-профилирования для низкоуровневых систем, включая ядра ОС, гипервизоры и встроенное ПО. Использует события PMU, PEBS и LBR для микроархитектурного анализа. Оптимизирует критические пути исполнения на основе поведения кэш-иерархии и анализа pipeline-стопов. Обучает команду продвинутым техникам профилирования.
Проектирует продвинутые решения для профилирования I/O с использованием кастомных eBPF-программ и kernel tracepoints. Оптимизирует I/O-пути на уровне блочных устройств, файловых систем и VFS для продакшн-систем. Реализует zero-copy I/O и стратегии direct I/O. Менторит инженеров по диагностике сложных проблем I/O-латентности через весь storage stack.
Проектирует архитектуры систем с ультра-низкой латенси: kernel bypass networking (DPDK, io_uring), политики планирования реального времени и memory-mapped I/O для zero-copy путей данных. Реализует детерминированные гарантии латенси через изоляцию CPU и steering прерываний. Проектирует инфраструктуру измерения латенси с наносекундной точностью. Менторит команду по техникам hardware-aware оптимизации.
Проектирует комплексные стратегии профилирования памяти для системного ПО, включая подсистемы ядра, среды выполнения и высокопроизводительные сервисы. Создаёт фреймворки отслеживания памяти, интегрирующие perf, eBPF-пробы для памяти и API интроспекции jemalloc. Оптимизирует расположение данных в памяти для кэш-эффективности через редизайн структур данных на основе профилирования. Наставляет команду по диагностике сложных проблем: false sharing, NUMA-aware аллокации и поведение transparent huge pages.
Проектирует сквозные системы performance budgets для ПО уровня ОС и инфраструктуры: бюджеты CPU по подсистемам, стратегии выделения памяти с жёсткими лимитами, бюджеты I/O-планирования и целевые задержки прерываний. Оптимизирует критические пути через анализ cache-line и NUMA-aware выделение. Менторит команду по hardware-aware performance engineering и контролю бюджетов.
Проектирует эффективные подсистемы управления ресурсами: кастомные аллокаторы, zero-copy I/O пайплайны и NUMA-aware планирование. Оптимизирует утилизацию ресурсов на уровне ядра для высокопроизводительных нагрузок. Менторит команду по системной настройке производительности.
Проектирует архитектуры обхода ядра на основе DPDK или io_uring для обработки пакетов на скорости линии. Создаёт системы lock-free очередей, масштабируемые между NUMA-узлами с минимальным обменом кэш-линий. Реализует движки пакетной обработки с адаптивным объединением, динамически балансирующие задержку и пропускную способность с учётом профилей нагрузки и топологии оборудования.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Lead
92 навыков получают более высокое ожидание или становятся ключевыми при переходе с Senior на Lead. Сначала самые большие скачки.
- Алгоритмы и сложность: Продвинутый → Эксперт
- Алгоритмы на графах: Продвинутый → Эксперт
- Асинхронное программирование: Продвинутый → Эксперт
- Дженерики и параметрический полиморфизм: Продвинутый → Эксперт
- Качество кода и рефакторинг: Продвинутый → Эксперт
- Многопоточное программирование: Продвинутый → Эксперт
- Основы функционального программирования: Продвинутый → Эксперт
- Основы System Design: Продвинутый → Эксперт
- Паттерны проектирования: Продвинутый → Эксперт
- Профилирование памяти: Продвинутый → Эксперт
} в открытой матрице компетенций: 94 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.