Проектирует алгоритмы для real-time обработки в .NET desktop. Использует System.Numerics.Vector<T> для SIMD. Реализует пространственные индексы для WPF Canvas с тысячами объектов.
Роли · Desktop Developer (.NET WPF/WinUI/MAUI) · Senior
Что должен уметь Senior }
38 ключевых навыков, всего 53. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Senior }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Backend Development, Frontend Development.
Ключевые навыки для Senior
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 11
Проектирует async архитектуру .NET desktop с backpressure через BoundedChannel. Реализует structured concurrency. Оптимизирует async state machine через PoolingAsyncValueTaskMethodBuilder. Менторит по async best practices.
Проектирует generic frameworks с Source Generators. Использует static abstract members в interfaces (C# 11+). Реализует generic math через INumber<T>. Применяет generic host для modular architecture.
Определяет quality gates для .NET проектов. Настраивает SonarQube/SonarCloud. Создаёт custom Roslyn analyzers для project-specific rules. Менторит по C# best practices и code quality.
Проектирует concurrent архитектуру с Dataflow (TPL Dataflow), producer/consumer через Channel<T>. Оптимизирует lock contention через Interlocked и lock-free structures. Использует ValueTask для hot path.
Проектирует архитектуру с State (Stateless library), Event Sourcing, CQRS. Реализует Pipeline через MediatR behaviours. Применяет Specification pattern для complex queries. Создаёт domain-driven design.
Применяет SOLID в enterprise .NET desktop. Проектирует с ISP (Interface Segregation), использует Source Generators для метапрограммирования. Применяет composition over inheritance в WPF/WinUI. Менторит по ООП.
Проектирует memory profiling pipeline для .NET desktop. Использует ClrMD для programmatic heap analysis. Настраивает EventCounters для custom memory metrics. Автоматизирует memory regression testing.
Проектирует data layer с ConcurrentDictionary, Channel<T> для producer/consumer. Использует System.Collections.Frozen для read-heavy сценариев. Реализует custom data structures с ref struct для zero-allocation.
Проектирует type-safe API с Source Generators для compile-time validation. Создаёт strongly-typed wrappers для primitive obsession. Использует ref struct и Span<T> для type-safe memory access. Внедряет exhaustive matching.
Проектирует memory-efficient архитектуру .NET desktop. Использует NativeMemory для unmanaged allocations. Настраивает GC режимы (Server vs Workstation). Реализует object pooling через ObjectPool<T>.
Backend Development · 1
Проектирует гибридную desktop+web архитектуру через WebView2 + ASP.NET backend. Использует Blazor Hybrid для sharing UI между web и desktop. Оптимизирует .NET runtime для desktop сценариев.
Frontend Development · 1
Проектирует component testing strategy для .NET desktop. Создаёт test harness для isolated component rendering. Реализует property-based testing через FsCheck. Автоматизирует visual regression в CI.
Базы данных · 2
Проектирует indexing strategy для desktop-приложений с embedded PostgreSQL. Оптимизирует index maintenance для offline-first. Использует BRIN для temporal data. Анализирует index bloat и vacuum.
Проектирует data layer с EF Core для desktop. Оптимизирует PostgreSQL queries через explain analyze. Использует Npgsql NodaTime, NetTopologySuite. Реализует connection pooling через NpgsqlDataSource.
API и интеграции · 1
Проектирует API layer для .NET desktop с offline-first, pagination, rate limiting. Реализует SignalR-клиент для real-time updates. Оптимизирует network usage через request batching и caching с ETag.
DevOps и CI/CD · 1
Проектирует CI/CD для .NET desktop с code signing, auto-update, release management. Настраивает self-hosted runners для WPF UI testing. Оптимизирует pipeline.
Тестирование и QA · 3
Проектирует integration test suite для .NET desktop. Реализует contract testing через Pact.NET. Настраивает CI с параллельными integration tests. Тестирует cross-process scenarios.
Проектирует E2E framework для .NET desktop. Реализует cross-platform E2E через Avalonia UI testing. Оптимизирует стабильность E2E suite. Интегрирует accessibility testing через UIA.
Проектирует test architecture для .NET desktop. Внедряет mutation testing через Stryker.NET. Создаёт test builders и fixtures для команды. Оптимизирует test execution через parallelism.
Безопасность · 2
Проектирует secure-by-default API для .NET компонентов. Реализует privilege separation через process isolation. Применяет Code Access Security patterns. Проводит secure code review.
Проектирует security architecture для .NET desktop. Реализует secure update с Authenticode verification. Внедряет AppContainer sandboxing. Проводит threat modeling.
AI-ассистированная разработка · 2
Интегрирует LLM в .NET desktop processes. Создаёт RAG для внутренней .NET документации. Оценивает quality AI-generated C# для production.
Интегрирует AI в .NET desktop workflow. Использует Copilot для architecture exploration и refactoring. Создаёт custom prompts для .NET patterns. Оценивает security AI-кода.
Observability и мониторинг · 1
Проектирует observability для .NET desktop: logging, metrics, crash analytics. Настраивает OpenTelemetry для desktop traces. Реализует remote log collection. Анализирует production incidents.
Контроль версий и коллаборация · 2
Проводит architectural review для .NET desktop. Фокусируется на design decisions, performance, security. Менторит через code review.
Проектирует Git workflow для .NET проектов. Настраивает Git LFS для binary assets. Оптимизирует CI через sparse checkout. Реализует release branching с GitVersion.
Desktop Development · 8
Проектирует auto-update архитектуру с rollback и staged rollout для MSIX. Реализует silent update для enterprise. Мониторит update success rate и crash rate после обновления. Оптимизирует размер пакетов.
Проектирует Avalonia-архитектуру для enterprise-приложений. Оптимизирует рендеринг через Direct2D/Skia. Создаёт кастомные рендер-контролы. Обеспечивает паритет функциональности между платформами.
Проектирует packaging pipeline с trimming (PublishTrimmed), AOT (NativeAOT), и single-file deployment. Оптимизирует startup через ReadyToRun. Настраивает MSIX для Microsoft Store и sideloading.
Проектирует IPC-архитектуру с .NET Remoting alternatives (gRPC, protobuf). Реализует pub/sub через Message Queue. Оптимизирует IPC latency через Span<T> и zero-copy. Работает с COM interop для legacy integration.
Проектирует масштабируемую MVVM-архитектуру для enterprise WPF/WinUI. Использует Source Generators для boilerplate reduction. Реализует DI через Microsoft.Extensions.DependencyInjection. Применяет Mediator паттерн.
Проектирует CRDT-based sync для collaborative editing в .NET. Использует Microsoft.Datasync.Client для offline sync. Оптимизирует EF Core queries для больших локальных баз. Реализует incremental sync с compression.
Проектирует extensible plugin architecture с hot-reload через AssemblyLoadContext.Unload. Реализует plugin marketplace с NuGet-based distribution. Обеспечивает binary compatibility между версиями.
Проектирует архитектуру WPF/WinUI 3 приложений. Создаёт кастомные panel и adorner. Оптимизирует visual tree через virtualization (VirtualizingStackPanel). Мигрирует с WPF на WinUI 3/MAUI.
Performance Engineering · 3
Проектирует profiling pipeline для .NET desktop. Использует EventPipe для production profiling. Анализирует .NET runtime internals (GC, JIT, ThreadPool). Оптимизирует через NativeAOT и PGO.
Проектирует low-latency .NET desktop с NativeAOT для instant startup. Оптимизирует rendering через CompositionTarget.Rendering. Реализует predictive data loading. Использует custom layout для complex UI.
Проектирует memory-efficient .NET desktop applications. Анализирует fragmentation через ClrMD. Оптимизирует GC through Server/Workstation modes and regions. Использует NativeMemory для large allocations.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Lead
53 навыков получают более высокое ожидание или становятся ключевыми при переходе с Senior на Lead. Сначала самые большие скачки.
- Алгоритмы и сложность: Продвинутый → Эксперт
- Асинхронное программирование: Продвинутый → Эксперт
- Дженерики и параметрический полиморфизм: Продвинутый → Эксперт
- Индексирование БД: Продвинутый → Эксперт
- Интеграционное тестирование: Продвинутый → Эксперт
- Качество кода и рефакторинг: Продвинутый → Эксперт
- Компонентное тестирование: Продвинутый → Эксперт
- Многопоточное программирование: Продвинутый → Эксперт
- Паттерны проектирования: Продвинутый → Эксперт
- Практики безопасного кода: Продвинутый → Эксперт
} в открытой матрице компетенций: 53 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.