Роли · Backend Developer (Rust) · Middle

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

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

На этой странице — что ожидается от Middle }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Backend Development, Базы данных.

31ключевых навыков
37дополнительных навыков
6областей
0%на уровне Продвинутый или Эксперт
Оценить себя как Middle Полная матрица роли

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

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

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

Самостоятельно применяет алгоритмическое мышление в Rust: выбирает итератор-based алгоритмы для zero-copy обработки, понимает влияние модели владения на дизайн алгоритмов, оценивает паттерны конкурентных алгоритмов с атомиками и каналами. Анализирует сложность обработки данных в системном Rust-коде.

Самостоятельно применяет асинхронное программирование в Rust: runtime tokio/async-std, композиция Future с async/await, pinning и управление lifetime в async-контекстах. Понимает компромиссы между sync и async Rust, порождение задач vs структурированная конкурентность.

Реализует дженерики Rust с trait bounds: пишет generic-функции и структуры с where-клаузами и множественными trait bounds. Понимает мономорфизацию и её влияние на размер бинарника vs производительность. Применяет lifetime-параметры в generic-контекстах ('a), комбинирует дженерики с trait objects (dyn Trait) при необходимости динамической диспетчеризации. Использует PhantomData для zero-cost type-level маркеров.

Самостоятельно применяет практики качества кода в Rust-разработке. Пишет чистый код с ясной семантикой владения, правильными типами ошибок и эргономичными API. Понимает компромиссы между сложностью дженериков и удобством API. Ревьюит код на использование unsafe, корректность lifetime и ясность дизайна trait.

Самостоятельно применяет многопоточность в Rust: система трейтов Send/Sync для гарантий потокобезопасности, Arc<Mutex> для разделяемого состояния, рантайм tokio для async-конкурентности, crossbeam для lock-free структур данных. Обосновывает преимущества модели ownership Rust для конкурентного кода на ревью.

Самостоятельно применяет паттерны проектирования для Rust: стратегия и посетитель на основе trait, builder для сложного конструирования структур, паттерн newtype для типобезопасности, паттерн конечного автомата с enum. Обосновывает Rust-специфичный выбор паттернов с учётом ownership и lifetimes.

Принципы ООП и SOLID Применение

Самостоятельно применяет принципы SOLID в Rust: полиморфизм на основе trait вместо наследования, единственная ответственность в дизайне модулей/крейтов, инверсия зависимостей через trait objects и дженерики. Понимает Rust-специфичные ООП-компромиссы — композиция вместо наследования, правила когерентности trait, zero-cost абстракции.

Самостоятельно использует DHAT, heaptrack и Valgrind/Massif для профилирования памяти Rust-приложений. Понимает, как паттерны владения и семантика borrow checker влияют на аллокации, и выбирает стратегии профилирования соответственно.

Структуры данных Применение

Самостоятельно выбирает подходящие структуры данных в Rust: Vec vs VecDeque для последовательных данных, HashMap vs BTreeMap для поиска по ключу, Arc<Mutex> vs каналы для разделяемого состояния. Понимает компромиссы между паттернами владения и семантикой заимствования структур данных.

Самостоятельно применяет систему типов Rust для бэкенд-сервисов — использует ownership и borrowing для безопасности памяти, enum с ассоциированными данными для стейт-машин и trait bounds для обобщённых абстракций сервисов. Понимает компромиссы между динамической диспетчеризацией и мономорфизацией. Объясняет коллегам аннотации lifetime и программирование на уровне типов.

Эффективно применяет модель владения Rust: понимает семантику перемещения, правила заимствования и аннотации времени жизни. Правильно использует Box, Rc, Arc для паттернов heap-аллокации. Работает с interior mutability через RefCell и Mutex. Понимает компромиссы stack vs heap аллокации и когда использовать ссылки vs владеемые значения.

Backend Development · 5

Паттерны Message Brokers Применение

Работает с message broker'ами в Rust: реализует consumer groups через rdkafka с offset management, использует NATS через async-nats для lightweight messaging, применяет tokio channels для internal message passing. Обрабатывает backpressure через bounded channels и flow control.

Самостоятельно реализует задачи с Стратегии кэширования в actix-web/axum. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью cargo test.

Apache Kafka Применение

Самостоятельно реализует задачи с Apache Kafka в actix-web/axum. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью cargo test.

Redis Применение

Самостоятельно реализует задачи с Redis в actix-web/axum. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью cargo test.

Rust Web Frameworks Применение

Самостоятельно реализует задачи с Rust Web Frameworks в actix-web/axum. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью cargo test.

Базы данных · 7

Индексирование БД Применение

Самостоятельно проектирует схемы и оптимизирует запросы с Индексирование БД. Понимает индексирование и планы выполнения запросов. Использует diesel/sea-orm эффективно.

Миграции БД Применение

Самостоятельно проектирует схемы и оптимизирует запросы с Миграции БД. Понимает индексирование и планы выполнения запросов. Использует diesel/sea-orm эффективно.

Самостоятельно проектирует схемы и оптимизирует запросы с Оптимизация запросов. Понимает индексирование и планы выполнения запросов. Использует diesel/sea-orm эффективно.

Самостоятельно проектирует схемы и оптимизирует запросы с Проектирование схем данных. Понимает индексирование и планы выполнения запросов. Использует diesel/sea-orm эффективно.

Шардирование БД Применение

Реализует шардирование в Rust: создает shard-aware connection pool manager, реализует consistent hashing с jump hash или rendezvous hashing, обрабатывает cross-shard queries через async scatter-gather с tokio. Использует Rust type system для compile-time shard routing safety.

Connection Pooling Применение

Оптимизирует connection pooling в Rust: настраивает sqlx pool с connection lifecycle management, реализует health checking через deadpool Manager trait, применяет connection recycle policies. Мониторит pool utilization через tracing spans и custom metrics.

PostgreSQL Применение

Самостоятельно проектирует схемы и оптимизирует запросы с PostgreSQL. Понимает индексирование и планы выполнения запросов. Использует diesel/sea-orm эффективно.

API и интеграции · 6

Разрабатывает комплексную API-документацию для Rust-сервисов: OpenAPI 3.0 через utoipa с examples, описание аутентификации (SecurityScheme), группировка по тегам. Настраивает автоматическую генерацию документации в CI и публикацию через Swagger UI/Redoc.

Реализует версионирование API в Rust-сервисах через Axum-middleware или Actix-web guards, поддерживая несколько версий одновременно. Применяет serde с #[serde(default)] и #[serde(skip_serializing_if)] для backward-compatible эволюции JSON-схем.

gRPC и Protocol Buffers Применение

Разрабатывает gRPC-сервисы на Rust с tonic: реализует streaming RPC с tokio-stream, настраивает Tower middleware для interceptors, использует tonic-health для health checking. Применяет Rust type system для compile-time гарантий корректности gRPC-взаимодействий.

gRPC и Protocol Buffers Применение

Разрабатывает gRPC-сервисы на tonic с server/client streaming, interceptors для аутентификации и метаданными запросов. Настраивает tonic-build для кодогенерации, реализует error mapping через tonic::Status и подключает reflection-сервис для grpcurl.

Rate Limiting и Throttling Применение

Реализует rate limiting в Rust-сервисах: создает custom Tower layer для per-key rate limiting, использует governor crate для flexible rate limiting algorithms, реализует distributed limiting через Redis с fred/deadpool-redis. Оптимизирует через atomic operations для lock-free counting.

REST API Design Применение

Разрабатывает REST API на Axum/Actix-web с middleware-слоями (tower layers), валидацией через validator крейт и структурированными ответами ошибок. Реализует пагинацию, фильтрацию и HATEOAS-ссылки с типобезопасными response-структурами.

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

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

Работает с сетевыми протоколами в Rust-сервисах: TLS через rustls/native-tls, HTTP/2 через hyper, WebSocket через tokio-tungstenite. Настраивает connection pooling, таймауты и retry-логику в reqwest/hyper-клиентах с учётом backpressure.

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

CQRS Применение

Реализует CQRS в Rust-проектах: создает отдельные command и query modules с typed handlers, использует sqlx/SeaORM для разных read/write models, применяет tokio channels для event propagation. Обеспечивает compile-time гарантии через generic constraints на command/query types.

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

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

Документация как кодИнтеграционное тестированиеОсновы System DesignПрактики безопасного кодаПроектирование WebSocket APIСтруктурированное логированиеAWSChatGPT / ClaudeClean ArchitectureCode ReviewCPU ProfilingCursor IDEDockerE2E тестированиеELK StackEvent-Driven ArchitectureGit AdvancedGitHub Actions / GitLab CIGitHub CopilotGraphQL DesignJWT / OAuth2 / OIDCKubernetes CoreLatency OptimizationMemory ProfilingOpenTelemetryOWASP и безопасность приложенийPerformance BudgetsPrometheus и GrafanaPrompt Engineering для кодаProperty-Based TestingPython Web FrameworksSecrets ManagementSLI / SLO / SLATDD и BDDTerraformThroughput OptimizationUnit-тестирование

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

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

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

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