Understands Big-O notation, basic sorting and search algorithms. Analyzes complexity considering cache effects and real hardware.
Roles · Systems Programmer (C/C++) · Junior
What a Junior } should know
11 core skills, 94 in total. Expectations per skill, and what changes at the next level.
This page lists what a Junior } 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 Junior
Grouped by area. The label on the right is the expected depth: Awareness, Working, Advanced or Expert.
Programming Fundamentals · 7
Understands async primitives: select/poll/epoll, non-blocking I/O, callback-based programming. Writes simple async servers.
Follows coding standards for C++/Rust: formatting (clang-format/rustfmt), naming conventions. Writes documented code.
Knows data structures for system software: arrays, linked lists, hash maps, trees. Understands memory layout and cache-line alignment.
Knows patterns for system software: RAII, Pimpl, Singleton for global state, Observer for event systems. Applies under guidance.
Understands memory model: virtual memory, page tables, stack vs heap. Knows malloc/free internals, memory alignment.
Understands POSIX threads: thread creation, mutex, condition variables. Knows memory ordering basics and data races.
Cloud & Infrastructure · 1
Understands HTTP/HTTPS, DNS basics, TCP vs UDP. Knows ports, IP addresses, localhost. Can use curl for API testing.
DevOps & CI/CD · 1
Understands CI/CD concepts: build, test, deploy. Uses existing workflows. Can add a step to existing pipeline. Knows how to check failed build logs.
Architecture & System Design · 1
Understands basic system design principles: modularity, abstraction, encapsulation, separation of concerns. Applies them when designing simple system components.
Version Control & Collaboration · 1
Participates in system code review: checks style, finds simple bugs (memory leaks, uninitialized variables). Learns from mentor to spot typical kernel code bugs.
Additional skills
Not assessed by the team, but part of the self-assessment and the development plan.
What changes at Mid-level
94 skills get a higher expectation or become core when moving from Junior to Mid-level. The biggest jumps first.
- Algorithms & Complexity: Awareness → Working
- Async Programming: Awareness → Working
- Code Quality & Refactoring: Awareness → Working
- Code Review: Awareness → Working
- Data Structures: Awareness → Working
- Design Patterns: Awareness → Working
- GitHub Actions / GitLab CI: Working → Advanced
- Memory Management: Awareness → Working
- Multithreading: Awareness → Working
- Network Fundamentals: Awareness → Working
} in the open competency matrix: 94 skills across 5 levels. The matrix is free for individuals and stays free.