Роли · Backend Developer (C#/.NET) · Middle

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

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

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

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

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

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

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

Самостоятельно применяет алгоритмическое мышление в C#: выбирает эффективные LINQ-операции для обработки данных, понимает паттерны параллельных алгоритмов с TPL, оценивает компромиссы алгоритмов коллекций. Анализирует вычислительную сложность горячих путей кода в .NET-сервисах.

Самостоятельно применяет асинхронное программирование в C#/.NET: правильный async/await с ConfigureAwait, ValueTask для hot paths, IAsyncEnumerable для потоковых данных. Понимает компромиссы между Task и ValueTask, overhead async state machine.

Проектирует продвинутые generic-абстракции C#: применяет ковариантность/контравариантность на интерфейсах (IEnumerable<out T>, IComparer<in T>), реализует generic repository и specification паттерны. Использует комбинации constraints (where T : class, IComparable<T>, new()) для точных API-контрактов. Понимает кэширование generic-типов (typeof(T)), рефлексию над generic-типами, строит fluent generic builders с method chaining.

Самостоятельно применяет практики качества кода в C#/.NET-разработке. Пишет чистый код с использованием современных возможностей C#, правильным LINQ и async-паттернами. Понимает компромиссы между слоями абстракции и производительностью в .NET-приложениях. Ревьюит код на правильные паттерны Dispose, null safety и соблюдение архитектурных границ.

Самостоятельно применяет многопоточность в C#/.NET: Task Parallel Library для сложных async-воркфлоу, Channels и pipelines для паттернов producer-consumer, ConcurrentBag/Queue для потокобезопасных коллекций, понимание SynchronizationContext и ConfigureAwait. Решает типовые задачи конкурентности самостоятельно.

Самостоятельно применяет паттерны проектирования в C#/.NET: медиатор с MediatR для CQRS, декоратор для сквозной функциональности, repository и unit of work для доступа к данным, спецификация для построения запросов. Понимает компромиссы между паттернами и YAGNI в .NET-приложениях.

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

Самостоятельно применяет ООП/SOLID в C#/.NET: правильные интерфейсные контракты для сервисов, абстрактные базовые классы для общего поведения, внедрение зависимостей через встроенный DI-контейнер. Понимает компромиссы между наследованием и полиморфизмом на основе интерфейсов в архитектурных паттернах .NET.

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

Самостоятельно выбирает подходящие структуры данных в C#: Dictionary vs SortedDictionary для различных паттернов доступа, List vs LinkedList для операций с коллекциями, ConcurrentBag для потокобезопасных сценариев. Понимает компромиссы между value types и reference types для выделения памяти.

Самостоятельно применяет возможности системы типов C# — анализ nullable reference types, вариантность дженериков в интерфейсах и source generators для типобезопасного бойлерплейта. Понимает компромиссы между record types и классами для доменного моделирования. Применяет типобезопасные паттерны с System.Text.Json и strongly-typed options при ревью кода.

Backend Development · 7

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

Работает с messaging в .NET: настраивает MassTransit с consumer/saga, использует NServiceBus для enterprise messaging, применяет Azure Service Bus с sessions для ordered processing. Реализует retry policies через Polly и настраивает dead letter handling.

Самостоятельно реализует стратегии кэширования в .NET: распределённое кэширование со StackExchange.Redis, output caching, middleware кэширования ответов. Понимает предотвращение cache stampede, паттерны write-through vs write-behind и прогрев кэша.

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

Реализует интеграцию Kafka для .NET-микросервисов: паттерны event-driven коммуникации, интеграция Avro schema registry и exactly-once семантика с транзакциями. Настраивает consumer groups для параллельной обработки с правильным управлением offset. Реализует dead letter queues и политики повторов для отказоустойчивой обработки сообщений.

ASP.NET Core Применение

Самостоятельно реализует задачи с ASP.NET Core. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты.

Elasticsearch / OpenSearch Применение

Самостоятельно реализует интеграцию Elasticsearch в .NET через NEST/Elastic.Clients.Elasticsearch. Проектирует маппинги индексов, строит сложные запросы с bool/nested фильтрами и реализует пайплайны bulk-индексации для поискового контента.

RabbitMQ Применение

Самостоятельно реализует RabbitMQ-messaging с MassTransit в .NET: саги, consumer'ы, политики повторов. Настраивает dead-letter exchanges и приоритетные очереди. Пишет интеграционные тесты с TestHarness для message-driven workflow.

Redis Применение

Проектирует кеширование в .NET: IMemoryCache (L1) + IDistributedCache/Redis (L2), cache-aside pattern. Реализует cache stampede protection через SemaphoreSlim. Настраивает Redis Sentinel для HA. Мониторит hit ratio.

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

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

Самостоятельно проектирует схемы и оптимизирует запросы с Индексирование БД. Понимает индексирование и планы выполнения запросов. Использует Entity Framework Core эффективно.

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

Самостоятельно проектирует схемы и оптимизирует запросы с Миграции БД. Понимает индексирование и планы выполнения запросов. Использует Entity Framework Core эффективно.

Самостоятельно проектирует схемы и оптимизирует запросы с Оптимизация запросов. Понимает индексирование и планы выполнения запросов. Использует Entity Framework Core эффективно.

Самостоятельно проектирует схемы и оптимизирует запросы с Проектирование схем данных. Понимает индексирование и планы выполнения запросов. Использует Entity Framework Core эффективно.

Самостоятельно проектирует схемы и оптимизирует запросы с Транзакции и конкурентность. Понимает индексирование и планы выполнения запросов. Использует Entity Framework Core эффективно.

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

Работает с шардированными БД в .NET: использует Elastic Database Client Library для Azure SQL sharding, реализует tenant-based routing через IDbContextFactory, настраивает EF Core с dynamic connection strings. Применяет Unit of Work pattern для shard-aware transactions.

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

Оптимизирует connection pooling в .NET: настраивает Npgsql connection pool для PostgreSQL, реализует connection string строительство через NpgsqlConnectionStringBuilder, мониторит pool через NpgsqlConnection.GlobalStatistics. Настраивает EF Core pooling через AddDbContextPool.

MySQL / MariaDB Применение

Самостоятельно проектирует схемы и оптимизирует запросы с MySQL / MariaDB. Понимает индексирование и планы выполнения запросов. Использует Entity Framework Core эффективно.

PostgreSQL Применение

Самостоятельно проектирует схемы и оптимизирует запросы с PostgreSQL. Понимает индексирование и планы выполнения запросов. Использует Entity Framework Core эффективно.

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

Проектирует API-документацию: OpenAPI spec generation через Swashbuckle, XML docs, Swagger examples. Автоматизирует проверку актуальности. Документирует auth flows и error codes.

Реализует версионирование: multiple API versions одновременно через ApiVersion, deprecation через Sunset header. Автоматизирует compatibility checks. Планирует migration path.

GraphQL Design Применение

Проектирует GraphQL API: custom scalars, DataLoader для N+1, pagination через Relay. Настраивает filtering/sorting через Hot Chocolate conventions. Обрабатывает ошибки через error filter middleware.

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

Разрабатывает gRPC-сервисы на ASP.NET Core: реализует все типы RPC включая bidirectional streaming через IAsyncStreamReader/IAsyncStreamWriter, настраивает Interceptor для logging и auth, интегрирует с DI-контейнером. Использует Grpc.Net.ClientFactory для typed gRPC-клиентов.

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

Реализует rate limiting в .NET сервисах: использует System.Threading.RateLimiting с Redis partitioned limiter для distributed scenarios, настраивает Polly rate limiting policy, реализует custom RateLimiterPolicy для complex business rules. Интегрирует с ASP.NET Core output caching.

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

Проектирует RESTful API: versioning через Asp.Versioning, content negotiation, pagination через cursor/offset. Документирует через Swashbuckle/NSwag. Обрабатывает ошибки через ProblemDetails (RFC 7807). Реализует HATEOAS.

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

Terraform Применение

Пишет Terraform-конфигурации для инфраструктуры .NET-сервисов: Azure App Services, SQL-базы, Service Bus, Key Vault. Использует модули для репликации окружений (dev/staging/prod). Работает с remote state (Azure Storage бэкенд). Использует workspaces для мульти-средового управления. Импортирует существующие Azure-ресурсы в Terraform.

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

CQRS Применение

Реализует CQRS в .NET проектах: использует MediatR с FluentValidation для command validation, создает отдельные Dapper-based read repositories от EF Core write repositories, настраивает pipeline behaviors для cross-cutting concerns. Применяет Clean Architecture с CQRS.

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

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

Документация как кодИнтеграционное тестированиеОсновы сетейОсновы System DesignПрактики безопасного кодаПроектирование WebSocket APIСтруктурированное логированиеУправление памятьюAWSChatGPT / ClaudeClean ArchitectureCode ReviewCPU ProfilingCursor IDEDockerE2E тестированиеELK StackEvent-Driven ArchitectureGit AdvancedGitHub Actions / GitLab CIGitHub CopilotgRPC и Protocol BuffersJWT / OAuth2 / OIDCKubernetes CoreLatency OptimizationMicrosoft AzureOpenTelemetryOWASP и безопасность приложенийPerformance BudgetsPrometheus и GrafanaPrompt Engineering для кодаPython Web FrameworksSecrets ManagementSLI / SLO / SLATDD и BDDTestContainersUnit-тестированиеДекомпозиция на микросервисыDDD тактические паттерны

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

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

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

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