Выберите текущую позицию

Укажите роль и уровень — система покажет путь развития, навыки и gap-анализ.

Путь развития

Junior

0-2 года

Текущий

Ответственность: Написание кода на C/C++. Работа с системными вызовами. Отладка memory issues (Valgrind/ASan). Написание unit-тестов.

Ключевые навыки:

Code Review Нужно
GitHub Actions / GitLab CI Нужно
Алгоритмы и сложность Нужно
Асинхронное программирование Нужно
Качество кода и рефакторинг Нужно
Многопоточное программирование Нужно
Основы System Design Нужно
Основы сетей Нужно
Паттерны проектирования Нужно
Структуры данных Нужно
Управление памятью Нужно

Middle

2-5 лет

Следующий

Ответственность: Оптимизация производительности. Многопоточное программирование (pthreads/std::thread). Профилирование (perf). Разработка библиотек.

Ключевые навыки:

Code Review Нужно
GitHub Actions / GitLab CI Нужно
Алгоритмы и сложность Нужно
Асинхронное программирование Нужно
Качество кода и рефакторинг Нужно
Многопоточное программирование Нужно
Основы System Design Нужно
Основы сетей Нужно
Паттерны проектирования Нужно
Структуры данных Нужно
Управление памятью Нужно
Переход: ~2-3 года
  • Самостоятельно реализовал 3+ проекта
  • Провёл успешные код-ревью
  • Участвовал в разрешении production инцидентов

Senior

5-8 лет

Ответственность: Архитектура системного ПО. Lock-free программирование. Kernel modules. SIMD оптимизация. Проектирование API.

Ключевые навыки:

AST и IR Manipulation Нужно
Bare Metal Programming Нужно
Benchmarking Tools Нужно
C для Embedded Нужно
C++ для Embedded Нужно
Code Generation Нужно
Code Review Нужно
Compiler Optimization Passes Нужно
CPU Profiling Нужно
Docker Нужно
DSL Design и Implementation Нужно
GitHub Actions / GitLab CI Нужно
I/O и Disk Profiling Нужно
Interpreter Design Нужно
JIT Compilation Нужно
Language Server Protocol Нужно
Latency Optimization Нужно
Lexing и Parsing Нужно
Memory Profiling Нужно
Performance Budgets Нужно
Real-Time Systems Design Нужно
Resource Optimization FinOps Нужно
RTOS Fundamentals Нужно
Rust для Embedded Нужно
Throughput Optimization Нужно
Type Inference и Type Checking Нужно
Unit-тестирование Нужно
Алгоритмы и сложность Нужно
Алгоритмы на графах Нужно
Асинхронное программирование Нужно
Дженерики и параметрический полиморфизм Нужно
Качество кода и рефакторинг Нужно
Многопоточное программирование Нужно
Основы System Design Нужно
Основы сетей Нужно
Основы функционального программирования Нужно
Паттерны проектирования Нужно
Профилирование памяти Нужно
Структуры данных Нужно
Типобезопасность и системы типов Нужно
Управление памятью Нужно
Переход: ~2-3 года
  • Самостоятельно реализовал 3+ проекта
  • Провёл успешные код-ревью
  • Участвовал в разрешении production инцидентов

Lead / Staff

7-12 лет

Ответственность: Системная архитектура. Стандарты разработки. Выбор C vs C++ vs Rust. Координация с hardware.

Ключевые навыки:

AST и IR Manipulation Нужно
Bare Metal Programming Нужно
Benchmarking Tools Нужно
C для Embedded Нужно
C++ для Embedded Нужно
Code Generation Нужно
Code Review Нужно
Compiler Optimization Passes Нужно
CPU Profiling Нужно
Docker Нужно
DSL Design и Implementation Нужно
I/O и Disk Profiling Нужно
Interpreter Design Нужно
JIT Compilation Нужно
Language Server Protocol Нужно
Latency Optimization Нужно
Lexing и Parsing Нужно
Memory Profiling Нужно
Performance Budgets Нужно
Real-Time Systems Design Нужно
Resource Optimization FinOps Нужно
RTOS Fundamentals Нужно
Rust для Embedded Нужно
Throughput Optimization Нужно
Type Inference и Type Checking Нужно
Unit-тестирование Нужно
Алгоритмы и сложность Нужно
Алгоритмы на графах Нужно
Асинхронное программирование Нужно
Дженерики и параметрический полиморфизм Нужно
Качество кода и рефакторинг Нужно
Многопоточное программирование Нужно
Основы System Design Нужно
Основы функционального программирования Нужно
Паттерны проектирования Нужно
Профилирование памяти Нужно
Структуры данных Нужно
Типобезопасность и системы типов Нужно
Управление памятью Нужно
Переход: ~2-3 года
  • Самостоятельно реализовал 3+ проекта
  • Провёл успешные код-ревью
  • Участвовал в разрешении production инцидентов

