Skip to content

🏛️ 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.

🟡 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.