🏛️ Software Architect Roadmap - Gountzjs Resúmenes
Mapeo 1:1 con el árbol oficial de roadmap.sh/software-architect. Cada sección principal representa un titular amarillo del roadmap, conteniendo en su interior los subnodos exactos.
🗺️ Titulares Principales y Nodos
🟡 Understand the Basics
Sección fundacional de conceptos y alcances arquitectónicos.
- ↳ What is Software Architecture: Mini-resumen conceptual + síntesis de IEEE / SWEBOK (abstracción, 4 vistas) y visión InfoQ (decisiones y agilidad).
- ↳ What is a Software Architect: Dimensiones del rol, Constructor Jefe (Arkitekton) y por qué debe programar.
- ↳ Niveles de Arquitectura: Diferencias entre Application, Solution y Enterprise Architecture.
🟡 Responsibilities
- ↳ Tech Decisions: Selección de tecnologías, evaluación de costos y soporte a largo plazo.
- ↳ Design & Architecture Decisions: Definición de topologías, límites de dominio y contratos de interfaces.
- ↳ Requirements Elicitation: Traducción de requerimientos de negocio a Requerimientos de Atributos de Calidad (QARs).
- ↳ Documentation: Registros de decisiones arquitectónicas (ADRs) y diagramación clara (C4 Model).
- ↳ Enforcing Standards: Garantizar calidad, seguridad y consistencia en el código del equipo.
- ↳ Collaborate with Others: Alineación continua con stakeholders, producto y equipos multidisciplinarios.
- ↳ Consult & Coach Developers: Mentoría activa, desbloqueo de desarrolladores y elevación del nivel técnico.
🟡 Important Skills to Learn
- ↳ Design & Architecture: Dominio de estilos, topologías y patrones de diseño de sistemas.
- ↳ Decision Making: Evaluación rigurosa de trade-offs y consecuencias a futuro.
- ↳ Simplifying Things: Pragmatismo, principio KISS y prevención de sobreingeniería (YAGNI).
- ↳ How to Code: Experiencia práctica y contacto directo con el código en producción.
- ↳ Documentation: Comunicación técnica sintética, visual y libre de burocracia innecesaria.
- ↳ Communication: Explicar conceptos técnicos complejos de forma sencilla a perfiles no técnicos.
- ↳ Estimate and Evaluate: Evaluación de tiempos, riesgos y viabilidad de proyectos.
- ↳ Balance: Equilibrio entre deuda técnica, tiempos de entrega y excelencia técnica.
- ↳ Consult & Coach: Habilidades pedagógicas y de acompañamiento a desarrolladores.
- ↳ Marketing Skills: Habilidad para vender y defender decisiones técnicas ante la dirección.
🟡 Technical Skills: Programming Languages
- ↳ Java / Kotlin / Scala / Swift: Ecosistema JVM y plataformas nativas orientadas a alto rendimiento.
- ↳ Python: Scripting, Data Science, Machine Learning y prototipado rápido.
- ↳ Ruby: Desarrollo web rápido y productividad orientada a producto.
- ↳ Go: Microservicios, alta concurrencia nativa, bajo consumo de memoria y Cloud Native.
- ↳ JavaScript / TypeScript: Ecosistema Fullstack moderno, Node.js y aplicaciones web/móviles.
- ↳ .NET Framework Based: Ecosistema empresarial C# y arquitecturas multiplataforma modernas.
🟡 Patterns & Design Principles
- ↳ OOP: Programación Orientada a Objetos y encapsulamiento.
- ↳ MVC, MVP, MVVM: Patrones de diseño para capas de presentación e interfaces de usuario.
- ↳ CQRS & Eventual Consistency: Segregación de comandos y consultas, y modelos de consistencia eventual.
- ↳ Actors: Modelo de actores para concurrencia aislada sin bloqueo (Erlang/Akka).
- ↳ ACID & CAP Theorem: Transaccionalidad en bases de datos y trade-offs en sistemas distribuidos.
- ↳ SOLID: Los 5 principios fundamentales de diseño de software orientado a objetos.
- ↳ TDD: Desarrollo guiado por pruebas y diseño emergente.
- ↳ DDD: Diseño guiado por el dominio: Bounded Contexts, Entidades y Agregados.
🟡 Tools
- ↳ Git: Control de versiones distribuido y estrategias de branching.
- ↳ GitHub / Forgejo / GitLab: Plataformas de colaboración, revisión de código y CI/CD.
- ↳ Slack / Discord: Comunicación técnica síncrona y asíncrona de equipos.
- ↳ Trello / Linear: Gestión ágil de tableros y flujo de valor.
- ↳ Atlassian Tools (Jira / Confluence): Seguimiento de proyectos empresariales y bases de conocimiento.
🟡 Architecture (Architectural Styles)
- ↳ Microservices: Sistemas distribuidos desacoplados con bases de datos independientes.
- ↳ Serverless: Arquitectura basada en eventos y funciones como servicio (FaaS).
- ↳ Client / Server: Topología clásica de cliente consumidor y servidor central.
- ↳ Layered: Arquitectura tradicional en capas (N-Tier) y separación de responsabilidades.
- ↳ Distributed Systems: Consenso, tolerancia a fallos y particiones en redes complejas.
- ↳ Service Oriented (SOA): Arquitectura orientada a servicios empresariales y buses de integración.
🟡 Security
- ↳ Hashing Algorithms: Criptografía unidireccional: SHA-256, bcrypt, Argon2.
- ↳ PKI: Public Key Infrastructure, certificados digitales y mTLS.
- ↳ OWASP: Top 10 de vulnerabilidades de seguridad y mitigaciones críticas.
- ↳ Auth Strategies: JWT, OAuth 2.0, SAML, sesiones seguras, RBAC y ABAC.
🟡 Working with Data
- ↳ SQL Databases: Bases de datos relacionales, normalización, índices y transacciones ACID.
- ↳ NoSQL Databases: Motores Documentales, Clave-Valor, Columnar y Grafos.
- ↳ Hadoop, Spark, MapReduce: Procesamiento distribuido de Big Data en batch y streaming.
- ↳ ETL, Datawarehouses: Pipelines de extracción, transformación y carga para analítica.
- ↳ Datawarehouse Principles: Modelado dimensional, esquemas en estrella y copos de nieve.
🟡 APIs & Integrations
- ↳ REST: APIs HTTP pragmáticas, especificación OpenAPI y principios RESTful.
- ↳ GraphQL: Consultas tipadas con esquemas declarativos y resolvers.
- ↳ gRPC: Protocol Buffers y streaming binario de alta velocidad sobre HTTP/2.
- ↳ ESB, SOAP: Integraciones legacy corporativas y buses de servicios empresariales.
- ↳ BPM, BPEL: Automatización y orquestación de procesos de negocio.
- ↳ Messaging Queues: Event Streaming y colas: Apache Kafka, RabbitMQ, SQS.
🟡 Web, Mobile
- ↳ Functional Programming: Inmutabilidad, funciones puras y composición en frontend.
- ↳ Reactive Programming: Streams reactivos de datos (RxJS) y señales de estado.
- ↳ React, Vue, Angular: Frameworks modernos de interfaz de usuario.
- ↳ SPA, SSR, SSG: Estrategias de renderizado: Single Page, Server-Side y Static Generation.
- ↳ Microfrontends: Desacople modular de aplicaciones frontend a escala.
- ↳ W3C and WHATWG: Estándares oficiales de accesibilidad y plataforma web.
🟡 Frameworks & Management
- ↳ Enterprise Frameworks: TOGAF, UML, BABOK e IAF para gobernanza y modelado formal.
- ↳ Management Methodologies: PMI/PMP, ITIL, Prince2 y RUP para gestión de proyectos.
- ↳ Agile at Scale: Scrum, Kanban, XP, LeSS y SAFe para coordinación de múltiples equipos.
🟡 Networks
- ↳ OSI Model: Las 7 capas de red y encapsulamiento de datos.
- ↳ TCP/IP Model: Protocolos fundamentales de transporte y direccionamiento de Internet.
- ↳ HTTP, HTTPS: Evolución de HTTP/1.1 a multiplexación en HTTP/2 y QUIC en HTTP/3.
- ↳ Proxies: Forward Proxies, Reverse Proxies y balanceo de carga.
- ↳ Firewalls: Web Application Firewalls (WAF) y filtrado a nivel de paquetes.
🟡 Operations Knowledge
- ↳ Infrastructure as Code: Aprovisionamiento declarativo con Terraform, OpenTofu y Ansible.
- ↳ Cloud Providers: Modelos de servicios en AWS, Google Cloud y Microsoft Azure.
- ↳ Serverless Concepts: Computación efímera bajo demanda y escalado a cero.
- ↳ Linux / Unix: Administración básica de servidores, procesos, memoria y permisos.
- ↳ Service Mesh: Istio / Linkerd para mTLS, observabilidad y ruteo entre microservicios.
- ↳ CI / CD: Pipelines de integración y despliegue continuo / GitOps.
- ↳ Containers: Docker, Podman, OCI y orquestación con Kubernetes.
- ↳ Cloud Design Patterns: Circuit Breaker, Sidecar, Bulkhead, Ambassador, Retry.
🟡 Enterprise Software
- ↳ MS Dynamics: Suite empresarial de ERP y CRM de Microsoft.
- ↳ SAP ERP, HANA, Business Objects: Plataformas core empresariales y bases de datos en memoria.
- ↳ EMC DMS: Sistemas de gestión documental a escala empresarial.
- ↳ IBM BPM: Orquestación de flujos de trabajo corporativos.
- ↳ Salesforce: Plataforma de gestión de clientes e integraciones Cloud.