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.

8core skills
45additional skills
4skill areas
0%at Advanced or Expert
Assess myself as Mid-level Full role matrix

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

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.

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.

Multithreading Working

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

Unit Testing Working

Structures tests by modules. Uses Moq/NSubstitute for dependency mocking. Introduces code coverage through coverlet. Applies FluentAssertions for readable assertions.

Version Control & Collaboration · 2

Code Review Working

Conducts code review for C#/.NET desktop code. Checks async/await correctness, MVVM adherence, memory management. Provides constructive feedback. Reviews XAML.

Git Advanced Working

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

MVVM Pattern Working

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.

Algorithms & ComplexityAPI DocumentationASP.NET CoreAsync ProgrammingAuto-Update MechanismsAvalonia UIAWSChatGPT / ClaudeComponent TestingCPU ProfilingCursor IDEData StructuresDatabase IndexingDesign PatternsDesktop App Packaging: MSI, DMG, AppImageDockerE2E TestingGenerics & Parametric PolymorphismGitHub Actions / GitLab CIGitHub CopilotGraphQL DesignIntegration TestingIPC: Inter-Process CommunicationJWT / OAuth2 / OIDCKubernetes CoreLatency OptimizationMemory ProfilingMemory ProfilingNetwork FundamentalsOffline-First & Local StorageOOP & SOLID PrinciplesOpenTelemetryOWASP & Application SecurityPlugin ArchitecturePostgreSQLPrometheus & GrafanaPrompt Engineering for CodeRedisREST API DesignSecure Coding PracticesSLI / SLO / SLAStructured LoggingSystem Design FundamentalsTerraformType Safety & Type Systems

What changes at Senior

53 skills get a higher expectation or become core when moving from Mid-level to Senior. The biggest jumps first.

See the Senior page →
Run this with your whole team
Self-assessment plus manager and peer reviews against the same matrix, gap analysis and next-level readiness for every engineer. Team Pro is free for 14 days; individual tools stay free forever.
Start a team trial (14 days free) Send to my manager

} in the open competency matrix: 53 skills across 5 levels. The matrix is free for individuals and stays free.