Configures StyleCop, SonarAnalyzer for static analysis. Uses Roslyn analyzers and code fixes. Applies code metrics (cyclomatic complexity, coupling). Writes self-documenting code with XML comments.
Roles · Desktop Developer (.NET WPF/WinUI/MAUI) · Mid-level
What a Mid-level } should know
8 core skills, 53 in total. Expectations per skill, and what changes at the next level.
This page lists what a Mid-level } is expected to know and do, skill by skill. Core skills are the ones a manager and peers assess in a review cycle; the rest count only in self-assessment. Main areas: Programming Fundamentals, Testing & QA, Version Control & Collaboration.
Core skills for a Mid-level
Grouped by area. The label on the right is the expected depth: Awareness, Working, Advanced or Expert.
Programming Fundamentals · 3
Manages memory through Span<T>, Memory<T>, ArrayPool<T>. Analyzes GC pressure through dotnet-counters. Optimizes struct vs class selection for hot paths. Uses WeakReference for cache patterns.
Implements concurrent operations through Task Parallel Library (TPL). Uses CancellationToken for operation cancellation. Applies SemaphoreSlim, lock, ReaderWriterLockSlim for synchronization. Works with Channels.
Testing & QA · 1
Structures tests by modules. Uses Moq/NSubstitute for dependency mocking. Introduces code coverage through coverlet. Applies FluentAssertions for readable assertions.
Version Control & Collaboration · 2
Conducts code review for C#/.NET desktop code. Checks async/await correctness, MVVM adherence, memory management. Provides constructive feedback. Reviews XAML.
Applies Git rebase, cherry-pick, bisect. Configures Git hooks with dotnet-format pre-commit. Works with Git submodules for shared libraries. Resolves merge conflicts in .csproj and XAML.
Desktop Development · 2
Applies MVVM with ObservableValidator for validation. Uses IMessenger (WeakReferenceMessenger) for inter-ViewModel communication. Organizes navigation through INavigationService. Implements async commands.
Independently develops WPF/WinUI applications with MVVM through CommunityToolkit.Mvvm. Creates custom UserControl and ControlTemplate. Works with DataTemplate, IValueConverter. Uses Navigation through Frame.
Additional skills
Not assessed by the team, but part of the self-assessment and the development plan.
What changes at Senior
53 skills get a higher expectation or become core when moving from Mid-level to Senior. The biggest jumps first.
- Algorithms & Complexity: Working → Advanced · becomes core
- ASP.NET Core: Working → Advanced · becomes core
- Async Programming: Working → Advanced · becomes core
- Auto-Update Mechanisms: Working → Advanced · becomes core
- Avalonia UI: Working → Advanced · becomes core
- ChatGPT / Claude: Working → Advanced · becomes core
- Component Testing: Working → Advanced · becomes core
- CPU Profiling: Working → Advanced · becomes core
- Data Structures: Working → Advanced · becomes core
- Database Indexing: Working → Advanced · becomes core
} in the open competency matrix: 53 skills across 5 levels. The matrix is free for individuals and stays free.