Применяет алгоритмическую экспертизу в .NET-разработке: оптимизация LINQ-запросов для эффективной обработки данных, проектирование параллельных алгоритмов с TPL, lock-free конкурентные алгоритмы с использованием Interlocked-операций. Оценивает алгоритмическую сложность в горячих путях и проектирует эффективные стратегии кэширования с правильными алгоритмами вытеснения.
Роли · Backend Developer (C#/.NET) · Senior
Что должен уметь Senior }
54 ключевых навыков, всего 72. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Senior }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Backend Development, Базы данных.
Ключевые навыки для Senior
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 9
Проектирует async-архитектуры в C#/.NET: async-паттерны пайплайнов с System.IO.Pipelines, producer/consumer на Channel, кастомные async state machines для производительности. Менторит команду по best practices async и диагностике async-дедлоков.
Архитектурит generic-системы типов в C#-кодовых базах: проектирует generic middleware pipelines (IMiddleware<TRequest, TResponse>), реализует compile-time метапрограммирование с source generators над generic-типами. Применяет Curiously Recurring Template Pattern (class Base<T> where T : Base<T>) для статического полиморфизма. Оптимизирует hot paths техниками generic specialization, профилирует поведение JIT для value-type vs reference-type generic-инстанцирований для минимизации аллокаций.
Проектирует стандарты качества кода для .NET-проектов: C# coding conventions, конфигурации анализаторов (Roslyn, SonarAnalyzer), architectural fitness functions. Рефакторит legacy-кодовые базы с использованием современных паттернов C# (records, pattern matching, minimal APIs). Формирует культуру код-ревью с фокусом на SOLID и clean architecture.
Обладает глубокой экспертизой в многопоточности C#/.NET: проектирует высокопроизводительные конкурентные системы с System.Threading.Channels, внедряет lock-free алгоритмы для горячих путей, оптимизирует использование пулов потоков для масштабируемости ASP.NET Core. Менторит команду по продвинутым паттернам конкурентного программирования в .NET.
Обладает глубокой экспертизой в паттернах проектирования для .NET: проектирует доменно-ориентированные архитектуры с aggregate roots и bounded contexts, внедряет паттерны CQRS/ES для сложных бизнес-доменов, оптимизирует использование паттернов для производительности .NET runtime. Менторит команду по enterprise-паттернам для высоконагруженных .NET-систем.
Применяет ООП/SOLID в .NET-архитектуре: чистое разделение слоёв с dependency inversion, interface segregation для контрактов сервисов, правильное использование абстракций C# (abstract classes, interfaces, generics). Проектирует реализации Domain-Driven Design с использованием C# records, value objects и aggregate roots.
Выбирает оптимальные структуры данных для .NET-приложений: ConcurrentDictionary для потокобезопасного кэширования, ReadOnlySpan для zero-allocation парсинга, ImmutableList для функциональных паттернов. Оптимизирует использование коллекций с учётом давления на GC и layout памяти. Проектирует кастомные структуры данных с использованием C#-дженериков и struct-ограничений.
Обладает глубокой экспертизой в системе типов C# — проектирует доменные модели с использованием дискриминированных объединений (OneOf/кастомные), интерфейсов generic math и Span<T>/Memory<T> для высокопроизводительного типобезопасного кода. Архитектурирует типобезопасные middleware-пайплайны и контракты API. Менторит команду по продвинутым дженерикам, паттернам ковариантности/контравариантности и валидации типов на этапе компиляции с анализаторами.
Backend Development · 7
Проектирует messaging-архитектуру для .NET микросервисов: реализует outbox pattern через EF Core с Debezium/polling publisher, настраивает MassTransit courier для routing slip pattern, интегрирует Kafka через Confluent .NET Client. Проектирует event-driven архитектуру с MediatR для internal events.
Проектирует multi-level кеширование: MemoryCache + HybridCache (.NET 9) + Redis. Реализует write-behind для batch persistence, pre-warming при деплоях. Оптимизирует serialization через System.Text.Json source generators.
Проектирует event-driven архитектуру на Kafka через Confluent.Kafka/.NET: consumer groups, exactly-once via transactions, Schema Registry с Avro. Оптимизирует throughput: batching, compression. Настраивает Dead Letter Topics.
Проектирует решения на основе ASP.NET Core для production-систем. Оптимизирует производительность и масштабируемость. Выбирает между альтернативными подходами. Менторит команду.
Проектирует поисковые решения: Elastic.Clients.Elasticsearch для .NET, custom analyzers, nested документы, aggregations. Оптимизирует mapping и bulk indexing pipeline. Интегрирует с CQRS read-моделью.
Проектирует архитектуру messaging на RabbitMQ для .NET-микросервисов с MassTransit. Реализует оркестрацию саг, outbox pattern для надёжного messaging и федерацию для мультидатацентровых установок. Оптимизирует пропускную способность batch-публикацией и масштабированием consumer'ов.
Проектирует распределённое кеширование: Redis Cluster, Lua-скрипты для атомарных операций, Redis Streams для event-driven инвалидации. Использует StackExchange.Redis pipelining для batch operations.
Базы данных · 9
Проектирует стратегию индексирования: partial indexes, covering indexes, GIN для JSONB. Анализирует index bloat. Настраивает мониторинг через DMV (SQL Server) или pg_stat_user_indexes.
Проектирует safe-миграции: zero-downtime через expand-contract pattern, data backfill через raw SQL в миграциях, idempotent scripts для CI/CD. Автоматизирует через dotnet ef migrations bundle.
Оптимизирует data access в .NET: compiled queries, split queries, raw SQL/Dapper для аналитики. Профилирует через MiniProfiler и EF Core interceptors. Использует query tags для мониторинга.
Проектирует доменные модели: DDD Aggregates через EF Core, Value Objects через Owned Types, soft deletes через query filters. Выбирает между EF Core и документной БД по контексту.
Проектирует транзакционную модель: distributed transactions через Saga (MassTransit), eventual consistency, compensating transactions. Оптимизирует transaction scope. Использует TransactionScope для cross-DbContext.
Проектирует шардирование для .NET микросервисов: реализует custom shard router с consistent hashing, настраивает cross-shard queries через Elastic Query (Azure SQL) или custom scatter-gather, проектирует resharding с zero-downtime. Оптимизирует connection pooling для сотен шардов.
Проектирует connection management для .NET микросервисов: настраивает multi-database routing с отдельными pools (read replicas), реализует connection resilience через Polly retry policies, проектирует connection drain при graceful shutdown. Диагностирует pool fragmentation и connection leaks через diagnostics.
Проектирует MySQL-архитектуру для .NET-сервисов: read replicas через DbContext routing, connection pooling через Pomelo.EntityFrameworkCore.MySql. Оптимизирует EF Core: compiled queries, bulk operations через EFCore.BulkExtensions.
Использует продвинутые возможности PostgreSQL в .NET: Npgsql bulk copy, JSONB через EF Core value converters, full-text search. Настраивает connection pooling (PgBouncer). Оптимизирует EF Core batch operations.
API и интеграции · 6
Строит documentation pipeline: автогенерация + ручные guides, versioned docs. Использует NSwag для client SDK generation. Интегрирует с developer portal.
Проектирует versioning-стратегию: consumer-driven contracts, schema evolution через Protobuf. Автоматизирует breaking change detection в CI. Управляет migration между версиями.
Проектирует GraphQL-архитектуру: Schema Stitching/Federation для микросервисов, subscriptions через WebSocket, persisted queries. Оптимизирует execution engine и complexity analysis.
Проектирует gRPC-архитектуру для .NET микросервисов: настраивает gRPC-JSON transcoding для REST-совместимости, реализует health checks через Grpc.HealthCheck, оптимизирует через HTTP/2 connection management. Интегрирует с OpenTelemetry.Instrumentation.GrpcNetClient для distributed tracing.
Проектирует rate limiting для .NET микросервисов: реализует token bucket с concurrency limiter для CPU-bound endpoints, настраивает YARP reverse proxy с rate limiting, проектирует adaptive limiting через health checks integration. Оптимизирует для minimal GC pressure в high-throughput scenarios.
Проектирует API-архитектуру: API Gateway (YARP/Ocelot), rate limiting через RateLimiter middleware, circuit breaker через Polly. Определяет контракты через OpenAPI spec-first. Оптимизирует через output caching и response compression.
Облако и инфраструктура · 4
Проектирует Docker-стратегию: base images, AOT compilation для minimal containers, security scanning через Trivy. Оптимизирует startup через ReadyToRun. Настраивает Buildpacks.
Проектирует K8s-архитектуру: namespace-per-team, service mesh, GitOps через ArgoCD/Flux. Оптимизирует .NET в K8s: ServerGC vs WorkstationGC, container-aware GC settings.
Проектирует инфраструктурные решения с Microsoft Azure. Оптимизирует стоимость и производительность. Внедряет best practices и security hardening.
Проектирует модульную архитектуру Terraform для платформы .NET-микросервисов. Создаёт переиспользуемые Azure-модули с исчерпывающей документацией. Конфигурирует Terragrunt для DRY мульти-средовых конфигураций. Реализует policy as code (Azure Policy + OPA) для compliance. Проектирует стратегию управления state для множества state-файлов. Автоматизирует детекцию drift для продуктовой инфраструктуры.
DevOps и CI/CD · 1
Проектирует CI/CD: reusable workflows, artifact promotion, canary deployments. Интегрирует quality gates: SonarQube, OWASP dependency check, container scanning.
Тестирование и QA · 4
Проектирует integration-testing стратегию: slice tests vs full integration, contract testing через Pact-Net, load testing через NBomber. Оптимизирует CI время.
Внедряет TDD/BDD-культуру: outside-in TDD для domain layer, SpecFlow + ASP.NET TestServer для integration. Проектирует testable architecture через DI.
Проектирует архитектуру тестирования TestContainers.NET для .NET-микросервисов: общие сети контейнеров, кастомные стратегии health check и пайплайны миграции тестовых данных. Оптимизирует время выполнения тестов с переиспользованием контейнеров и паттернами параллельной изоляции.
Проектирует unit-testing стратегию: test fixtures, shared utilities, ArchUnitNET для архитектурных правил. Оптимизирует test suite: parallel execution. Менторит по тестовым паттернам.
Безопасность · 3
Проектирует secure-by-default: zero-trust (mTLS), secrets management через Azure Key Vault/HashiCorp Vault, audit logging через Serilog enrichers. Автоматизирует security checks в CI.
Проектирует auth-архитектуру: centralized IdP (Duende IdentityServer), token exchange, fine-grained authorization (OPA/Cedar). Multi-tenancy через claims. Token security: rotation, revocation.
Проектирует security-архитектуру: threat modeling (STRIDE), SAST/DAST в CI, dependency scanning (Snyk/Dependabot). Внедряет security-as-code через ASP.NET Core middleware pipeline.
AI-ассистированная разработка · 1
Максимизирует продуктивность: генерация SQL, K8s манифестов, performance-тестов NBomber. Выстраивает workflow где AI ускоряет рутину.
Архитектура и проектирование · 5
Проектирует архитектуру .NET-систем: декомпозиция на микросервисы, event-driven через MassTransit, CQRS. Определяет API-контракты (OpenAPI, gRPC). Capacity planning через BenchmarkDotNet.
Проектирует по Hexagonal Architecture: порты для бизнес-логики, адаптеры для EF/Kafka/REST. Рефакторит legacy. Anti-corruption layers между bounded contexts.
Проектирует CQRS-архитектуру для .NET микросервисов: интегрирует с Marten или EventStoreDB для event sourcing, реализует projections через subscription processors, настраивает разные read stores (SQL Server for reports, Redis for real-time). Обеспечивает testability через ArchUnit tests для CQRS boundaries.
Проектирует декомпозицию .NET-микросервисов в масштабе: определяет границы сервисов по DDD с CQRS и event sourcing (EventStoreDB, Marten). Реализует интеграцию с service mesh (Istio sidecar с Kestrel). Проектирует стратегию database-per-service с паттернами eventual consistency. Ведёт миграции по Strangler Fig с сохранением SLA по zero-downtime.
Применяет тактические паттерны DDD в C#/.NET: агрегаты с контролем инвариантов, Domain Events через MediatR/MassTransit, Specification pattern. Проектирует границы агрегатов с учётом транзакционной консистентности. Реализует rich domain models с EF Core value conversions.
Observability и мониторинг · 3
Проектирует логирование для .NET-платформы: correlation через Activity/DiagnosticSource, distributed tracing через OpenTelemetry. Log sampling для high-throughput. Интеграция с Grafana Loki.
Проектирует tracing-архитектуру: sampling strategies, context propagation через messaging, custom instrumentation. Оптимизирует overhead и costs.
Проектирует мониторинг .NET-платформы: RED-метрики, .NET runtime дашборды, distributed tracing. SLI/SLO дашборды. Оптимизирует cardinality.
Контроль версий и коллаборация · 2
Архитектурный review: влияние на систему, backward compatibility, performance. Миграции, API-контракты, DI-конфигурации. Менторит через review.
Определяет branching-стратегию: trunk-based с feature flags, release branches. Git hooks для quality gates (dotnet format, analyzers). Semantic versioning через GitVersion.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Lead
71 навыков получают более высокое ожидание или становятся ключевыми при переходе с Senior на Lead. Сначала самые большие скачки.
- Алгоритмы и сложность: Продвинутый → Эксперт
- Асинхронное программирование: Продвинутый → Эксперт
- Декомпозиция на микросервисы: Применение → Продвинутый
- Дженерики и параметрический полиморфизм: Продвинутый → Эксперт
- Документирование API: Продвинутый → Эксперт
- Индексирование БД: Продвинутый → Эксперт
- Интеграционное тестирование: Продвинутый → Эксперт
- Качество кода и рефакторинг: Продвинутый → Эксперт
- Миграции БД: Продвинутый → Эксперт
- Многопоточное программирование: Продвинутый → Эксперт
} в открытой матрице компетенций: 72 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.