Principal

10+ лет

Ответственность: Systems architecture at scale. Custom runtime. Compiler optimization. Industry standards.

Ключевые навыки:

AST и IR Manipulation Нужно
Bare Metal Programming Нужно
Benchmarking Tools Нужно
C для Embedded Нужно
C++ для Embedded Нужно
Code Generation Нужно
Code Review Нужно
Compiler Optimization Passes Нужно
CPU Profiling Нужно
Docker Нужно
DSL Design и Implementation Нужно
I/O и Disk Profiling Нужно
Interpreter Design Нужно
JIT Compilation Нужно
Language Server Protocol Нужно
Latency Optimization Нужно
Lexing и Parsing Нужно
Memory Profiling Нужно
Performance Budgets Нужно
Real-Time Systems Design Нужно
Resource Optimization FinOps Нужно
RTOS Fundamentals Нужно
Rust для Embedded Нужно
Throughput Optimization Нужно
Type Inference и Type Checking Нужно
Unit-тестирование Нужно
Алгоритмы и сложность Нужно
Алгоритмы на графах Нужно
Асинхронное программирование Нужно
Дженерики и параметрический полиморфизм Нужно
Качество кода и рефакторинг Нужно
Многопоточное программирование Нужно
Основы System Design Нужно
Основы функционального программирования Нужно
Паттерны проектирования Нужно
Профилирование памяти Нужно
Структуры данных Нужно
Типобезопасность и системы типов Нужно
Управление памятью Нужно
Переход: ~2-3 года
  • Самостоятельно реализовал 3+ проекта
  • Провёл успешные код-ревью
  • Участвовал в разрешении production инцидентов

Gap-анализ: навыки для развития

Для перехода на следующий уровень необходимо развить:

Code Review

Самостоятельно проводит review драйверов и ядерных модулей. Обращает внимание на race conditions, корректность обработки ошибок, правильное использование API ядра и memory barriers.

GitHub Actions / GitLab CI

Проектирует CI/CD pipelines с нуля. Настраивает caching для ускорения builds. Использует matrix builds для тестирования на разных версиях. Настраивает deployment pipelines (staging → production). Работает с secrets и environment variables.

Алгоритмы и сложность

Применяет алгоритмы для системного ПО: B-tree для FS, hash tables с open addressing, cache-oblivious algorithms. Оценивает hardware-specific complexity.

Асинхронное программирование

Применяет async I/O: io_uring для Linux, completion-based I/O, coroutines (C++20/Rust async). Проектирует event loop архитектуры.

Качество кода и рефакторинг

Применяет quality tools: sanitizers (ASAN/MSAN/TSAN/UBSAN), static analysis (clang-tidy), fuzzing для edge cases.

Многопоточное программирование

Применяет concurrent programming: reader-writer locks, thread pools, atomic operations, memory ordering (acquire/release/seq_cst).

Основы System Design

Проектирует системные компоненты с правильными абстракциями: HAL, platform abstraction, API contracts. Применяет layered architecture для ядерных подсистем и драйверов.

Основы сетей

Понимает внутреннее устройство стека TCP/IP на уровне ОС — настройку буферов сокетов, алгоритмы управления перегрузкой и оптимизацию сетевых параметров ядра. Настраивает TLS/SSL для реализаций кастомных протоколов. Работает с низкоуровневыми сетевыми примитивами, включая raw-сокеты и создание пакетов. Понимает внутреннее устройство разрешения DNS и распространение TTL. Отлаживает сетевые проблемы с использованием tcpdump, Wireshark и eBPF-трассировки сети.

Паттерны проектирования

Применяет системные паттерны: Flyweight для memory optimization, Reactor для I/O multiplexing, Chain of Responsibility для packet processing.

Структуры данных

Применяет системные структуры: arena allocators, intrusive lists, radix trees, concurrent hash maps. Оптимизирует memory layout для cache.

Управление памятью

Управляет памятью: custom allocators (pool, slab, arena), memory-mapped files, huge pages. Анализирует через Valgrind и perf.