Applies algorithms for system software: B-tree for FS, hash tables with open addressing, cache-oblivious algorithms. Evaluates hardware-specific complexity.
Roles · Systems Programmer (C/C++) · Mid-level
What a Mid-level } should know
11 core skills, 94 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, Cloud & Infrastructure, DevOps & CI/CD.
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 · 7
Applies async I/O: io_uring for Linux, completion-based I/O, coroutines (C++20/Rust async). Designs event loop architectures.
Applies quality tools: sanitizers (ASAN/MSAN/TSAN/UBSAN), static analysis (clang-tidy), fuzzing for edge cases.
Applies system data structures: arena allocators, intrusive lists, radix trees, concurrent hash maps. Optimizes memory layout for cache.
Applies system patterns: Flyweight for memory optimization, Reactor for I/O multiplexing, Chain of Responsibility for packet processing.
Manages memory: custom allocators (pool, slab, arena), memory-mapped files, huge pages. Analyzes via Valgrind and perf.
Applies concurrent programming: reader-writer locks, thread pools, atomic operations, memory ordering (acquire/release/seq_cst).
Cloud & Infrastructure · 1
Understands TCP/IP stack internals at the OS level — socket buffer tuning, congestion control algorithms, and kernel network parameter optimization. Configures TLS/SSL for custom protocol implementations. Works with low-level network primitives including raw sockets and packet crafting. Understands DNS resolution internals and TTL propagation. Debugs network issues using tcpdump, Wireshark, and eBPF network tracing.
DevOps & CI/CD · 1
Designs CI/CD pipelines from scratch. Configures caching for build acceleration. Uses matrix builds for multi-version testing. Sets up deployment pipelines (staging → production). Works with secrets and environment variables.
Architecture & System Design · 1
Designs system components with proper abstractions: HAL, platform abstraction, API contracts. Applies layered architecture for kernel subsystems and drivers.
Version Control & Collaboration · 1
Independently conducts driver and kernel module reviews. Focuses on race conditions, error handling correctness, proper kernel API usage, and memory barriers.
Additional skills
Not assessed by the team, but part of the self-assessment and the development plan.
What changes at Senior
94 skills get a higher expectation or become core when moving from Mid-level to Senior. The biggest jumps first.
- AST & IR Manipulation: Working → Advanced · becomes core
- Bare Metal Programming: Working → Advanced · becomes core
- Benchmarking Tools & Methodology: Working → Advanced · becomes core
- C for Embedded: Working → Advanced · becomes core
- C++ for Embedded: Working → Advanced · becomes core
- Code Generation: Working → Advanced · becomes core
- Compiler Optimization Passes: Working → Advanced · becomes core
- CPU Profiling: Working → Advanced · becomes core
- Docker: Working → Advanced · becomes core
- DSL Design & Implementation: Working → Advanced · becomes core
} in the open competency matrix: 94 skills across 5 levels. The matrix is free for individuals and stays free.