Code Review 1
▼
Участвует в code review C#-кода: читаемость, naming, code style. Конструктивные комментарии. Учится на feedback. Описывает PR.
Качественный review: архитектура, EF Core запросы (N+1), async/await correctness, exception handling. SOLID-нарушения. Альтернативы с обоснованием.
Архитектурный review: влияние на систему, backward compatibility, performance. Миграции, API-контракты, DI-конфигурации. Менторит через review.
Культура code review: checklist по уровням, SLA, automated checks (SonarQube, ArchUnitNET). Разрешает disagreements. Review ADR.
Distributed Tracing 1
▼
Понимает distributed tracing. Подключает OpenTelemetry .NET SDK: auto-instrumentation для ASP.NET Core, HttpClient, EF Core. Видит трейсы в Jaeger.
Настраивает OpenTelemetry: custom ActivitySource, tags, events. Экспортирует traces + metrics через OTLP. Интегрирует с Serilog для корреляции logs + traces.
Проектирует tracing-архитектуру: sampling strategies, context propagation через messaging, custom instrumentation. Оптимизирует overhead и costs.
Определяет OpenTelemetry-стандарты: Activity naming, tag conventions, mandatory spans. Trace-based alerting. Dependency mapping.
Event-Driven архитектура 1
▼
Понимает CQRS в .NET экосистеме: знает MediatR для command/query разделения, различает IRequest и INotification. Способен добавить новый query handler с использованием существующих паттернов проекта.
Реализует CQRS в .NET проектах: использует MediatR с FluentValidation для command validation, создает отдельные Dapper-based read repositories от EF Core write repositories, настраивает pipeline behaviors для cross-cutting concerns. Применяет Clean Architecture с CQRS.
Проектирует CQRS-архитектуру для .NET микросервисов: интегрирует с Marten или EventStoreDB для event sourcing, реализует projections через subscription processors, настраивает разные read stores (SQL Server for reports, Redis for real-time). Обеспечивает testability через ArchUnit tests для CQRS boundaries.
Стандартизирует CQRS в .NET организации: выбирает между MediatR, Wolverine и custom implementations, создает NuGet-пакеты для стандартного CQRS setup, проектирует distributed CQRS через MassTransit. Определяет архитектурные guidelines и обучает команды DDD + CQRS + ES.
Git и workflow 1
▼
Уверенно работает с Git в .NET-проектах: commit, push, branch, merge. Следует branching model. Пишет conventional commits. Разрешает конфликты в .csproj и .sln.
Git продвинуто: interactive rebase, cherry-pick, bisect. Настраивает .gitattributes для .NET. Управляет конфликтами в solution files. Ревьюит PR.
Определяет branching-стратегию: trunk-based с feature flags, release branches. Git hooks для quality gates (dotnet format, analyzers). Semantic versioning через GitVersion.
Формирует Git-workflow: branching model, PR-процесс, CODEOWNERS, required checks. Mono vs multi-repo. Автоматизирует dependabot.
GraphQL 1
▼
Создаёт GraphQL-схемы через Hot Chocolate: типы, queries, mutations. Реализует resolvers. Понимает разницу с REST. Тестирует через Banana Cake Pop.
Проектирует GraphQL API: custom scalars, DataLoader для N+1, pagination через Relay. Настраивает filtering/sorting через Hot Chocolate conventions. Обрабатывает ошибки через error filter middleware.
Проектирует GraphQL-архитектуру: Schema Stitching/Federation для микросервисов, subscriptions через WebSocket, persisted queries. Оптимизирует execution engine и complexity analysis.
Определяет GraphQL-стратегию: schema conventions, federation architecture, performance budgets. Внедряет schema registry и breaking change detection.
REST API 1
▼
Создаёт REST endpoints через ASP.NET Core Minimal API или Controllers: MapGet/MapPost, [HttpGet]/[HttpPost], model binding. Возвращает правильные HTTP-статусы через Results/IActionResult. Валидирует через FluentValidation.
Проектирует RESTful API: versioning через Asp.Versioning, content negotiation, pagination через cursor/offset. Документирует через Swashbuckle/NSwag. Обрабатывает ошибки через ProblemDetails (RFC 7807). Реализует HATEOAS.
Проектирует API-архитектуру: API Gateway (YARP/Ocelot), rate limiting через RateLimiter middleware, circuit breaker через Polly. Определяет контракты через OpenAPI spec-first. Оптимизирует через output caching и response compression.
Определяет API-стандарты продукта: naming conventions, error format (ProblemDetails), pagination, versioning policy. Внедряет contract-first подход. Проводит API design review.
Алгоритмы и структуры данных 2
▼
Понимает базовые алгоритмические концепции в C#: простые LINQ-операции, базовая сортировка и поиск в коллекциях, алгоритмы на основе циклов для обработки данных. Следует руководству команды по выбору алгоритмов и применяет стандартные операции коллекций .NET.
Самостоятельно применяет алгоритмическое мышление в C#: выбирает эффективные LINQ-операции для обработки данных, понимает паттерны параллельных алгоритмов с TPL, оценивает компромиссы алгоритмов коллекций. Анализирует вычислительную сложность горячих путей кода в .NET-сервисах.
Применяет алгоритмическую экспертизу в .NET-разработке: оптимизация LINQ-запросов для эффективной обработки данных, проектирование параллельных алгоритмов с TPL, lock-free конкурентные алгоритмы с использованием Interlocked-операций. Оценивает алгоритмическую сложность в горячих путях и проектирует эффективные стратегии кэширования с правильными алгоритмами вытеснения.
Устанавливает performance-бюджеты для .NET-сервисов. Проводит review с фокусом на алгоритмическую сложность и аллокации. Внедряет BenchmarkDotNet в CI для регрессионного тестирования производительности.
Понимает базовые типы коллекций .NET: List, Dictionary, HashSet для типичных операций. Следует командным конвенциям для классов моделей данных и структур сущностей. Применяет простые структуры данных для CRUD-операций и обработки запросов/ответов API.
Самостоятельно выбирает подходящие структуры данных в C#: Dictionary vs SortedDictionary для различных паттернов доступа, List vs LinkedList для операций с коллекциями, ConcurrentBag для потокобезопасных сценариев. Понимает компромиссы между value types и reference types для выделения памяти.
Выбирает оптимальные структуры данных для .NET-приложений: ConcurrentDictionary для потокобезопасного кэширования, ReadOnlySpan для zero-allocation парсинга, ImmutableList для функциональных паттернов. Оптимизирует использование коллекций с учётом давления на GC и layout памяти. Проектирует кастомные структуры данных с использованием C#-дженериков и struct-ограничений.
Определяет стандарты работы с данными: record types, immutable collections, value objects. Ревьюит выбор коллекций в контексте производительности (Span<T>, ArrayPool). Внедряет source generators для оптимизации.
Безопасность приложений 1
▼
Знает OWASP Top 10. Предотвращает SQL injection через EF Core параметризацию. Использует антифоргери-токены. Применяет [Authorize] и ASP.NET Core Identity.
Применяет OWASP в .NET: security headers через middleware, rate limiting, input validation через FluentValidation. SAST через Roslyn Security analyzers. Masking в логах.
Проектирует security-архитектуру: threat modeling (STRIDE), SAST/DAST в CI, dependency scanning (Snyk/Dependabot). Внедряет security-as-code через ASP.NET Core middleware pipeline.
Определяет security-стандарты: OWASP compliance checklist, security review процесс, incident response. Обучает secure coding.
Веб-фреймворки 1
▼
Использует ASP.NET Core на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Самостоятельно реализует задачи с ASP.NET Core. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты.
Проектирует решения на основе ASP.NET Core для production-систем. Оптимизирует производительность и масштабируемость. Выбирает между альтернативными подходами. Менторит команду.
Определяет архитектурные решения по ASP.NET Core на уровне продукта. Формирует стандарты. Проводит design review и определяет технический roadmap.
Интеграционное тестирование 1
▼
Пишет integration-тесты через WebApplicationFactory: HTTP-запросы к API, проверка responses. Тестирует с in-memory database. Проверяет controller → service → repository.
Пишет integration-тесты: Testcontainers для PostgreSQL/Redis/Kafka, WireMock.Net для HTTP-зависимостей. Тестирует transactions, auth, error handling. Управляет test data через Respawn.
Проектирует integration-testing стратегию: slice tests vs full integration, contract testing через Pact-Net, load testing через NBomber. Оптимизирует CI время.
Определяет стандарты: обязательные сценарии для endpoints, test environment management, test data strategy. Внедряет contract testing.
Кэширование 2
▼
Использует Redis через StackExchange.Redis/IDistributedCache. Кеширует часто запрашиваемые данные с TTL. Понимает базовые структуры: strings, hashes, sets. Настраивает подключение через appsettings.json.
Проектирует кеширование в .NET: IMemoryCache (L1) + IDistributedCache/Redis (L2), cache-aside pattern. Реализует cache stampede protection через SemaphoreSlim. Настраивает Redis Sentinel для HA. Мониторит hit ratio.
Проектирует распределённое кеширование: Redis Cluster, Lua-скрипты для атомарных операций, Redis Streams для event-driven инвалидации. Использует StackExchange.Redis pipelining для batch operations.
Определяет caching-стратегию продукта: multi-level cache, warming, invalidation policies. Устанавливает метрики и SLA для cache performance. Выбирает между Redis и Garnet.
Использует кэширование в .NET на базовом уровне: IMemoryCache, IDistributedCache с Redis. Следует командным паттернам для реализации cache-aside и настройки TTL. Понимает базовые концепции инвалидации кэша и конвенции именования ключей.
Самостоятельно реализует стратегии кэширования в .NET: распределённое кэширование со StackExchange.Redis, output caching, middleware кэширования ответов. Понимает предотвращение cache stampede, паттерны write-through vs write-behind и прогрев кэша.
Проектирует multi-level кеширование: MemoryCache + HybridCache (.NET 9) + Redis. Реализует write-behind для batch persistence, pre-warming при деплоях. Оптимизирует serialization через System.Text.Json source generators.
Определяет caching-стандарты: какие данные кешировать, TTL policies, invalidation стратегии. Внедряет метрики и алертинг. Балансирует data freshness и latency.
Метрики и мониторинг 1
▼
Понимает мониторинг .NET-сервисов. Читает Grafana дашборды: CPU, memory, GC, request rate. Знает ASP.NET Core metrics (/metrics через prometheus-net). Реагирует по runbook.
Добавляет custom-метрики через System.Diagnostics.Metrics / prometheus-net: Counter, Histogram, Gauge. Создаёт Grafana-дашборды. Настраивает алерты. Мониторит GC и thread pool.
Проектирует мониторинг .NET-платформы: RED-метрики, .NET runtime дашборды, distributed tracing. SLI/SLO дашборды. Оптимизирует cardinality.
Определяет мониторинг-стратегию: обязательные метрики, SLO, error budget. Культура observability. Post-mortem с метриками.
Многопоточность и конкурентность 2
▼
Понимает основы асинхронного программирования в C#: синтаксис async/await, паттерны на основе Task, базовое использование CancellationToken. Следует командным конвенциям сигнатур async-методов и избегает распространённых ошибок как async void и дедлоки.
Самостоятельно применяет асинхронное программирование в C#/.NET: правильный async/await с ConfigureAwait, ValueTask для hot paths, IAsyncEnumerable для потоковых данных. Понимает компромиссы между Task и ValueTask, overhead async state machine.
Проектирует async-архитектуры в C#/.NET: async-паттерны пайплайнов с System.IO.Pipelines, producer/consumer на Channel, кастомные async state machines для производительности. Менторит команду по best practices async и диагностике async-дедлоков.
Определяет стратегию async в .NET: async/await best practices, Channel<T> для producer-consumer, IAsyncEnumerable для streaming. Внедряет стандарты обработки CancellationToken и ValueTask.
Понимает основы многопоточности в C#/.NET: основы Task и async/await, базовое понимание потокобезопасности и ключевого слова lock, ConcurrentDictionary и потокобезопасные коллекции. Следует командным конвенциям async-паттернов в ASP.NET Core.
Самостоятельно применяет многопоточность в C#/.NET: Task Parallel Library для сложных async-воркфлоу, Channels и pipelines для паттернов producer-consumer, ConcurrentBag/Queue для потокобезопасных коллекций, понимание SynchronizationContext и ConfigureAwait. Решает типовые задачи конкурентности самостоятельно.
Обладает глубокой экспертизой в многопоточности C#/.NET: проектирует высокопроизводительные конкурентные системы с System.Threading.Channels, внедряет lock-free алгоритмы для горячих путей, оптимизирует использование пулов потоков для масштабируемости ASP.NET Core. Менторит команду по продвинутым паттернам конкурентного программирования в .NET.
Определяет concurrency-стандарты .NET-команды: SemaphoreSlim vs lock, ConcurrentDictionary, Interlocked operations. Внедряет практики тестирования concurrent кода. Проводит review на thread safety.
Моделирование данных 2
▼
Пишет миграции через EF Core: Add-Migration, Update-Database. Создаёт таблицы, колонки, индексы. Понимает идемпотентность миграций. Тестирует на dev-среде перед production.
Самостоятельно проектирует схемы и оптимизирует запросы с Миграции БД. Понимает индексирование и планы выполнения запросов. Использует Entity Framework Core эффективно.
Проектирует safe-миграции: zero-downtime через expand-contract pattern, data backfill через raw SQL в миграциях, idempotent scripts для CI/CD. Автоматизирует через dotnet ef migrations bundle.
Определяет migration-стандарты: EF Core vs DbUp vs FluentMigrator, review процесс для schema changes, rollback стратегии. Тестирует миграции на копии production.
Проектирует схемы через EF Core: Entity classes, связи Navigation Properties, owned types для value objects. Понимает нормализацию. Использует Fluent API для конфигурации.
Самостоятельно проектирует схемы и оптимизирует запросы с Проектирование схем данных. Понимает индексирование и планы выполнения запросов. Использует Entity Framework Core эффективно.
Проектирует доменные модели: DDD Aggregates через EF Core, Value Objects через Owned Types, soft deletes через query filters. Выбирает между EF Core и документной БД по контексту.
Определяет стандарты моделирования: EF Core conventions, naming strategy, documentation. Ревьюит модели на DDD compliance и performance.
Облачные провайдеры 1
▼
Понимает основы Azure App Service и Azure SQL для хостинга .NET-приложений. Деплоит простые сервисы через Azure CLI. Работает с Azure Key Vault для управления секретами.
Самостоятельно конфигурирует и управляет Microsoft Azure. Пишет IaC для типовых задач. Понимает networking и security basics.
Проектирует инфраструктурные решения с Microsoft Azure. Оптимизирует стоимость и производительность. Внедряет best practices и security hardening.
Определяет инфраструктурную стратегию с Microsoft Azure. Формирует стандарты IaC. Проводит architecture review. Оптимизирует FinOps.
ООП и паттерны проектирования 2
▼
Понимает базовые паттерны проектирования в C#/.NET: Singleton, Factory, паттерн Repository в ASP.NET Core, основы внедрения зависимостей со встроенным DI-контейнером. Следует командным конвенциям использования паттернов в архитектуре .NET-решений.
Самостоятельно применяет паттерны проектирования в C#/.NET: медиатор с MediatR для CQRS, декоратор для сквозной функциональности, repository и unit of work для доступа к данным, спецификация для построения запросов. Понимает компромиссы между паттернами и YAGNI в .NET-приложениях.
Обладает глубокой экспертизой в паттернах проектирования для .NET: проектирует доменно-ориентированные архитектуры с aggregate roots и bounded contexts, внедряет паттерны CQRS/ES для сложных бизнес-доменов, оптимизирует использование паттернов для производительности .NET runtime. Менторит команду по enterprise-паттернам для высоконагруженных .NET-систем.
Формирует архитектурные стандарты .NET-команды: MediatR для CQRS, FluentValidation, Options pattern. Определяет conventions для Dependency Injection. Проводит архитектурные review.
Понимает базовые концепции ООП в C#: классы, интерфейсы, наследование, инкапсуляция. Применяет простые принципы SOLID, следуя конвенциям .NET-проекта. Следует командным паттернам дизайна классов сервисов/репозиториев и настройки внедрения зависимостей.
Самостоятельно применяет ООП/SOLID в C#/.NET: правильные интерфейсные контракты для сервисов, абстрактные базовые классы для общего поведения, внедрение зависимостей через встроенный DI-контейнер. Понимает компромиссы между наследованием и полиморфизмом на основе интерфейсов в архитектурных паттернах .NET.
Применяет ООП/SOLID в .NET-архитектуре: чистое разделение слоёв с dependency inversion, interface segregation для контрактов сервисов, правильное использование абстракций C# (abstract classes, interfaces, generics). Проектирует реализации Domain-Driven Design с использованием C# records, value objects и aggregate roots.
Определяет ООП-стандарты для .NET-команды: records для immutability, interfaces для DI, sealed classes для performance. Обучает SOLID и DDD-моделированию. Проводит design review.
Оптимизация БД 3
▼
Создаёт индексы через EF Core Fluent API и миграции. Понимает B-tree и hash индексы. Использует EXPLAIN для проверки. Знает о влиянии индексов на INSERT/UPDATE.
Самостоятельно проектирует схемы и оптимизирует запросы с Индексирование БД. Понимает индексирование и планы выполнения запросов. Использует Entity Framework Core эффективно.
Проектирует стратегию индексирования: partial indexes, covering indexes, GIN для JSONB. Анализирует index bloat. Настраивает мониторинг через DMV (SQL Server) или pg_stat_user_indexes.
Определяет стандарты индексирования: обязательный query plan review в PR, index naming conventions, автоматическое обнаружение missing indexes.
Понимает N+1 проблему в EF Core и решает через Include/ThenInclude. Использует AsNoTracking для read-only запросов. Анализирует сгенерированный SQL через logging.
Самостоятельно проектирует схемы и оптимизирует запросы с Оптимизация запросов. Понимает индексирование и планы выполнения запросов. Использует Entity Framework Core эффективно.
Оптимизирует data access в .NET: compiled queries, split queries, raw SQL/Dapper для аналитики. Профилирует через MiniProfiler и EF Core interceptors. Использует query tags для мониторинга.
Определяет стандарты query performance: бюджеты на время выполнения, обязательное профилирование. Внедряет автоматический мониторинг slow queries.
Понимает ACID и уровни изоляции. Использует DbContext SaveChanges как unit of work. Обрабатывает concurrency через RowVersion/Timestamp. Знает разницу между optimistic и pessimistic locking.
Самостоятельно проектирует схемы и оптимизирует запросы с Транзакции и конкурентность. Понимает индексирование и планы выполнения запросов. Использует Entity Framework Core эффективно.
Проектирует транзакционную модель: distributed transactions через Saga (MassTransit), eventual consistency, compensating transactions. Оптимизирует transaction scope. Использует TransactionScope для cross-DbContext.
Определяет стандарты транзакций: правила DbContext lifetime, isolation levels, стратегии обработки конфликтов. Проводит review транзакционных границ.
Очереди сообщений 3
▼
Понимает основы Kafka для .NET-сервисов: настройка клиента Confluent.Kafka, базовые паттерны producer/consumer и концепции topic/partition. Следует командным практикам сериализации сообщений и конфигурации consumer groups в C#-приложениях.
Реализует интеграцию Kafka для .NET-микросервисов: паттерны event-driven коммуникации, интеграция Avro schema registry и exactly-once семантика с транзакциями. Настраивает consumer groups для параллельной обработки с правильным управлением offset. Реализует dead letter queues и политики повторов для отказоустойчивой обработки сообщений.
Проектирует event-driven архитектуру на Kafka через Confluent.Kafka/.NET: consumer groups, exactly-once via transactions, Schema Registry с Avro. Оптимизирует throughput: batching, compression. Настраивает Dead Letter Topics.
Определяет Kafka-стратегию: topic naming, schema evolution policy, MassTransit vs raw Confluent.Kafka. Внедряет стандарты event-driven коммуникации и мониторинг consumer lag.
Использует RabbitMQ с MassTransit/EasyNetQ в .NET-приложениях на базовом уровне. Публикует и потребляет простые сообщения по установленным паттернам. Понимает типы exchange, очереди и базовые концепции маршрутизации.
Самостоятельно реализует RabbitMQ-messaging с MassTransit в .NET: саги, consumer'ы, политики повторов. Настраивает dead-letter exchanges и приоритетные очереди. Пишет интеграционные тесты с TestHarness для message-driven workflow.
Проектирует архитектуру messaging на RabbitMQ для .NET-микросервисов с MassTransit. Реализует оркестрацию саг, outbox pattern для надёжного messaging и федерацию для мультидатацентровых установок. Оптимизирует пропускную способность batch-публикацией и масштабированием consumer'ов.
Определяет архитектурные стандарты RabbitMQ для .NET-платформы. Устанавливает конвенции messaging, практики управления топологией и дашборды мониторинга. Проводит дизайн-ревью для event-driven архитектуры с паттернами MassTransit.
Понимает паттерны брокеров сообщений в .NET: publish-subscribe, request-reply и competing consumers с MassTransit/NServiceBus. Следует командным конвенциям для публикации и потребления сообщений через RabbitMQ или Azure Service Bus.
Работает с messaging в .NET: настраивает MassTransit с consumer/saga, использует NServiceBus для enterprise messaging, применяет Azure Service Bus с sessions для ordered processing. Реализует retry policies через Polly и настраивает dead letter handling.
Проектирует messaging-архитектуру для .NET микросервисов: реализует outbox pattern через EF Core с Debezium/polling publisher, настраивает MassTransit courier для routing slip pattern, интегрирует Kafka через Confluent .NET Client. Проектирует event-driven архитектуру с MediatR для internal events.
Стандартизирует messaging в .NET экосистеме: выбирает между MassTransit, NServiceBus и Wolverine, проектирует event sourcing с EventStoreDB/Marten, внедряет saga orchestration для распределённых транзакций. Создает внутренние NuGet-пакеты для стандартизации messaging patterns.
Паттерны микросервисов 1
▼
Декомпозирует .NET-монолит на микросервисы: выделяет bounded contexts в отдельные ASP.NET Core сервисы, реализует anti-corruption layer с MediatR. Использует Ocelot или YARP как API gateway для миграции по Strangler Fig. Управляет распределёнными транзакциями с оркестрацией Saga через MassTransit.
Проектирует декомпозицию .NET-микросервисов в масштабе: определяет границы сервисов по DDD с CQRS и event sourcing (EventStoreDB, Marten). Реализует интеграцию с service mesh (Istio sidecar с Kestrel). Проектирует стратегию database-per-service с паттернами eventual consistency. Ведёт миграции по Strangler Fig с сохранением SLA по zero-downtime.
Определяет стандарты декомпозиции .NET-микросервисов в организации: формирует референсные архитектуры с CQRS, event sourcing и паттернами Saga. Продвигает adoption service mesh (Istio/Linkerd) с .NET-специфичной настройкой. Проектирует межкомандное governance контрактов сервисов через AsyncAPI и OpenAPI спецификации. Ревьюит предложения по декомпозиции на предмет рисков распределённого монолита. Менторит старших инженеров по стратегическому дизайну DDD и context mapping.
Поисковые движки 1
▼
Использует Elasticsearch / OpenSearch на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Самостоятельно реализует интеграцию Elasticsearch в .NET через NEST/Elastic.Clients.Elasticsearch. Проектирует маппинги индексов, строит сложные запросы с bool/nested фильтрами и реализует пайплайны bulk-индексации для поискового контента.
Проектирует поисковые решения: Elastic.Clients.Elasticsearch для .NET, custom analyzers, nested документы, aggregations. Оптимизирует mapping и bulk indexing pipeline. Интегрирует с CQRS read-моделью.
Определяет стратегию полнотекстового поиска: Elasticsearch для поиска vs SQL для фильтрации, ILM, capacity planning. Внедряет мониторинг через Kibana.
Протоколы API 1
▼
Понимает основы gRPC в .NET: определения proto-файлов, кодогенерация через protobuf-net/Grpc.Tools и базовые unary RPC-вызовы. Следует командным паттернам для реализации gRPC-сервисов и клиентов на ASP.NET Core gRPC.
Разрабатывает gRPC-сервисы на ASP.NET Core: реализует все типы RPC включая bidirectional streaming через IAsyncStreamReader/IAsyncStreamWriter, настраивает Interceptor для logging и auth, интегрирует с DI-контейнером. Использует Grpc.Net.ClientFactory для typed gRPC-клиентов.
Проектирует gRPC-архитектуру для .NET микросервисов: настраивает gRPC-JSON transcoding для REST-совместимости, реализует health checks через Grpc.HealthCheck, оптимизирует через HTTP/2 connection management. Интегрирует с OpenTelemetry.Instrumentation.GrpcNetClient для distributed tracing.
Стандартизирует gRPC в .NET экосистеме компании: создает NuGet-пакеты с базовыми interceptors и конфигурацией, внедряет source generators для уменьшения boilerplate, проектирует интеграцию gRPC с MassTransit/NServiceBus для гибридной коммуникации. Определяет стратегию тестирования gRPC-сервисов.
Реляционные БД 2
▼
Пишет SQL-запросы для CRUD через Entity Framework Core / Dapper. Создаёт таблицы, индексы, foreign keys. Понимает нормализацию до 3NF. Использует MySQL Workbench для анализа.
Самостоятельно проектирует схемы и оптимизирует запросы с MySQL / MariaDB. Понимает индексирование и планы выполнения запросов. Использует Entity Framework Core эффективно.
Проектирует MySQL-архитектуру для .NET-сервисов: read replicas через DbContext routing, connection pooling через Pomelo.EntityFrameworkCore.MySql. Оптимизирует EF Core: compiled queries, bulk operations через EFCore.BulkExtensions.
Определяет стандарты MySQL в команде: naming conventions, migration workflow через EF Core Migrations, performance budgets. Проводит review схем и запросов.
Работает с PostgreSQL через EF Core (Npgsql): маппинг сущностей, LINQ-запросы, raw SQL через FromSqlRaw. Понимает типы PostgreSQL: UUID, JSONB, arrays. Использует pgAdmin.
Самостоятельно проектирует схемы и оптимизирует запросы с PostgreSQL. Понимает индексирование и планы выполнения запросов. Использует Entity Framework Core эффективно.
Использует продвинутые возможности PostgreSQL в .NET: Npgsql bulk copy, JSONB через EF Core value converters, full-text search. Настраивает connection pooling (PgBouncer). Оптимизирует EF Core batch operations.
Определяет PostgreSQL-стандарты: extension policy, schema review, monitoring через pg_stat_statements. Выбирает между EF Core, Dapper и raw Npgsql для разных сценариев.
Системы типов 2
▼
Понимает синтаксис дженериков C#: объявляет generic-классы, методы и интерфейсы с type-параметрами (List<T>, Dictionary<TKey,TValue>). Применяет базовые constraints (where T : class, where T : struct, where T : new()). Корректно использует встроенные generic-коллекции и избегает boxing, выбирая generic API вместо non-generic.
Проектирует продвинутые 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.
Архитектурит 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-инстанцирований для минимизации аллокаций.
Определяет стандарты использования generics: constraints, covariance/contravariance, generic host builders. Ревьюит API-дизайн с фокусом на type safety и ergonomics.
Понимает основы системы типов C# — типы значений vs ссылочные типы, nullable reference types и ограничения дженериков. Следует принятым в команде соглашениям по аннотациям типов, абстракциям на основе интерфейсов и паттернам строго типизированной конфигурации.
Самостоятельно применяет возможности системы типов C# — анализ nullable reference types, вариантность дженериков в интерфейсах и source generators для типобезопасного бойлерплейта. Понимает компромиссы между record types и классами для доменного моделирования. Применяет типобезопасные паттерны с System.Text.Json и strongly-typed options при ревью кода.
Обладает глубокой экспертизой в системе типов C# — проектирует доменные модели с использованием дискриминированных объединений (OneOf/кастомные), интерфейсов generic math и Span<T>/Memory<T> для высокопроизводительного типобезопасного кода. Архитектурирует типобезопасные middleware-пайплайны и контракты API. Менторит команду по продвинутым дженерикам, паттернам ковариантности/контравариантности и валидации типов на этапе компиляции с анализаторами.
Определяет стратегию типизации: nullable reference types, required members, init-only properties. Внедряет strict null checks через <Nullable>enable</Nullable>. Контролирует warning-as-error в CI.
Управление API 3
▼
Понимает rate limiting в .NET: знает встроенный RateLimiter middleware в ASP.NET Core 7+, умеет настроить fixed window и sliding window ограничения. Понимает основные паттерны: per-IP, per-user, per-endpoint.
Реализует 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.
Проектирует 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.
Стандартизирует rate limiting в .NET экосистеме: создает NuGet packages для стандартного setup, проектирует centralized rate limit service для microservices, внедряет metrics через OpenTelemetry. Определяет API management policies для enterprise API products.
Документирует API через XML-комментарии и Swagger аннотации: summary, remarks, response types. Поддерживает Swagger UI. Описывает параметры и примеры.
Проектирует API-документацию: OpenAPI spec generation через Swashbuckle, XML docs, Swagger examples. Автоматизирует проверку актуальности. Документирует auth flows и error codes.
Строит documentation pipeline: автогенерация + ручные guides, versioned docs. Использует NSwag для client SDK generation. Интегрирует с developer portal.
Определяет стандарты документирования: обязательные секции, примеры, changelog format. Внедряет docs-as-code. Обеспечивает developer experience.
Понимает версионирование API. Использует Asp.Versioning: URL segment, query string, header-based. Поддерживает backward compatibility. Знает семантическое версионирование.
Реализует версионирование: multiple API versions одновременно через ApiVersion, deprecation через Sunset header. Автоматизирует compatibility checks. Планирует migration path.
Проектирует versioning-стратегию: consumer-driven contracts, schema evolution через Protobuf. Автоматизирует breaking change detection в CI. Управляет migration между версиями.
Определяет versioning-policy: deprecation стратегия, minimum support window, communication plan. Внедряет automated compatibility testing.
Чистый код и рефакторинг 1
▼
Понимает базовые принципы качества кода для C#/.NET-разработки. Следует командным стандартам кодирования и рекомендациям анализаторов Roslyn. Пишет простые, чистые методы по конвенциям именования C#. Принимает обратную связь на код-ревью и учится у устоявшихся паттернов проектирования.
Самостоятельно применяет практики качества кода в C#/.NET-разработке. Пишет чистый код с использованием современных возможностей C#, правильным LINQ и async-паттернами. Понимает компромиссы между слоями абстракции и производительностью в .NET-приложениях. Ревьюит код на правильные паттерны Dispose, null safety и соблюдение архитектурных границ.
Проектирует стандарты качества кода для .NET-проектов: C# coding conventions, конфигурации анализаторов (Roslyn, SonarAnalyzer), architectural fitness functions. Рефакторит legacy-кодовые базы с использованием современных паттернов C# (records, pattern matching, minimal APIs). Формирует культуру код-ревью с фокусом на SOLID и clean architecture.
Формирует стандарты качества .NET-кода: .editorconfig, Roslyn analyzers, SonarQube quality gates. Внедряет Architecture Decision Records. Балансирует скорость и качество через continuous refactoring.