Software Architect
roadmap.sh: https://roadmap.sh/software-architect
Suggested path through the Software Architect nodes. Each node links to its lesson when written.
Nodes
Architecture Fundamentals
- What is Architecture
- Levels of Architecture
- Enterprise Architecture
- Application Architecture
- Design vs Architecture
- System Properties
- Trade-offs
- Balance
- Important Skills to Learn
Architecture Styles & Patterns
- Layered Architecture
- Client / Server
- Microservices
- Microfrontends
- Serverless
- Stateless Architecture
- MVC / MVP / MVVM
- Patterns & Design Principles
- Cloud Design Patterns
- CQRS & Eventual Consistency
- Saga Pattern
- Service Discovery
- Service Locator
Design Principles
- OOP
- Functional Programming
- Reactive Programming
- SOLID Principles
- Domain-Driven Design (DDD)
- Twelve-Factor App
Distributed Systems
- Distributed Systems
- System Design
- ACID / CAP Theorem
- Actors
- Transaction Management
- Hashing Algorithms
- Containers
- Virtual Machines
- Virtualization
APIs & Integration
- APIs & Integrations
- REST API
- GraphQL
- gRPC
- RPC
- SOAP
- Web Services
- ESB / SOAP
- BPM / BPEL
- Messaging Queues
- Auth Strategies
- Session Management
Data & Storage
- Relational Databases
- SQL Databases
- NoSQL Databases
- Data Warehouse Principles
- ETL & Data Warehouses
- Hadoop
- Apache Spark
- Hadoop / Spark / MapReduce
- Storage Area Network
- EMC / DMS
Networking & Security
- Networks
- OSI Model
- TCP/IP
- HTTP / HTTPS
- Proxies
- Firewalls
- PKI
- OWASP
- Security
Operations & Delivery
- Operations Knowledge
- Linux / Unix
- Windows
- CI / CD
- Infrastructure as Code
- Cloud Providers
- Version Control
- Git
- GitHub
- Webpack
- Testing
- Frameworks
- Tools and Technologies
Programming Languages
- Programming Languages
- JavaScript / TypeScript
- TypeScript
- Java / Kotlin / Scala / Swift
- .NET Framework Based
- Python
- Go
Enterprise Frameworks & Methodologies
- Enterprise Software
- TOGAF
- IAF
- ITIL
- BABOK
- Scrum
- Kanban
- LeSS
- PRINCE2
- PMI
- IBM BPM
- MS Dynamics
- Atlassian Tools
Soft Skills & Practices
- How to Code
- Documentation
- Understanding Requirements
- Estimate and Evaluate
- Decision Making
- Strategic Thinking
- Risk Management
- Stakeholder Management
- Team Management
- Management
- Communication
- Consult & Coach
- Marketing Skills
Resources
See resources.md.
Project ideas
- Design and document the architecture of a multi-tenant SaaS platform: produce C4 diagrams, ADRs, and a trade-off analysis covering data isolation, auth, and scaling.
- Build a reference event-driven microservices system (order/payment/inventory) using messaging queues, CQRS, and the Saga pattern, then document failure modes and eventual-consistency guarantees.
- Run an architecture fitness review of an existing app: map quality attributes, identify bottlenecks, propose a target architecture with a migration roadmap and risk assessment.