Expertly applies algorithms and complexity for compiler engineering in designing complex systems. Optimizes existing solutions and prevents architectural mistakes. Conducts code reviews and trains colleagues on best practices.
Roles · Compiler Engineer · Senior
What a Senior } should know
12 core skills, 55 in total. Expectations per skill, and what changes at the next level.
This page lists what a Senior } 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, Version Control & Collaboration, Compilers & Languages.
Core skills for a Senior
Grouped by area. The label on the right is the expected depth: Awareness, Working, Advanced or Expert.
Programming Fundamentals · 3
Expertly applies code quality practices for compiler engineering in designing complex systems. Optimizes existing solutions and prevents architectural mistakes. Conducts code reviews and trains colleagues on best practices.
Expertly applies data structures for compiler engineering in designing complex systems. Optimizes existing solutions and prevents architectural mistakes. Conducts code reviews and trains colleagues on best practices.
Version Control & Collaboration · 1
Expertly applies code review for compiler engineering in designing complex systems. Optimizes existing solutions and prevents architectural mistakes. Conducts code reviews and trains colleagues on best practices.
Compilers & Languages · 8
Designs AST transformation pipeline for an optimizing compiler. Implements type checking and name resolution at the AST level. Builds Symbol Table with correct scoping.
Designs instruction selection and register allocation for a new target. Implements calling convention for custom ABI. Optimizes codegen for specific CPU architectures (x86/ARM/RISC-V).
Designs complex optimization passes: auto-vectorization, loop fusion, interprocedural analysis. Implements alias analysis for unsafe transformations. Diagnoses regressions from passes.
Designs high-performance interpreter with inline caching for dynamic operations. Implements specialization for frequently executed hot paths. Profiles and optimizes interpreter overhead.
Designs multi-tier JIT: interpreter → baseline JIT → optimizing JIT with profiling. Implements deoptimization and on-stack replacement (OSR). Profiles and optimizes JIT compilation overhead.
Designs complete compiler frontend: lexer, recursive descent parser, AST builder. Implements Pratt parsing for operator precedence. Optimizes parsing performance for large codebases.
Develops custom LLVM backend or target lowering for a non-standard architecture. Optimizes LLVM pipeline for specific workloads. Writes target-specific instruction selection patterns.
Designs type system for a new language: variance, higher-kinded types, existential types. Implements incremental type checking for language server. Optimizes type checker performance.
Additional skills
Not assessed by the team, but part of the self-assessment and the development plan.
What changes at Lead
55 skills get a higher expectation or become core when moving from Senior to Lead. The biggest jumps first.
- Algorithms & Complexity: Advanced → Expert
- AST & IR Manipulation: Advanced → Expert
- Code Generation: Advanced → Expert
- Code Quality & Refactoring: Advanced → Expert
- Code Review: Advanced → Expert
- Compiler Optimization Passes: Advanced → Expert
- Data Structures: Advanced → Expert
- Interpreter Design: Advanced → Expert
- JIT Compilation: Advanced → Expert
- Lexing & Parsing: Advanced → Expert
} in the open competency matrix: 55 skills across 5 levels. The matrix is free for individuals and stays free.