Эти навыки не влияют на основной грейд, но покажут полноту вашего профиля.
AI-ассистенты кодирования
▼
Знакомится с ChatGPT и Claude для генерации системного кода. Использует AI-ассистентов для объяснения ядерных концепций и простых задач по написанию boilerplate-кода.
Применяет ChatGPT/Claude для ускорения системной разработки: генерация шаблонов драйверов, объяснение сложных ядерных механизмов, review небольших участков low-level кода.
Эффективно использует AI для сложных системных задач: анализ ассемблерных листингов, генерация test harness для драйверов, поиск потенциальных race conditions в коде.
Формирует guidelines использования AI-инструментов в системной команде. Определяет сценарии, где AI помогает (документация, тесты) и где вреден (safety-critical код, ядерные подсистемы).
Использует Cursor для systems: AI-assisted C/Rust coding, kernel module development.
Настраивает Cursor: system programming patterns, memory safety suggestions, kernel API completion.
Оптимизирует Cursor: system-specific prompts, safety analysis, performance suggestions.
Определяет AI IDE стандарты: approved configs, safety review для system code.
Знакомится с GitHub Copilot для написания системного кода. Использует автодополнение для boilerplate-конструкций в C, оценивает качество предложений для low-level кода.
Применяет Copilot для ускорения системной разработки: генерация unit-тестов для драйверов, написание документации к API ядра, автодополнение повторяющихся паттернов обработки ошибок.
Эффективно использует Copilot для сложных системных задач: генерация mock-объектов для hardware, помощь в портировании кода между архитектурами, анализ legacy codebase.
Определяет guidelines использования Copilot в системной команде. Формирует рекомендации по верификации AI-generated кода, определяет ограничения для safety-critical модулей.
Distributed Tracing
▼
Понимает OpenTelemetry для systems: basic tracing, system metrics export.
Инструментирует systems: low-overhead tracing, custom metrics, kernel-level instrumentation.
Проектирует system observability: eBPF integration, zero-overhead tracing, custom exporters.
Определяет observability стандарты: system tracing requirements, performance impact limits.
DSL и интерпретаторы
▼
Использует внутренние DSL для конфигурации и спецификаций систем сборки. Понимает разницу между внутренними и внешними DSL. Модифицирует простые DSL-скрипты, следуя установленным паттернам и документации.
Реализует встроенные DSL для описания аппаратуры и задач конфигурации систем. Строит интерпретаторы DSL с правильным скоупингом, проверкой типов и отчётами об ошибках. Пишет компиляторные тесты, обеспечивающие корректность трансляции DSL в нативный код.
Проектирует DSL для критичных к производительности доменов: сетевые правила, политики управления памятью. Архитектурирует компиляцию DSL в оптимизированный нативный код с абстракциями нулевой стоимости. Менторит инженеров по проектированию языков для контекста системного программирования.
Определяет архитектуру компилятора. Формирует стандарты разработки. Координирует compiler team.
Читает исходный код интерпретаторов для понимания диспатча байткода и потока выполнения. Понимает разницу между стековыми и регистровыми VM-архитектурами на концептуальном уровне. Отлаживает простые проблемы интерпретатора с помощью пошагового выполнения.
Реализует байткод-VM с оптимизированными механизмами диспатча, такими как threaded code. Работает над управлением памятью в runtime: стратегии аллокации и интеграция GC. Пишет бенчмарки производительности и регрессионные тесты для пропускной способности интерпретатора.
Проектирует высокопроизводительные рантаймы интерпретаторов с inline-кэшированием и спекулятивной оптимизацией. Архитектурирует FFI-слои и interop с нативным кодом для интеграции интерпретатора с системными библиотеками. Менторит инженеров по внутренностям VM, тюнингу GC и корректности рантайма.
Определяет архитектуру компилятора. Формирует стандарты разработки. Координирует compiler team.
Embedded-инструменты
▼
Знакомится с инструментами отладки: GDB для пользовательских программ, dmesg для ядерных сообщений, strace для системных вызовов. Отлаживает простые баги под руководством наставника.
Уверенно использует отладочные инструменты: GDB remote debugging, KGDB для ядра, JTAG для bare-metal. Применяет Valgrind, AddressSanitizer для поиска memory corruption.
Отлаживает сложные системные проблемы: kernel oops/panic analysis, crash dump через kdump, hardware watchpoints через JTAG. Применяет eBPF для dynamic tracing ядра без остановки.
Определяет стратегию отладки для системной команды. Формирует runbook по диагностике ядерных проблем, внедряет crash dump infrastructure, обучает команду advanced debugging.
Понимает концепцию кросс-компиляции: host vs target, toolchain, sysroot. Собирает простые программы для ARM target с помощью готового cross-toolchain под руководством наставника.
Самостоятельно настраивает cross-compilation pipeline: конфигурирует toolchain (GCC/Clang), sysroot, pkg-config. Собирает ядро и rootfs для embedded target через buildroot/Yocto.
Проектирует multi-target build систему для системного ПО. Настраивает CI с кросс-компиляцией для ARM/RISC-V/x86, автоматизирует тестирование на QEMU, интегрирует sanitizers для каждой платформы.
Определяет стратегию кросс-компиляции для продуктовой линейки. Формирует reproducible build environment, управляет версиями toolchain, обеспечивает bit-exact reproducible builds.
Понимает основы тестирования системного и embedded ПО: unit-тесты вне целевой платформы, hardware-in-the-loop (HIL). Пишет простые тесты для ядерных модулей и драйверов.
Самостоятельно тестирует системное ПО: unit-тесты с mock hardware (cmock, fff), integration-тесты на QEMU, использует ktest/kselftest для ядерных компонентов.
Проектирует test infrastructure для системного ПО: custom test framework для bare-metal, fault injection для драйверов, HIL test automation с робототехническим стендом.
Определяет тестовую стратегию для системной платформы. Формирует test pyramid для ядра/драйверов, управляет CI/CD с hardware farm, внедряет continuous testing.
Embedded-программирование
▼
Понимает основы bare-metal: startup-код, linker script, таблица векторов прерываний. Пишет простые программы без ОС, настраивает GPIO и таймеры под руководством наставника.
Самостоятельно разрабатывает bare-metal системы: инициализация PLL, настройка MPU, DMA-трансферы. Пишет загрузчики и firmware для конкретных платформ с прямым доступом к регистрам.
Проектирует сложные bare-metal системы с custom scheduler и HAL. Оптимизирует startup sequence, настраивает cache coherency, реализует bootchain с верификацией подписей прошивки.
Определяет архитектурные стандарты bare-metal разработки для линейки продуктов. Формирует стратегию портирования между архитектурами ARM/RISC-V, ведёт review критичных системных компонентов.
Понимает основы C для Embedded. Применяет базовые практики в повседневной работе. Следует рекомендациям команды.
Самостоятельно применяет C для Embedded на практике. Понимает trade-offs различных подходов. Решает типовые задачи.
Глубоко владеет C для Embedded. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.
Определяет стратегию C для Embedded на уровне команды/продукта. Формирует стандарты и best practices. Проводит review.
Применяет C++ для низкоуровневых системных задач, включая memory-mapped I/O и работу с регистрами. Понимает основы тулчейна: кросс-компиляцию, линкер-скрипты и отладку через JTAG/SWD.
Самостоятельно применяет C++ для Embedded на практике. Понимает trade-offs различных подходов. Решает типовые задачи.
Глубоко владеет C++ для Embedded. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.
Определяет стратегию C++ для Embedded на уровне команды/продукта. Формирует стандарты и best practices. Проводит review.
Знакомится с Rust для системного программирования: ownership, borrowing, lifetime. Пишет простые системные утилиты на Rust, понимает zero-cost abstractions под руководством наставника.
Разрабатывает системные компоненты на Rust: unsafe для FFI с C-кодом ядра, no_std для bare-metal, custom allocators. Применяет Rust для драйверов и userspace системных сервисов.
Проектирует системное ПО на Rust: ядерные модули (Rust for Linux), async runtime для системных сервисов, safe abstractions над hardware. Минимизирует unsafe через type-safe API.
Определяет стратегию внедрения Rust в системную разработку. Формирует guidelines по unsafe usage, FFI conventions, архитектуре safe abstractions для ядерных компонентов.
Понимает основы Rust для Embedded. Применяет базовые практики в повседневной работе. Следует рекомендациям команды.
Самостоятельно применяет Rust для Embedded на практике. Понимает trade-offs различных подходов. Решает типовые задачи.
Глубоко владеет Rust для Embedded. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.
Определяет стратегию Rust для Embedded на уровне команды/продукта. Формирует стандарты и best practices. Проводит review.
Понимает базовую архитектуру CPU: регистры, pipeline, режимы работы (user/kernel). Знает основы ARM Cortex-M и x86 архитектур, изучает instruction set под руководством наставника.
Владеет архитектурой целевого CPU: cache hierarchy (L1/L2/L3), TLB, branch prediction. Оптимизирует код с учётом микроархитектуры, понимает memory ordering model платформы.
Глубоко знает несколько CPU архитектур (ARM, x86-64, RISC-V). Проектирует код с учётом cache coherency протоколов (MESI/MOESI), NUMA topology, speculative execution.
Определяет архитектурные решения с учётом особенностей целевых CPU. Формирует guidelines по оптимизации под конкретную микроархитектуру, ведёт review критичного кода.
Понимает механизм прерываний: таблица векторов, приоритеты, ISR. Пишет простые обработчики прерываний для таймеров и GPIO, понимает контекст прерывания vs поток.
Самостоятельно проектирует системы обработки прерываний: top-half/bottom-half, tasklet/workqueue, threaded IRQ. Настраивает interrupt affinity, минимизирует latency обработки.
Проектирует сложные interrupt-подсистемы: реализует interrupt coalescing, MSI/MSI-X для PCIe, nested interrupt controllers. Оптимизирует interrupt storm protection и load balancing.
Определяет стратегию обработки прерываний для платформы. Формирует guidelines по interrupt latency budgets, ведёт review ISR-кода на корректность и производительность.
Понимает основы обработки сигналов: дискретизация, фильтрация (FIR/IIR), FFT. Реализует простые фильтры для системных данных (сетевые метрики, sensor data) под руководством наставника.
Применяет DSP в системном контексте: оптимизирует фильтры под fixed-point арифметику, использует SIMD (NEON, SSE) для ускорения, реализует обработку в real-time с ограниченным latency.
Проектирует высокопроизводительные DSP pipeline в системном ПО: SIMD-оптимизация через intrinsics, DMA-driven double buffering, zero-copy обработку с минимальным jitter.
Определяет стратегию DSP для системной платформы. Формирует guidelines по выбору fixed/floating point, оптимизации под целевую ISA, интеграции DSP с real-time подсистемой.
Понимает основные концепции ОС: процессы, потоки, планирование, файловые системы. Работает с Linux: управление процессами, файловыми дескрипторами, signals, basic system calls.
Владеет internals операционных систем: VFS layer, process scheduler (CFS), memory management subsystem. Модифицирует ядерные подсистемы, анализирует поведение через ftrace/perf.
Глубоко знает архитектуру ОС: проектирует ядерные подсистемы, оптимизирует scheduler под workload, реализует custom security modules (LSM), работает с namespaces/cgroups.
Определяет стратегию развития ОС-компонентов для платформы. Формирует архитектуру custom OS distribution, ведёт review ядерных подсистем, управляет kernel configuration.
Знает основы C: указатели, структуры, управление памятью через malloc/free. Пишет простые системные утилиты и модули ядра под руководством наставника, понимает UB.
Уверенно программирует на C для системного уровня: работает с указателями на функции, volatile, bit fields. Пишет драйверы и ядерные модули с соблюдением стандартов кодирования.
Экспертно владеет C для системного программирования: оптимизирует код под кэш-линии, применяет memory barriers, разрабатывает lock-free структуры данных на атомарных операциях.
Определяет C coding standards для системной команды. Внедряет MISRA C/CERT C, формирует guidelines по безопасному управлению памятью и предотвращению UB в ядерных модулях.
Понимает основы разработки драйверов: character/block devices, device model ядра. Пишет простой character device driver с ioctl интерфейсом под руководством наставника.
Самостоятельно разрабатывает драйверы: platform drivers, I2C/SPI/UART, работа с DMA. Использует device tree для конфигурации, обрабатывает прерывания и управляет power state.
Проектирует драйверные подсистемы: разрабатывает bus drivers, реализует hotplug, управляет сложным power management (runtime PM, suspend/resume). Оптимизирует DMA для zero-copy I/O.
Определяет архитектуру драйверной подсистемы для платформы. Формирует стандарты driver development, review process, стратегию upstreaming в mainline kernel.
Понимает основы firmware: bootloader, firmware update, flash layout. Пишет простые firmware-модули для MCU, использует HAL-библиотеки производителя под руководством наставника.
Самостоятельно разрабатывает firmware: реализует OTA-обновление, dual-bank boot, watchdog recovery. Управляет flash-памятью с wear leveling, реализует persistent configuration.
Проектирует firmware-архитектуру: secure boot chain, encrypted firmware updates, hardware security module integration. Оптимизирует boot time, реализует fallback recovery mechanisms.
Определяет firmware-стратегию для продуктовой линейки. Формирует стандарты OTA-обновлений, versioning, rollback policy, управляет firmware signing infrastructure.
Понимает основы ядерной разработки: системные вызовы, address spaces, модули ядра. Собирает и конфигурирует Linux kernel, пишет простой loadable kernel module под руководством наставника.
Самостоятельно разрабатывает ядерные модули: работает с VFS, memory management API, scheduling. Понимает RCU, spinlocks, completion, использует kernel debugging infrastructure.
Проектирует ядерные подсистемы: реализует новые файловые системы, network protocols, security modules. Оптимизирует scheduler для специфичных workloads, работает с mm subsystem.
Определяет архитектуру ядерных компонентов для платформы. Формирует стратегию kernel customization, ведёт review ядерных патчей, координирует upstream contribution.
Понимает основы safety-сертификации: SIL levels, ASIL, DO-178C. Знакомится с требованиями к документации и traceability для safety-critical системного кода.
Участвует в процессе сертификации: пишет unit-тесты с required coverage, документирует design decisions, обеспечивает traceability requirements-to-code для ядерных модулей.
Проектирует системное ПО с учётом safety requirements: formal methods (SPARK, Frama-C), MC/DC coverage, static analysis compliance. Обеспечивает architectural partitioning для mixed-criticality.
Определяет safety-процесс для системной команды. Формирует verification plan, управляет tool qualification, координирует независимый review, обеспечивает compliance artifacts.
Знакомится с Go для системного программирования: goroutines, channels, syscall package. Пишет простые системные утилиты (мониторинг, файловые операции) под руководством наставника.
Разрабатывает системные сервисы на Go: daemon-процессы, socket programming, cgo для интеграции с C-библиотеками. Использует unsafe package для низкоуровневого доступа к памяти.
Проектирует высокопроизводительные системные сервисы на Go: custom memory management через unsafe, горутинные пулы, zero-allocation hot path. Оптимизирует GC pressure.
Определяет стратегию использования Go в системной разработке. Формирует guidelines по cgo overhead, memory management, concurrency patterns для системных сервисов.
Git и workflow
▼
Владеет базовым Git: commit, branch, merge, rebase. Работает с ядерным репозиторием, понимает workflow с патчами (git format-patch, git am) под руководством наставника.
Уверенно использует advanced Git для системной разработки: interactive rebase, bisect для поиска регрессий, cherry-pick между ветками ядра, submodules для внешних компонентов.
Эффективно управляет сложными Git workflows для системных проектов: поддерживает long-lived branches, разрешает конфликты при backport патчей, использует worktrees для параллельной работы.
Определяет Git workflow для системной команды. Формирует branching strategy для ядра (mainline, stable, LTS), политику backport, интегрирует git hooks для quality gates.
GraphQL
▼
Понимает GraphQL для systems: query API для system monitoring, metadata access.
Проектирует GraphQL для systems: system metrics query, resource management API, real-time monitoring.
Проектирует system API: efficient query execution, streaming data, custom resolvers.
Определяет API стандарты: system API design, performance requirements.
Infrastructure as Code
▼
Описывает system infrastructure в Terraform: bare metal provisioning, network configuration.
Проектирует Terraform для systems: hardware provisioning, kernel tuning, network setup.
Проектирует IaC для systems: automated hardware provisioning, kernel configuration management.
Определяет IaC стандарты: system provisioning patterns, hardware management.
Kubernetes и оркестрация
▼
Понимает K8s для systems: container runtime internals, cgroup management, namespaces.
Оптимизирует systems в K8s: CPU pinning, NUMA topology, hugepages, device plugins.
Проектирует K8s для systems: custom schedulers, device plugin development, kernel optimization.
Определяет K8s стандарты для systems: hardware access policies, performance tuning.
Prompt Engineering
▼
Знакомится с prompt engineering для системных задач. Формулирует простые запросы к AI для объяснения ядерных концепций, генерации boilerplate кода драйверов и утилит.
Применяет structured prompting для системной разработки: chain-of-thought для анализа race conditions, few-shot примеры для генерации ядерного кода определённого стиля.
Создаёт эффективные prompt templates для системных задач: генерация тест-кейсов для драйверов, анализ crash dump-ов, review ядерного кода на concurrency-проблемы.
Определяет prompt engineering guidelines для системной команды. Формирует библиотеку prompt templates для kernel development, review и debugging, обучает команду.
REST API
▼
Понимает REST API для systems: HTTP server implementation, socket programming. Создаёт lightweight API endpoints.
Реализует efficient REST: zero-copy responses, custom HTTP parsers, connection pooling. Оптимизирует throughput.
Проектирует high-performance API: custom protocols, kernel bypass (io_uring), vectored I/O.
Определяет API стандарты: performance requirements, protocol selection, system-level optimization.
RTOS и реальное время
▼
Понимает основы Bare Metal Programming. Применяет базовые практики в повседневной работе. Следует рекомендациям команды.
Самостоятельно применяет Bare Metal Programming на практике. Понимает trade-offs различных подходов. Решает типовые задачи.
Глубоко владеет Bare Metal Programming. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.
Определяет стратегию Bare Metal Programming на уровне команды/продукта. Формирует стандарты и best practices. Проводит review.
Понимает основы Real-Time Systems Design. Применяет базовые практики в повседневной работе. Следует рекомендациям команды.
Самостоятельно применяет Real-Time Systems Design на практике. Понимает trade-offs различных подходов. Решает типовые задачи.
Глубоко владеет Real-Time Systems Design. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.
Определяет стратегию Real-Time Systems Design на уровне команды/продукта. Формирует стандарты и best practices. Проводит review.
Понимает основы RTOS Fundamentals. Применяет базовые практики в повседневной работе. Следует рекомендациям команды.
Самостоятельно применяет RTOS Fundamentals на практике. Понимает trade-offs различных подходов. Решает типовые задачи.
Глубоко владеет RTOS Fundamentals. Проектирует решения для production-систем. Оптимизирует и масштабирует. Менторит команду.
Определяет стратегию RTOS Fundamentals на уровне команды/продукта. Формирует стандарты и best practices. Проводит review.
Понимает основы real-time программирования: deterministic execution, priority inversion, scheduling policies (FIFO, RR). Пишет простые real-time задачи с фиксированными deadline-ами.
Разрабатывает real-time компоненты: использует PREEMPT_RT, настраивает SCHED_FIFO/SCHED_DEADLINE, memory locking через mlockall. Измеряет и минимизирует worst-case latency.
Проектирует hard real-time системы: formal timing analysis, priority ceiling protocol, bounded execution time. Реализует deterministic memory allocation, устраняет источники non-determinism.
Определяет real-time архитектуру для продуктовой платформы. Формирует стандарты timing verification, управляет real-time budgets, ведёт review compliance с timing requirements.
Понимает архитектуру RTOS: scheduler, task management, IPC primitives. Создаёт multi-task приложения на FreeRTOS/Zephyr, использует семафоры и очереди под руководством наставника.
Самостоятельно разрабатывает на RTOS: конфигурирует планировщик, оптимизирует stack allocation, реализует power management. Портирует RTOS на новую аппаратную платформу.
Проектирует RTOS-based архитектуру: модифицирует scheduler для специфичных требований, реализует custom IPC mechanisms, оптимизирует context switch time и interrupt latency.
Определяет RTOS-стратегию для продуктовой линейки. Формирует стандарты RTOS-разработки, процесс BSP создания для новых платформ, ведёт review архитектурных решений.
Unit-тестирование
▼
Понимает основы unit-тестирования системного кода: изоляция функций, mock зависимостей. Пишет простые тесты с CUnit/Unity для системных утилит, знакомится с KUnit.
Самостоятельно пишет unit-тесты для системного кода: использует KUnit для ядерных модулей, cmock для mock hardware, parameterized tests. Поддерживает coverage >70%.
Проектирует тестовую архитектуру для системного ПО: custom test framework для bare-metal, property-based testing для ядерных API, mutation testing для оценки качества тестов.
Определяет unit-testing стандарты для системной команды. Формирует coverage requirements, test naming conventions, mock strategy для hardware dependencies.
Понимает основы юнит-тестирования системного кода: фреймворки тестирования C/C++ (GoogleTest/Catch2), тестирование функций управления памятью, паттерны assertions для низкоуровневых операций. Следует командным практикам тестирования системных вызовов, операций с буферами и путей обработки ошибок.
Самостоятельно пишет юнит-тесты для системного кода: GoogleTest/Catch2 сьюты для модулей ядра, assertions безопасности памяти, покрытие граничных случаев для границ буферов и кодов ошибок. Интегрирует системные тесты в CI/CD со сборками тестов с включёнными санитайзерами (ASan, MSan, UBSan).
Проектирует стратегию тестирования для системного ПО: пирамида тестирования для слоёв kernel/driver/userspace, тестирование на основе санитайзеров (ASan/MSan/TSan), стресс-тестирование корректности конкурентности. Оптимизирует выполнение тестов с тестовыми окружениями на QEMU. Менторит команду по тестированию кода safety-critical систем.
Определяет стратегию тестирования на уровне продукта для системного ПО: стандарты интеграции санитайзеров, governance тестирования ядра, фреймворки сертификации safety-critical тестирования. Устанавливает культуру shift-left тестирования с автоматическими quality gates для системного кода включая верификацию безопасности памяти.
Алгоритмы и структуры данных
▼
Понимает основы Алгоритмы на графах на базовом уровне. Применяет простые концепции в рабочих задачах с использованием C/C++/Rust. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно применяет графовые алгоритмы (Dijkstra, Kruskal, SCC) для планирования ресурсов, анализа сетевой топологии и упорядочивания зависимостей задач. Понимает компромиссы между BFS/DFS для обхода в условиях ограниченной памяти. Объясняет коллегам графовое обнаружение дедлоков и анализ графа ожидания.
Проектирует lock-free конкурентные графовые структуры для управления ресурсами на уровне ядра и планирования I/O. Архитектурит эффективные по памяти графовые представления для крупномасштабных таблиц маршрутизации и отслеживания зависимостей page cache. Менторит разработчиков по продвинутым алгоритмам для трассировки сборки мусора, обхода дерева устройств и графов привязки прерываний.
Определяет стандарты использования Алгоритмы на графах на уровне команды/продукта. Проводит архитектурные review. Формирует best practices и обучающие материалы для всей команды.
Аппаратные интерфейсы
▼
Понимает базовые аппаратные интерфейсы: GPIO, UART, SPI, I2C. Читает datasheet устройств, подключает простые периферийные устройства под руководством наставника.
Самостоятельно работает с аппаратными интерфейсами: PCIe, USB, Ethernet PHY. Читает schematics, использует logic analyzer для отладки протоколов, реализует timing-требования.
Проектирует низкоуровневое взаимодействие с аппаратурой: реализует custom протоколы, оптимизирует DMA-трансферы через scatter-gather, работает с MMIO и I/O port mapping.
Определяет стандарты работы с аппаратными интерфейсами для платформы. Формирует HAL-стратегию, ведёт review hardware-software interface, координирует работу с HW-командой.
Безопасность приложений
▼
Понимает security для systems: buffer overflow prevention, secure memory management. Применяет safe coding.
Реализует system security: ASLR-aware code, stack canaries, secure IPC. Проводит security-focused code review.
Проектирует secure systems: memory safety architecture, kernel security, secure boot.
Определяет system security стандарты: memory safety requirements, security review, vulnerability management.
Применяет secure coding для systems: bounds checking, safe memory operations. Использует static analysis.
Реализует system security: memory-safe patterns, secure IPC, privilege separation. Применяет sanitizers.
Проектирует secure systems: capability-based security, sandboxing, verified compilation.
Определяет security стандарты: memory safety requirements, code audit, vulnerability process.
Бенчмаркинг
▼
Понимает основы инструментов системного бенчмаркинга: perf, criterion, Google Benchmark. Пишет базовые micro-benchmark для критичных участков кода, измеряя CPU-циклы, cache miss и пропускную способность памяти. Следует командным соглашениям по изоляции бенчмарков и отчётности результатов.
Самостоятельно проектирует комплексные бенчмарк-наборы для системного ПО, покрывающие latency, throughput и утилизацию ресурсов. Реализует статистический анализ результатов с учётом дисперсии и эффектов прогрева. Интегрирует непрерывный бенчмаркинг в CI для раннего обнаружения регрессий производительности.
Проектирует production-grade инфраструктуру бенчмаркинга для системного ПО с автоматическим обнаружением регрессий и отслеживанием производительности. Разрабатывает бенчмарки, моделирующие реальные взаимодействия с оборудованием и поведение на уровне ядра. Внедряет performance budget в release pipeline. Менторит команду.
Определяет стратегию бенчмаркинга и культуру производительности на уровне команды и продукта. Устанавливает стандарты проектирования бенчмарков, статистического анализа и интерпретации результатов. Проводит ревью performance-критичных изменений, обеспечивая валидацию реального влияния перед релизом.
Понимает базовые performance budgets для CPU-циклов, выделения памяти и пропускной способности I/O. Следует командным гайдлайнам по порогам задержки и лимитам памяти в системном коде. Запускает предоставленные бенчмарки и сообщает об отклонениях от установленных бюджетов.
Самостоятельно устанавливает performance budgets для системных компонентов: целевые p99 задержки, лимиты memory pools, накладные расходы context switch и частоту syscall. Понимает trade-offs между пропускной способностью и задержкой в kernel-space и user-space коде. Строит автоматизированные регрессионные тесты с perf counters и аппаратными мониторами производительности.
Проектирует сквозные системы performance budgets для ПО уровня ОС и инфраструктуры: бюджеты CPU по подсистемам, стратегии выделения памяти с жёсткими лимитами, бюджеты I/O-планирования и целевые задержки прерываний. Оптимизирует критические пути через анализ cache-line и NUMA-aware выделение. Менторит команду по hardware-aware performance engineering и контролю бюджетов.
Определяет стратегию performance budgets на уровне команды и продукта для системного ПО. Устанавливает SLA-driven бюджеты для задержки (p50/p99/p999), пропускной способности и потребления ресурсов по kernel-модулям и системным сервисам. Создаёт процессы распределения бюджетов, review gates и автоматизированные дашборды. Обеспечивает кросс-командное согласование контрактов производительности между подсистемами.
Понимает основы бенчмаркинга: micro/macro benchmarks, warmup, statistical significance. Запускает стандартные benchmark-и (lmbench, sysbench) для системных компонентов.
Самостоятельно проектирует benchmark-и для системного ПО: isolates workload, eliminates noise, measures tail latency. Применяет statistical analysis для достоверных результатов.
Проектирует comprehensive benchmark suite для системных подсистем. Реализует continuous benchmarking, A/B testing для ядерных изменений, выявляет performance regressions автоматически.
Определяет benchmarking стратегию для системной платформы. Формирует стандарты measurement methodology, manages benchmark infrastructure, координирует performance review.
Инструменты компиляторов
▼
Читает сгенерированный ассемблерный или машинный код на выходе компиляторных бэкендов. Понимает базовые концепции выбора инструкций и распределения регистров. Отслеживает пути генерации кода для отладки простых проблем.
Реализует проходы выбора и планирования инструкций для целевых архитектур. Работает с аллокаторами регистров и обеспечивает соответствие соглашениям о вызовах. Пишет обширные тесты, гарантирующие корректность генерируемых бинарников на разных платформах.
Проектирует бэкенды генерации кода для кастомного оборудования и специализированных ISA. Архитектурирует стратегии автовекторизации и SIMD-эмиссии кода. Менторит инженеров по низкоуровневой оптимизации и совместному проектированию hardware-software.
Определяет архитектуру компилятора. Формирует стандарты разработки. Координирует compiler team.
Понимает основы JIT Compilation. Работает с простыми задачами парсинга и AST. Использует Linux kernel/POSIX.
Самостоятельно реализует JIT Compilation. Работает с IR и оптимизациями. Пишет тесты компилятора.
Проектирует compiler passes и оптимизации с JIT Compilation. Работает с type systems. Менторит команду.
Определяет архитектуру компилятора. Формирует стандарты разработки. Координирует compiler team.
Понимает основы Language Server Protocol и JSON-RPC-коммуникации. Настраивает среды разработки с поддержкой LSP и отлаживает простой обмен сообщениями протокола.
Реализует обработчики LSP для навигации по коду и разрешения символов. Интегрирует языковой сервер с front-end компилятора для предоставления отчётов об ошибках в реальном времени и семантической подсветки токенов.
Проектирует архитектуру LSP-сервера с продвинутыми возможностями: семантический анализ, кросс-проектное индексирование и кастомные расширения протокола. Менторит команду по интеграции системы типов и инкрементальной компиляции для инструментов редактора.
Определяет архитектуру компилятора. Формирует стандарты разработки. Координирует compiler team.
Знакомится с LLVM framework: понимает архитектуру (frontend, IR, backend). Изучает LLVM IR на простых примерах, собирает проект с Clang под руководством наставника.
Работает с LLVM: пишет простые LLVM passes для анализа кода, использует Clang sanitizers, понимает opt pipeline. Применяет LLVM для генерации кода из custom DSL.
Проектирует custom LLVM passes для оптимизации системного кода. Разрабатывает backend для нового target, интегрирует custom analysis passes в CI для автоматического поиска багов.
Определяет стратегию использования LLVM в системной разработке. Формирует custom toolchain на базе LLVM/Clang, управляет разработкой language tools и static analyzers.
Понимает основы линковки и загрузки: объектные файлы, секции (.text, .data, .bss), символы. Читает вывод nm/objdump, разбирается в простых linker script-ах под руководством наставника.
Самостоятельно работает с линкером: пишет custom linker scripts для embedded, управляет memory layout, разрешает symbol conflicts. Понимает GOT/PLT, lazy binding, dynamic linking.
Проектирует сложные linker configurations: overlay memory, position-independent code для ядра, custom ELF sections для metadata. Оптимизирует binary size через section garbage collection и LTO.
Определяет стратегию линковки для системной платформы. Формирует стандарты memory layout, symbol versioning для ABI compatibility, управляет shared library versioning.
Знакомится с инструментами статического анализа: sparse, cppcheck, clang-tidy. Запускает анализаторы на системном коде, исправляет простые предупреждения под руководством наставника.
Самостоятельно применяет static analysis: Coverity, PVS-Studio для ядерного кода. Настраивает правила для обнаружения null dereference, buffer overflow, race conditions в драйверах.
Проектирует static analysis pipeline для системного ПО: custom checkers на Coccinelle/Clang, интеграция Coverity в CI, formal verification с CBMC для bounded model checking.
Определяет стратегию статического анализа для системной команды. Формирует quality gates на основе SA, управляет false positive suppression, обеспечивает zero-warning policy.
Интеграционное тестирование
▼
Тестирует system integration: hardware/software interface, driver testing. Проверяет system calls.
Проектирует integration тесты: kernel module testing, hardware abstraction testing, cross-platform validation.
Определяет integration testing: comprehensive system testing, hardware compatibility, fuzzing.
Внедряет testing стандарты: mandatory system tests, hardware validation, quality gates.
Контейнеризация
▼
Понимает базовые концепции Docker для системного программирования: контейнеризованные среды сборки для кросс-компиляции, Docker-образы для тулчейнов разработки ядра/драйверов, базовый docker-compose для тестовых сред. Использует существующие конфигурации для контейнеров сборки системного ПО.
Самостоятельно настраивает Docker для системной разработки: контейнеризованные среды кросс-компиляции, docker-compose для инфраструктуры тестирования ядра, Dockerfile для образов кастомных тулчейнов. Понимает изоляцию контейнеров через cgroups/namespaces и низкоуровневую конфигурацию container runtime.
Проектирует инфраструктурные решения с Docker. Оптимизирует стоимость и производительность. Внедряет best practices и security hardening.
Определяет Docker-стратегию для системной разработки: стандарты контейнеров сред сборки, governance инфраструктуры тестирования ядра, политики контейнеров кросс-компиляции. Проводит архитектурные ревью контейнеризованной инфраструктуры системной разработки и оптимизирует затраты ресурсов сборки.
Понимает основы виртуализации: hypervisor types, hardware virtualization (VT-x/AMD-V), paravirtualization. Работает с QEMU/KVM для тестирования ядерного кода и эмуляции платформ.
Работает с виртуализацией на системном уровне: конфигурирует KVM, пишет virtio drivers, использует libvirt API. Применяет containers (cgroups/namespaces) для изоляции системных сервисов.
Проектирует компоненты виртуализации: реализует paravirtual drivers, оптимизирует VM exit handling, работает с nested virtualization. Разрабатывает custom hypervisor компоненты.
Определяет стратегию виртуализации для системной платформы. Формирует архитектуру hypervisor-based isolation для safety-critical систем, ведёт review virtualization stack.
Кэширование
▼
Понимает Redis internals: single-threaded model, I/O multiplexing, data structures.
Оптимизирует Redis: memory optimization, custom data structures, protocol analysis.
Проектирует caching systems: custom cache implementations, kernel bypass caching, DPDK.
Определяет caching стандарты: system-level caching patterns, performance requirements.
Логирование
▼
Реализует logging для systems: efficient log format, ring buffers для logs. Минимизирует logging overhead.
Проектирует system logging: lock-free logging, binary log formats, efficient serialization. Минимальный runtime impact.
Проектирует logging architecture: kernel-level tracing (eBPF), zero-allocation logging, binary protocols.
Определяет logging стандарты: performance requirements, format, tracing infrastructure.
Метрики и мониторинг
▼
Мониторит systems через Prometheus: CPU metrics, memory usage, I/O throughput. Экспортирует custom metrics.
Создаёт system monitoring: custom exporters, kernel metrics, hardware monitoring. Grafana dashboards.
Проектирует system monitoring: low-overhead metrics collection, eBPF-based monitoring.
Определяет monitoring стандарты: system metrics requirements, dashboards, alerting.
Многопоточность и конкурентность
▼
Понимает базовые примитивы синхронизации: mutex, semaphore, condition variable. Использует pthread API для синхронизации потоков, знает о race conditions и deadlock-ах.
Уверенно применяет синхронизацию в системном коде: spinlocks, RCU, read-write locks. Понимает memory ordering (acquire/release), использует atomic operations для счётчиков и флагов.
Проектирует сложные схемы синхронизации: lock-free и wait-free алгоритмы, RCU для read-heavy подсистем ядра, futex-based примитивы. Применяет formal verification для correctness.
Определяет стратегию синхронизации для системной платформы. Формирует guidelines по выбору примитивов (spinlock vs mutex vs RCU), lock ordering rules, ведёт review concurrency.
Облачные провайдеры
▼
Работает с AWS для systems: EC2 bare metal, Nitro architecture. Понимает cloud hardware abstraction.
Оптимизирует systems на AWS: instance type selection, ENA networking, EBS tuning. NUMA-aware deployment.
Проектирует system architecture на cloud: bare metal performance, SR-IOV, custom AMI optimization.
Определяет cloud стандарты: instance selection guidelines, hardware optimization.
ООП и паттерны проектирования
▼
Понимает ООП в контексте системного программирования: vtable overhead, object layout в C++. Знает когда ООП уместно, а когда нет.
Применяет ООП для systems code: CRTP для static polymorphism, mixin через templates, type erasure. Минимизирует runtime overhead.
Проектирует системные API с zero-cost ООП: policy-based design, tag dispatch, concept-based polymorphism (C++20 concepts).
Определяет ООП guidelines для systems-команды. Формирует стандарты: когда использовать virtual vs CRTP vs concepts.
Оптимизация
▼
Понимает базовые концепции латенси на системном уровне: влияние иерархии кешей CPU, накладные расходы syscall и стоимость переключения контекста. Измеряет латенси с помощью perf, strace и инструментации тайминга. Следует командным практикам паттернов кодирования с учётом латенси.
Оптимизирует латенси на системном уровне: реализует lock-free структуры данных для критических путей, настраивает CPU affinity и NUMA-aware аллокацию и снижает частоту syscall через батчинг. Профилирует взаимодействия ядро/userspace через perf, ftrace и eBPF. Реализует interrupt coalescing и стратегии поллинга для I/O-интенсивных нагрузок.
Проектирует архитектуры систем с ультра-низкой латенси: kernel bypass networking (DPDK, io_uring), политики планирования реального времени и memory-mapped I/O для zero-copy путей данных. Реализует детерминированные гарантии латенси через изоляцию CPU и steering прерываний. Проектирует инфраструктуру измерения латенси с наносекундной точностью. Менторит команду по техникам hardware-aware оптимизации.
Определяет стратегию оптимизации латенси для системной инфраструктуры. Устанавливает требования детерминированной латенси и гарантии обработки реального времени. Проводит архитектурные ревью критических путей на уровне ядра и userspace. Создаёт стандарты измерения латенси, бенчмаркинга и квалификации оборудования для latency-sensitive деплоев.
Понимает принципы low-latency: cache locality, branch prediction, prefetching. Измеряет latency простых операций с помощью rdtsc/perf, анализирует jitter под руководством наставника.
Проектирует low-latency компоненты: применяет lock-free алгоритмы, memory pooling, huge pages. Оптимизирует системные вызовы через bypass (io_uring), настраивает CPU isolation и pinning.
Проектирует ultra-low-latency системы: kernel bypass (DPDK, SPDK), busy-polling, zero-copy I/O. Оптимизирует interrupt moderation, NUMA-aware allocation, устраняет jitter sources в ядре.
Определяет архитектуру low-latency для продуктовой платформы. Формирует performance budgets для каждого компонента, ведёт review на соответствие latency requirements.
Понимает основы управления системными ресурсами: выделение памяти, планирование CPU и бюджетирование I/O. Применяет базовые техники оптимизации в низкоуровневом коде. Следует установленным стандартам использования ресурсов.
Самостоятельно оптимизирует использование ресурсов в системном коде: сокращает потребление памяти, минимизирует переключения контекста и управляет пулами буферов. Понимает компромиссы между задержкой и пропускной способностью на уровне ОС.
Проектирует эффективные подсистемы управления ресурсами: кастомные аллокаторы, zero-copy I/O пайплайны и NUMA-aware планирование. Оптимизирует утилизацию ресурсов на уровне ядра для высокопроизводительных нагрузок. Менторит команду по системной настройке производительности.
Определяет стратегию оптимизации ресурсов для системного программного обеспечения. Устанавливает стандарты бюджетов памяти, квот CPU и лимитов I/O по всей платформе. Проводит ревью ресурсо-критичных подсистем и развивает культуру FinOps в команде.
Измеряет пропускную способность системы стандартными инструментами бенчмаркинга и выявляет базовые узкие места ввода-вывода. Понимает разницу между блокирующим и неблокирующим вводом-выводом. Применяет простые методы пакетной обработки для снижения накладных расходов на системные вызовы и экспериментирует с размерами буферов для повышения скорости передачи данных.
Реализует методы zero-copy ввода-вывода и lock-free структуры данных для устранения конкуренции в высоконагруженных путях обработки. Профилирует переходы ядро-пользовательское пространство и сокращает частоту системных вызовов через группировку. Настраивает NUMA-aware выделение памяти и применяет кольцевые буферы для предсказуемой пропускной способности под нагрузкой на нескольких ядрах.
Проектирует архитектуры обхода ядра на основе DPDK или io_uring для обработки пакетов на скорости линии. Создаёт системы lock-free очередей, масштабируемые между NUMA-узлами с минимальным обменом кэш-линий. Реализует движки пакетной обработки с адаптивным объединением, динамически балансирующие задержку и пропускную способность с учётом профилей нагрузки и топологии оборудования.
Определяет стратегию Throughput Optimization на уровне команды/продукта. Формирует стандарты и best practices. Проводит review.
Оптимизация БД
▼
Понимает indexing на системном уровне: B-tree implementations, disk I/O patterns.
Реализует indexing structures: custom B+ trees, LSM trees, bloom filters. Оптимизирует disk access.
Проектирует indexing engines: custom storage engines, memory-mapped indexes, concurrent data structures.
Определяет indexing стандарты: data structure selection, performance requirements.
Профилирование
▼
Понимает основы CPU-профилирования для системного кода. Использует perf, gprof или Instruments для сбора CPU-семплов и определения горячих путей в программах на C/C++/Rust. Следует командным рекомендациям по профилировочным сборкам и разрешению символов.
Самостоятельно профилирует модули ядра, драйверы и системные демоны с помощью perf, DTrace и аппаратных счётчиков производительности. Анализирует flame-графики и стеки вызовов для выявления CPU-зависимых узких мест. Понимает компромиссы между частотой семплирования, накладными расходами и точностью данных при профилировании в продакшене.
Проектирует решения CPU-профилирования для низкоуровневых систем, включая ядра ОС, гипервизоры и встроенное ПО. Использует события PMU, PEBS и LBR для микроархитектурного анализа. Оптимизирует критические пути исполнения на основе поведения кэш-иерархии и анализа pipeline-стопов. Обучает команду продвинутым техникам профилирования.
Определяет стратегию CPU-профилирования для команд системного программирования. Устанавливает стандарты профилирования в CI/CD-конвейерах с детекцией регрессий на нагрузках ядра и драйверов. Продвигает внедрение инструментов непрерывного профилирования по всему продукту. Проводит архитектурные ревью с фокусом на CPU-эффективность.
Понимает основы профилирования I/O на уровне ядра и пользовательского пространства. Использует strace, ltrace, perf для трассировки системных вызовов и файловых операций. Следует документации для интерпретации I/O wait, page faults и поведения buffer cache в Linux.
Самостоятельно профилирует I/O-подсистемы с помощью blktrace, bpftrace и инструментов на основе eBPF. Анализирует слияние запросов на блочном уровне, поведение I/O-планировщика и накладные расходы журналирования FS. Понимает компромиссы синхронного и асинхронного I/O (io_uring vs. epoll) и выбирает оптимальный подход под нагрузку.
Проектирует продвинутые решения для профилирования I/O с использованием кастомных eBPF-программ и kernel tracepoints. Оптимизирует I/O-пути на уровне блочных устройств, файловых систем и VFS для продакшн-систем. Реализует zero-copy I/O и стратегии direct I/O. Менторит инженеров по диагностике сложных проблем I/O-латентности через весь storage stack.
Определяет стандарты профилирования I/O и политики дисковой производительности на уровне команды. Устанавливает лучшие практики непрерывной I/O-трассировки через eBPF, ftrace и perf в продакшн-инфраструктуре. Проводит ревью выбора файловых систем, тюнинга I/O-планировщиков и конфигураций storage-драйверов. Внедряет современные I/O-интерфейсы, такие как io_uring, в кодовую базу.
Понимает основы профилирования памяти для системного кода, включая фрагментацию кучи, переполнения буферов и обнаружение use-after-free. Запускает Valgrind, AddressSanitizer и базовое профилирование памяти через perf под руководством. Читает отчёты профилирования для выявления простых проблем с памятью в кодовых базах на C/C++ или Rust, следуя документации команды.
Самостоятельно применяет инструменты профилирования памяти — Valgrind massif, heaptrack, perf mem и MemorySanitizer — для диагностики проблем с памятью в системном коде. Понимает компромиссы между накладными расходами профилирования и точностью для модулей ядра, драйверов или встроенного ПО. Анализирует паттерны фрагментации кучи, оптимизирует пользовательские аллокаторы и снижает пиковое потребление памяти в компонентах, критичных к задержкам.
Проектирует комплексные стратегии профилирования памяти для системного ПО, включая подсистемы ядра, среды выполнения и высокопроизводительные сервисы. Создаёт фреймворки отслеживания памяти, интегрирующие perf, eBPF-пробы для памяти и API интроспекции jemalloc. Оптимизирует расположение данных в памяти для кэш-эффективности через редизайн структур данных на основе профилирования. Наставляет команду по диагностике сложных проблем: false sharing, NUMA-aware аллокации и поведение transparent huge pages.
Определяет стратегию профилирования памяти на уровне команды и продукта для системного ПО. Устанавливает обязательные проверки профилирования в CI/CD — пороги регрессии памяти, сертификацию отсутствия утечек для релизов и периодическое глубокое профилирование с помощью Valgrind, heaptrack и eBPF. Стандартизирует политики бюджетов памяти по подсистемам, проводит архитектурные ревью по паттернам аллокаций и продвигает внедрение memory-safe практик и фреймворков кастомных аллокаторов по всей кодовой базе.
Знакомится с инструментами профилирования: perf, gprof, Valgrind. Запускает базовый profiling системных утилит, интерпретирует простые flame graphs под руководством наставника.
Самостоятельно профилирует системный код: использует perf stat/record, callgrind, cachegrind. Находит горячие пути в драйверах, анализирует cache miss rate и branch misprediction.
Проводит глубокий профилинг ядерных подсистем: использует ftrace, eBPF, perf probe. Анализирует latency distribution, выявляет lock contention, оптимизирует критичные пути ядра.
Определяет стратегию профилирования для системной команды. Формирует pipeline непрерывного performance мониторинга, автоматизирует регрессионное тестирование производительности.
Знакомится с профилированием производительности: использует time, perf stat для базовых метрик. Измеряет execution time системных функций, анализирует простые bottleneck-и.
Проводит системное профилирование: perf record/report, hardware counters (IPC, cache miss), off-CPU analysis. Строит flame graphs для ядерного кода, анализирует scheduler latency.
Выполняет глубокий performance analysis: PMU-based sampling, last branch record (LBR), Intel PT. Проводит end-to-end latency analysis от hardware interrupt до userspace delivery.
Определяет performance analysis methodology для команды. Формирует benchmark suite для ядерных подсистем, автоматизирует performance regression detection в CI.
Реляционные БД
▼
Понимает PostgreSQL internals: storage engine basics, shared memory, process architecture.
Работает с PostgreSQL на системном уровне: extension development, custom data types, internal APIs.
Проектирует database extensions: custom storage engines, FDW implementations, performance plugins.
Определяет database systems стандарты: extension development, performance requirements.
Системы типов
▼
Понимает основы Дженерики и параметрический полиморфизм на базовом уровне. Применяет простые концепции в рабочих задачах с использованием C/C++/Rust. Следует рекомендациям senior-разработчиков при решении задач.
Применяет дженерики в системном коде с фокусом на zero-cost абстракции: пишет generic-структуры данных с const generics для compile-time размеров, использует trait bounds для гарантий memory layout (Copy, Sized, Unpin). Понимает влияние мономорфизации дженериков на instruction cache и размер бинарника в performance-critical путях. Применяет дженерики для реализации type-safe обёрток над unsafe FFI-интерфейсами.
Архитектурит 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.
Определяет стандарты использования Дженерики и параметрический полиморфизм на уровне команды/продукта. Проводит архитектурные review. Формирует best practices и обучающие материалы для всей команды.
Понимает основы Типобезопасность и системы типов на базовом уровне. Применяет простые концепции в рабочих задачах с использованием C/C++/Rust. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно применяет системы типов в системном программировании — использует шаблоны/concepts C++ или traits Rust для zero-cost абстракций, phantom types для отслеживания состояний на этапе компиляции и кодирование инвариантов на уровне типов. Понимает компромиссы между стиранием типов и мономорфизацией для производительности. Объясняет коллегам продвинутые возможности систем типов.
Обладает глубокой экспертизой в типобезопасности системного уровня — проектирует типобезопасные интерфейсы ядра с zero-cost абстракциями, реализует верификацию стейт-машин на этапе компиляции через typestate-паттерны и использует программирование на уровне типов для гарантий layout памяти. Архитектурирует типобезопасные границы FFI и слои абстракции аппаратуры. Менторит команду по аудиту unsafe-кода, type-driven доказательствам корректности и балансу выразительности системы типов с производительностью компиляции.
Определяет стандарты типобезопасности для команд системного программирования — формирует политики ревью unsafe-кода, требования к типобезопасным границам FFI и стандарты верификации на этапе компиляции. Проводит архитектурные ревью, обеспечивая консистентность паттернов типов в интерфейсах ядра, слоях абстракции аппаратуры и производительно-критичных путях.
Теория компиляторов
▼
Читает и навигирует по AST-структурам, сгенерированным фронтендами компиляторов. Понимает соответствие между исходным кодом и IR-представлениями. Модифицирует простые IR-трансформации по установленным паттернам.
Реализует IR-проходы для оптимизации и понижения уровня в компиляторных пайплайнах. Работает с SSA-формой и графами потока управления для анализа программ. Пишет регрессионные тесты, обеспечивающие корректность трансформаций на граничных случаях.
Проектирует кастомные IR-представления, оптимизированные под целевые архитектуры. Архитектурирует многопроходные компиляторные пайплайны с продвинутыми оптимизациями. Менторит инженеров по интеграции систем типов и доказательствам корректности IR.
Определяет архитектуру компилятора. Формирует стандарты разработки. Координирует compiler team.
Понимает основы Compiler Optimization Passes. Работает с простыми задачами парсинга и AST. Использует Linux kernel/POSIX.
Самостоятельно реализует Compiler Optimization Passes. Работает с IR и оптимизациями. Пишет тесты компилятора.
Проектирует compiler passes и оптимизации с Compiler Optimization Passes. Работает с type systems. Менторит команду.
Определяет архитектуру компилятора. Формирует стандарты разработки. Координирует compiler team.
Понимает основы фронтенда компилятора: лексический и синтаксический анализ, AST. Изучает работу preprocessor и parser на примерах простых языков под руководством наставника.
Разрабатывает простые лексеры и парсеры: использует flex/bison или ANTLR. Понимает семантический анализ, type checking, реализует custom DSL для конфигурации системного ПО.
Проектирует frontend компилятора для domain-specific языка. Реализует полноценный type system, error recovery в парсере, интегрирует с LLVM IR для генерации оптимального системного кода.
Определяет стратегию разработки DSL и языковых инструментов для системной платформы. Формирует guidelines по дизайну синтаксиса, type system и диагностических сообщений.
Понимает базовые концепции лексического анализа и парсинга: токены, грамматики и деревья разбора. Читает и отслеживает существующий код лексера/парсера для понимания pipeline обработки языка.
Реализует лексеры и парсеры для системных языков с инструментами flex/bison или ручным рекурсивным спуском. Обрабатывает приоритет операторов, разрешение неоднозначностей и эффективную буферизацию токенов.
Проектирует архитектуры front-end компилятора с генераторами лексеров и GLR/Earley-парсерами для сложных грамматик. Реализует трансформации с сохранением source map и менторит команду по теории формальных языков.
Определяет архитектуру компилятора. Формирует стандарты разработки. Координирует compiler team.
Изучает, как вывод типов и проверка типов влияют на расположение данных в памяти и гарантии безопасности. Понимает базовые правила системы типов, применяемые компилятором в языках Rust или C++.
Применяет знания вывода типов для написания более безопасного низкоуровневого кода с минимумом явных аннотаций. Использует проверку типов компилятора для обнаружения проблем безопасности памяти и неопределённого поведения на этапе компиляции.
Проектирует типобезопасные абстракции для системных API, обеспечивающие корректность на этапе компиляции. Оценивает и влияет на решения по проектированию системы типов в языках вроде Rust, внося вклад в более безопасные паттерны системного программирования.
Определяет архитектуру компилятора. Формирует стандарты разработки. Координирует compiler team.
Понимает основные уровни оптимизации компилятора (-O0 до -O3, -Os). Знакомится с inline, loop unrolling, dead code elimination на примерах системного кода, анализирует выход asm.
Применяет compiler-специфичные оптимизации для системного кода: __attribute__((hot/cold)), likely/unlikely, restrict. Анализирует compiler output через godbolt, выбирает оптимальные флаги.
Проектирует оптимизационные pipeline для системного ПО: LTO, PGO, AutoFDO. Пишет custom LLVM passes для оптимизации ядерного кода, применяет polyhedral optimization для числ. подсистем.
Определяет стратегию компиляторных оптимизаций для системной платформы. Формирует build pipeline с PGO/LTO, ведёт review влияния оптимизаций на корректность многопоточного кода.
Управление API
▼
Документирует system API: syscall documentation, header file comments, ABI documentation.
Создаёт system documentation: API reference, architecture docs, performance guides.
Проектирует documentation: living docs, automated API reference, kernel module docs.
Определяет documentation стандарты: mandatory docs, ABI documentation requirements.
Управление памятью
▼
Понимает основы Профилирование памяти на базовом уровне. Применяет простые концепции в рабочих задачах с использованием C/C++/Rust. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно профилирует память на уровне ОС, отслеживая поведение ядерных аллокаторов, page faults и memory-mapped I/O. Понимает компромиссы между стратегиями аллокаторов и их влияние на накладные расходы системных вызовов.
Обладает глубокой экспертизой в профилировании памяти на уровне ОС, оптимизирует конфигурации ядерных аллокаторов, минимизирует накладные расходы page faults и настраивает memory-mapped I/O для продакшн-систем. Снижает overhead системных вызовов через кастомные стратегии аллокации.
Определяет стандарты профилирования памяти на уровне команды: обязательные профилировочные гейты в CI, бенчмарки ядерных аллокаторов, бюджеты page faults по компонентам и политики использования memory-mapped I/O. Обеспечивает единую методологию в системных проектах.
Понимает основы управления памятью: виртуальная память, paging, address translation. Знает разницу между stack и heap, использует mmap и brk, анализирует /proc/meminfo.
Уверенно работает с memory management: page allocator, slab allocator, memory mapping. Настраивает huge pages, понимает OOM killer, отлаживает memory leaks через kmemleak.
Проектирует memory management подсистемы: custom allocator для real-time (O(1) allocation), NUMA-aware memory policy, memory compaction. Оптимизирует TLB pressure через huge pages.
Определяет стратегию управления памятью для системной платформы. Формирует memory budgets для подсистем, ведёт review memory safety, внедряет memory profiling infrastructure.
Функциональное программирование
▼
Понимает основы Основы функционального программирования на базовом уровне. Применяет простые концепции в рабочих задачах с использованием C/C++/Rust. Следует рекомендациям senior-разработчиков при решении задач.
Применяет принципы ФП в системном коде: чистые функции для пайплайнов обработки данных, иммутабельные буферы где позволяет производительность, алгебраические типы для конечных автоматов. Понимает компромиссы между zero-copy мутацией и иммутабельностью в критичных по производительности участках.
Проектирует системные архитектуры с ФП для корректности и производительности: type-state паттерны для проверки протоколов при компиляции, линейные типы для управления ресурсами, чистые ядра с тонкими unsafe-границами. Менторит команду по балансу чистоты ФП и zero-cost abstractions.
Определяет стандарты использования Основы функционального программирования на уровне команды/продукта. Проводит архитектурные review. Формирует best practices и обучающие материалы для всей команды.
Чистый код и рефакторинг
▼
Понимает принципы чистого кода: осмысленные имена переменных, короткие функции, минимум комментариев. Следует code style guide проекта ядра при написании простых модулей.
Применяет clean code в системном программировании: разделение ответственности модулей, последовательная обработка ошибок (error codes), понятные абстракции для аппаратного взаимодействия.
Проектирует чистые системные API с предсказуемыми контрактами. Обеспечивает единообразие стиля в ядерных подсистемах, применяет defensive programming и contract-based design.
Определяет clean code стандарты для системной разработки. Формирует guidelines по именованию в ядре, обработке ошибок, документированию hardware-зависимого кода для всей команды.