Systems Programmer (C/C++)
Разработка системного ПО: ОС, драйверы, компиляторы, высокопроизводительные библиотеки
Systems Programmer (C/C++) — роль в семействе Systems Programming. Определено 94 навыков по 5 уровням (от Junior до Principal). 141 навыков являются обязательными. Ключевые домены: Основы программирования, Backend Development, Базы данных.
Технологический стек
Фокус по уровням
Написание кода на C/C++. Работа с системными вызовами. Отладка memory issues (Valgrind/ASan). Написание unit-тестов.
Оптимизация производительности. Многопоточное программирование (pthreads/std::thread). Профилирование (perf). Разработка библиотек.
Архитектура системного ПО. Lock-free программирование. Kernel modules. SIMD оптимизация. Проектирование API.
Системная архитектура. Стандарты разработки. Выбор C vs C++ vs Rust. Координация с hardware.
Systems architecture at scale. Custom runtime. Compiler optimization. Industry standards.
Матрица навыков
94 навыков × 5 уровней. Нажмите на ячейку для детализации.
Архитектура и проектирование
1 навыков| Навыки | Jun | Mid | Sen | Lead | Princ |
|---|---|---|---|---|---|
| Основы System Design | A | W | A | E | E |
Базы данных
2 навыков| Навыки | Jun | Mid | Sen | Lead | Princ |
|---|---|---|---|---|---|
| PostgreSQL | A | W | A | E | E |
| Индексирование БД | A | W | A | E | E |
Безопасность
2 навыков| Навыки | Jun | Mid | Sen | Lead | Princ |
|---|---|---|---|---|---|
| OWASP и безопасность приложений | A | W | A | E | E |
| Практики безопасного кода | A | W | A | E | E |
Компиляторы и языки
14 навыков| Навыки | Jun | Mid | Sen | Lead | Princ |
|---|---|---|---|---|---|
| Lexing и Parsing | A | W | A | E | E |
| AST и IR Manipulation | A | W | A | E | E |
| Type Inference и Type Checking | A | W | A | E | E |
| Compiler Optimization Passes | A | W | A | E | E |
| Frontend компилятора | A | W | A | E | E |
| Оптимизация компилятора | A | W | A | E | E |
| LLVM Framework | A | W | A | E | E |
| Language Server Protocol | A | W | A | E | E |
| Code Generation | A | W | A | E | E |
| JIT Compilation | A | W | A | E | E |
| Линкер и загрузчик | A | W | A | E | E |
| Статический анализ | A | W | A | E | E |
| DSL Design и Implementation | A | W | A | E | E |
| Interpreter Design | A | W | A | E | E |
Контроль версий и коллаборация
2 навыков| Навыки | Jun | Mid | Sen | Lead | Princ |
|---|---|---|---|---|---|
| Git Advanced | A | W | A | E | E |
| Code Review | A | W | A | E | E |
Облако и инфраструктура
6 навыков| Навыки | Jun | Mid | Sen | Lead | Princ |
|---|---|---|---|---|---|
| Docker | A | W | A | E | E |
| Виртуализация | A | W | A | E | E |
| Kubernetes Core | A | W | A | E | E |
| Terraform | A | W | A | E | E |
| AWS | A | W | A | E | E |
| Основы сетей | A | W | A | — | — |
Основы программирования
16 навыков| Навыки | Jun | Mid | Sen | Lead | Princ |
|---|---|---|---|---|---|
| Алгоритмы и сложность | A | W | A | E | E |
| Структуры данных | A | W | A | E | E |
| Алгоритмы на графах | A | W | A | E | E |
| Принципы ООП и SOLID | A | W | A | E | E |
| Паттерны проектирования | A | W | A | E | E |
| Многопоточное программирование | A | W | A | E | E |
| Асинхронное программирование | A | W | A | E | E |
| Синхронизация потоков | A | W | A | E | E |
| Качество кода и рефакторинг | A | W | A | E | E |
| Чистый код | A | W | A | E | E |
| Основы функционального программирования | A | W | A | E | E |
| Типобезопасность и системы типов | A | W | A | E | E |
| Дженерики и параметрический полиморфизм | A | W | A | E | E |
| Управление памятью | A | W | A | E | E |
| Профилирование памяти | A | W | A | E | E |
| Управление памятью (системное) | A | W | A | E | E |
Тестирование и QA
3 навыков| Навыки | Jun | Mid | Sen | Lead | Princ |
|---|---|---|---|---|---|
| Unit-тестирование | A | W | A | E | E |
| Unit-тестирование | A | W | A | E | E |
| Интеграционное тестирование | A | W | A | E | E |
AI-ассистированная разработка
4 навыков| Навыки | Jun | Mid | Sen | Lead | Princ |
|---|---|---|---|---|---|
| GitHub Copilot | A | W | A | E | E |
| Cursor IDE | A | W | A | E | E |
| ChatGPT / Claude | A | W | A | E | E |
| Prompt Engineering для кода | A | W | A | E | E |
API и интеграции
3 навыков| Навыки | Jun | Mid | Sen | Lead | Princ |
|---|---|---|---|---|---|
| REST API Design | A | W | A | E | E |
| GraphQL Design | A | W | A | E | E |
| Документирование API | A | W | A | E | E |
Backend Development
1 навыков| Навыки | Jun | Mid | Sen | Lead | Princ |
|---|---|---|---|---|---|
| Redis | A | W | A | E | E |
DevOps и CI/CD
1 навыков| Навыки | Jun | Mid | Sen | Lead | Princ |
|---|---|---|---|---|---|
| GitHub Actions / GitLab CI | W | A | E | — | — |
Embedded и IoT
24 навыков| Навыки | Jun | Mid | Sen | Lead | Princ |
|---|---|---|---|---|---|
| C для Embedded | A | W | A | E | E |
| C++ для Embedded | A | W | A | E | E |
| Rust для Embedded | A | W | A | E | E |
| Операционные системы | A | W | A | E | E |
| Rust | A | W | A | E | E |
| Сертификация безопасности | A | W | A | E | E |
| Обработка сигналов (embedded) | A | W | A | E | E |
| Системное программирование на Go | A | W | A | E | E |
| Bare Metal программирование | A | W | A | E | E |
| Программирование на C | A | W | A | E | E |
| Архитектура CPU | A | W | A | E | E |
| Разработка драйверов | A | W | A | E | E |
| Разработка прошивок | A | W | A | E | E |
| Обработка прерываний | A | W | A | E | E |
| Разработка ядра ОС | A | W | A | E | E |
| RTOS Fundamentals | A | W | A | E | E |
| Real-Time Systems Design | A | W | A | E | E |
| Bare Metal Programming | A | W | A | E | E |
| Программирование реального времени | A | W | A | E | E |
| Разработка RTOS | A | W | A | E | E |
| Аппаратные интерфейсы | A | W | A | E | E |
| Кросс-компиляция | A | W | A | E | E |
| Инструменты отладки | A | W | A | E | E |
| Тестирование embedded | A | W | A | E | E |
Observability и мониторинг
3 навыков| Навыки | Jun | Mid | Sen | Lead | Princ |
|---|---|---|---|---|---|
| Структурированное логирование | A | W | A | E | E |
| Prometheus и Grafana | A | W | A | E | E |
| OpenTelemetry | A | W | A | E | E |
Performance Engineering
12 навыков| Навыки | Jun | Mid | Sen | Lead | Princ |
|---|---|---|---|---|---|
| CPU Profiling | A | W | A | E | E |
| Memory Profiling | A | W | A | E | E |
| I/O и Disk Profiling | A | W | A | E | E |
| Профилирование кода | A | W | A | E | E |
| Профилирование производительности | A | W | A | E | E |
| Latency Optimization | A | W | A | E | E |
| Throughput Optimization | A | W | A | E | E |
| Resource Optimization FinOps | A | W | A | E | E |
| Low-Latency системы | A | W | A | E | E |
| Benchmarking Tools | A | W | A | E | E |
| Performance Budgets | A | W | A | E | E |
| Профилирование и бенчмаркинг | A | W | A | E | E |
Часто задаваемые вопросы
Какие навыки нужны для роли Systems Programmer (C/C++)?
Для роли Systems Programmer (C/C++) требуется 94 навыков, из которых 141 являются обязательными. Навыки распределены по 5 уровням: от Junior до Principal. Смотреть полную матрицу.
Как вырасти до следующего уровня в роли Systems Programmer (C/C++)?
Используйте Калькулятор грейда чтобы оценить текущий уровень и получить персональные рекомендации. Система покажет, какие навыки нужно развить для перехода на следующий уровень.
Какой технологический стек используется в роли Systems Programmer (C/C++)?
Стек включает 5 технологий на разных уровнях. C17/C++20, Linux, GDB, Valgrind/ASan, Make/CMake, Git, GoogleTest, C17/C++20, pthreads/std::thread, perf/flamegraph, CMake advanced, Conan/vcpkg, CI/CD, C++23, Lock-free algorithms, SIMD (AVX/SSE), eBPF, Kernel development basics, Custom allocators...
Как сообщество определяет требования к роли Systems Programmer (C/C++)?
Требования к роли формируются сообществом через систему предложений. Любой участник может предложить изменения, которые проходят голосование и ревью экспертов.