PYPI · TECH-ROLES-LIBRARY · V1.0.1

99 roles.
9 niveles cada uno.

catálogo de roles técnicos y competencias · 891 definiciones · bilingüe EN/ES · cero dependencias · gratis para uso no comercial

$ pip install tech-roles-library

Python ≥ 3.11 · también uv add tech-roles-library

ABRIR EN COLAB ↗ PYPI ↗ GITHUB ↗
99
roles
891
definiciones
9
categorías
2
idiomas

El catálogo, en vivo

Un rol, nueve escalones.

Datos reales del paquete, sin maquillar: el rol Backend Developer completo. Cambia de idioma y de nivel — los códigos (BE-L1…BE-L9) son idénticos en ambos catálogos.

Backend Developer BE-L3 · L3 - Junior II · 2-3 años

Core competencies

    Complementary

      Indicators

        Ejemplos con el catálogo

        Guía de uso · 01

        Empezar

        Una clase, carga perezosa: no toca disco hasta la primera consulta. Las salidas de los comentarios son reales, ejecutadas contra la versión publicada.

        python
        from tech_roles_library import TechRoles
        
        lib = TechRoles(language="en")
        
        role = lib.get_role("BE-L3")
        role.role                  # Backend Developer
        role.level                 # L3 - Junior II
        role.core_competencies[0]  # Mastery of RESTful API design and best practices
        from tech_roles_library import TechRoles
        
        lib = TechRoles(language="es")
        
        role = lib.get_role("BE-L3")
        role.role                  # Desarrollador de Backend
        role.level                 # L3 - Junior II
        role.core_competencies[0]  # Dominio de diseño de API RESTful y mejores prácticas

        Guía de uso · 02

        Dos idiomas, mismos códigos

        Cada idioma es un catálogo completo: nombres, competencias y niveles localizados. Los códigos funcionan como identificador estable entre ambos.

        python
        en = TechRoles(language="en")
        es = TechRoles(language="es")
        
        en.get_role("PT-L5").role   # Penetration Tester
        es.get_role("PT-L5").role   # Pentester
        
        es.roles()[:3]
        # ('Administrador de Bases de Datos', 'Administrador de Sistemas', 'Agile Coach')

        Guía de uso · 03

        Consultar roles

        Por código o por nombre y nivel. El nivel acepta 3, "3", "L3" o el nombre completo "L3 - Junior II".

        python
        role = lib.get_role("AAG-L5")             # por código, sin distinguir mayúsculas
        role.role           # AI Agent Engineer
        role.years_range    # YearsRange(min=5, max=7)
        
        lib.get_role_by_name("Backend Developer", 3)
        [e.code for e in lib.get_levels("Data Engineer")]
        # ['DE-L1', 'DE-L2', ..., 'DE-L9']
        role = lib.get_role("AAG-L5")             # por código, sin distinguir mayúsculas
        role.role           # Ingeniero de Agentes de IA
        role.years_range    # YearsRange(min=5, max=7)
        
        lib.get_role_by_name("Desarrollador de Backend", 3)
        [e.code for e in lib.get_levels("Ingeniero de Datos")]
        # ['DE-L1', 'DE-L2', ..., 'DE-L9']

        Guía de uso · 04

        Competencias

        Cada rol-nivel tiene competencias core, complementarias e indicadores observables. Y una vista acumulada desde L1, sin duplicados.

        python
        c = lib.get_competencies("Backend Developer", "L3")
        len(c.core), len(c.complementary), len(c.indicators)   # (8, 3, 3)
        c.indicators[0]   # Completes complex features with minimal supervision
        
        acc = lib.get_accumulated("Backend Developer", 5)
        len(acc.core)     # 40 — todo lo dominado de L1 a L5
        c = lib.get_competencies("Desarrollador de Backend", "L3")
        len(c.core), len(c.complementary), len(c.indicators)   # (8, 3, 3)
        c.indicators[0]   # Completa funcionalidades complejas con mínima supervisión
        
        acc = lib.get_accumulated("Desarrollador de Backend", 5)
        len(acc.core)     # 40 — todo lo dominado de L1 a L5

        Guía de uso · 05

        Progresión de carrera

        Vista completa de carrera, salto al siguiente nivel con las competencias nuevas, y nivel recomendado por años de experiencia.

        python
        path = lib.get_career_path("Backend Developer", "L5")
        [e.level_number for e in path.mastered]   # [1, 2, 3, 4]
        [e.level_number for e in path.growth]     # [6, 7, 8, 9]
        
        nxt = lib.get_next_level("Backend Developer", "L3")
        nxt.next.code               # BE-L4
        nxt.new_competencies[0]     # Ability to design distributed systems and microservices
        
        lib.get_by_experience("Backend Developer", 5).level   # L4 - Mid-Level I
        path = lib.get_career_path("Desarrollador de Backend", "L5")
        [e.level_number for e in path.mastered]   # [1, 2, 3, 4]
        [e.level_number for e in path.growth]     # [6, 7, 8, 9]
        
        nxt = lib.get_next_level("Desarrollador de Backend", "L3")
        nxt.next.code               # BE-L4
        nxt.new_competencies[0]     # Capacidad de diseñar sistemas distribuidos y microservicios
        
        lib.get_by_experience("Desarrollador de Backend", 5).level   # L4 - Nivel Medio I

        Guía de uso · 06

        Buscar y filtrar

        Búsqueda con puntuación que normaliza guiones ("fullstack" encuentra Full-Stack Developer) y filtros por categoría y nivel.

        python
        for r in lib.search("data", limit=3):
            print(r.role, r.score, r.matched_in)
        # Data Analyst 15 both
        # Data Architect 15 both
        # Data Engineer 15 both
        
        [e.code for e in lib.filter(category="Design", level=3)]
        # ['ACC-L3', 'CD-L3', 'PD-L3', 'UXD-L3', 'UXR-L3']
        for r in lib.search("datos", limit=3):
            print(r.role, r.score, r.matched_in)
        # Analista de Datos 15 both
        # Arquitecto de Datos 15 both
        # Científico de Datos 15 both
        
        [e.code for e in lib.filter(category="Diseño", level=3)]
        # ['ACC-L3', 'CD-L3', 'PD-L3', 'UXD-L3', 'UXR-L3']

        Guía de uso · 07

        Comparar y exportar

        Diferencias entre niveles del mismo rol o entre dos roles al mismo nivel, y export de cualquier resultado a JSON o Markdown.

        python
        cmp = lib.compare_levels("Backend Developer", 3, 4)
        len(cmp.added)    # 11 competencias nuevas en el salto
        
        cmp = lib.compare_roles("Data Engineer", "Analytics Engineer", 3)
        cmp.only_a, cmp.only_b   # lo exclusivo de cada rol
        
        print(lib.export(lib.get_competencies("Backend Developer", 3), "markdown"))
        # # Backend Developer
        # ## L3 - Junior II
        # ### Core competencies ...
        cmp = lib.compare_levels("Desarrollador de Backend", 3, 4)
        len(cmp.added)    # 11 competencias nuevas en el salto
        
        cmp = lib.compare_roles("Ingeniero de Datos", "Ingeniero de Analítica", 3)
        cmp.only_a, cmp.only_b   # lo exclusivo de cada rol
        
        print(lib.export(lib.get_competencies("Desarrollador de Backend", 3), "markdown"))
        # # Desarrollador de Backend
        # ## L3 - Junior II
        # ### Core competencies ...

        Guía de uso · 08

        Errores que ayudan

        Toda excepción hereda de TechRolesError, y los "no encontrado" sugieren alternativas.

        python
        from tech_roles_library import RoleNotFoundError
        
        try:
            lib.get_role_by_name("Bakcend Developer", 3)
        except RoleNotFoundError as e:
            print(e)
        # Role not found: 'Bakcend Developer'.
        # Did you mean: Backend Developer, Game Developer, Blockchain Developer?
        
        lib.validate_role("Backend Developer")   # True
        lib.validate_level("Backend Developer", 10)   # False
        from tech_roles_library import RoleNotFoundError
        
        try:
            lib.get_role_by_name("Desarrollador Backend", 3)
        except RoleNotFoundError as e:
            print(e)
        # Role not found: 'Desarrollador Backend'.
        # Did you mean: Desarrollador de Backend, Desarrollador Blockchain, Desarrollador Frontend?
        
        lib.validate_role("Desarrollador de Backend")   # True
        lib.validate_level("Desarrollador de Backend", 10)   # False

        Catálogo completo

        Los 99, por categoría.

        Despliega cada categoría para ver sus roles con el código y el nombre en ambos idiomas.

        Escalera de niveles

        De Trainee a VP/CTO.

        NivelENESAños
        L1TraineeAprendiz0-1
        L2Junior IJunior I1-2
        L3Junior IIJunior II2-3
        L4Mid-Level INivel Medio I3-5
        L5Mid-Level IINivel Medio II5-7
        L6Senior ISenior I7-10
        L7Senior IISenior II10-12
        L8Staff/PrincipalStaff/Principal12-15
        L9VP/CTOVicepresidente o Director de Tecnología15+

        Cero dependencias. Tipado completo. El mismo catálogo en inglés y en castellano, con los códigos como identificador común. 78 tests lo vigilan.