Dominio
Compilers & Languages
Perfil de habilidad
Type inference: Hindley-Milner, unification, type checking, generics, variance
Roles
3
donde aparece esta habilidad
Niveles
5
ruta de crecimiento estructurada
Requisitos obligatorios
11
los otros 4 opcionales
Compilers & Languages
Compiler Theory
17/3/2026
Selecciona tu nivel actual y compara las expectativas.
La tabla muestra cómo crece la profundidad desde Junior hasta Principal.
| Rol | Obligatorio | Descripción |
|---|---|---|
| Compiler Engineer | Obligatorio | Understands basic type inference algorithms: unification, Hindley-Milner inference. Knows the difference between structural and nominal type systems. Can work with simple generics. |
| Language Tooling Engineer | Learns basics of type inference algorithms such as Hindley-Milner and unification. Reads compiler source code to understand how type checking passes work in practice. | |
| Systems Programmer (C/C++) | Studies how type inference and type checking affect memory layout and safety guarantees. Understands basic type system rules enforced by the compiler in languages like Rust or C++. |
| Rol | Obligatorio | Descripción |
|---|---|---|
| Compiler Engineer | Obligatorio | Implements bidirectional type checking for languages with type annotations. Understands constraint-based type inference. Writes a type checker for a language with generics and simple subtyping. |
| Language Tooling Engineer | Implements type inference passes and integrates them with IR transformations. Writes comprehensive test suites for type checker correctness including edge cases with generics and variance. | |
| Systems Programmer (C/C++) | Applies type inference knowledge to write safer low-level code with minimal explicit annotations. Leverages compiler type checking to catch memory safety issues and undefined behavior at compile time. |
| Rol | Obligatorio | Descripción |
|---|---|---|
| Compiler Engineer | Obligatorio | Designs type system for a new language: variance, higher-kinded types, existential types. Implements incremental type checking for language server. Optimizes type checker performance. |
| Language Tooling Engineer | Obligatorio | Designs advanced type system features including dependent types, GADTs, and type-level computation. Architects compiler optimization passes that leverage type information for better code generation. Mentors the team on type theory. |
| Systems Programmer (C/C++) | Obligatorio | Designs type-safe abstractions for system-level APIs that enforce correctness at compile time. Evaluates and influences type system design decisions in languages like Rust, contributing to safer systems programming patterns. |
| Rol | Obligatorio | Descripción |
|---|---|---|
| Compiler Engineer | Obligatorio | Architects type system evolution for the language with backward compatibility in mind. Makes decisions about breaking changes. Manages the type system engineering team. |
| Language Tooling Engineer | Obligatorio | Defines compiler architecture. Establishes development standards. Coordinates compiler team. |
| Systems Programmer (C/C++) | Obligatorio | Defines compiler architecture. Establishes development standards. Coordinates the compiler team. |
| Rol | Obligatorio | Descripción |
|---|---|---|
| Compiler Engineer | Obligatorio | Defines long-term type system strategy for the platform language. Researches dependent types, linear types, effect systems. Publishes academic papers on type systems. |
| Language Tooling Engineer | Obligatorio | Defines compiler/language development strategy. Designs core language features. Shapes technology vision. |
| Systems Programmer (C/C++) | Obligatorio | Defines compiler/language development strategy. Designs core language features. Establishes technology vision. |