Roles · Desktop Developer (Qt/C++) · 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 clang-tidy with Qt-specific checks. Uses cppcheck and PVS-Studio for static analysis. Applies RAII and smart pointers (QScopedPointer, std::unique_ptr). Writes self-documenting code.

Manages memory in Qt with implicit sharing (COW) and move semantics. Uses QSharedPointer for shared ownership. Analyzes memory leaks through Qt Creator memory profiler. Optimizes allocations through QVarLengthArray.

Multithreading Working

Implements thread pool through QThreadPool and QRunnable. Uses QMutex, QReadWriteLock, QSemaphore for synchronization. Applies QtConcurrent with QFuture/QFutureWatcher for async operations. Avoids race conditions.

Testing & QA · 1

Unit Testing Working

Structures tests by modules with separate test suites. Uses QTest::addColumn for data-driven tests. Introduces code coverage through gcov/lcov. Mocks dependencies through GMock or manual stubs.

Version Control & Collaboration · 2

Code Review Working

Conducts code review for Qt/C++ code. Checks memory safety, thread safety, Qt best practices. Provides constructive feedback, suggests alternative solutions. Reviews QML code.

Git Advanced Working

Applies Git rebase, cherry-pick, bisect for debugging. Configures Git hooks for pre-commit checks (clang-format, lint). Works with Git submodules for Qt dependencies. Resolves merge conflicts in C++/QML.

Desktop Development · 2

MVVM Pattern Working

Applies MVVM with Command pattern through Qt. Uses QAbstractListModel for ViewModel, implements filtering through QSortFilterProxyModel. Organizes navigation through StackView and Router.

Independently develops Qt applications with QML and Qt Quick. Uses Model/View Architecture (QAbstractItemModel). Works with Qt Network, QThread and Qt SQL. Understands ownership and QObject lifecycle.

Additional skills

Not assessed by the team, but part of the self-assessment and the development plan.

Algorithms & ComplexityAPI DocumentationAsync ProgrammingAuto-Update MechanismsAWSBenchmarking Tools & MethodologyChatGPT / ClaudeCPU ProfilingCursor IDEData StructuresDatabase IndexingDesign PatternsDesktop App Packaging: MSI, DMG, AppImageDockerE2E TestingGenerics & Parametric PolymorphismGitHub Actions / GitLab CIGitHub CopilotGraphQL DesignGTK / Linux DesktopI/O & Disk ProfilingIntegration TestingIPC: Inter-Process CommunicationKubernetes CoreLatency OptimizationMemory ProfilingMemory ProfilingNetwork FundamentalsOffline-First & Local StorageOOP & SOLID PrinciplesOpenTelemetryOWASP & Application SecurityPlugin ArchitecturePostgreSQLPrometheus & GrafanaPrompt Engineering for CodeRedisResource Optimization FinOpsREST 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.